You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #2572 (TX mic stereo channel canonicalization) was tested across several capture devices, with one observation:
Soundcore Life Q20 works, with some recording crackle observed.
The crackle was observed during PR validation. It does not block the PR (which fixes a separate documented bug class), but it deserves an independent investigation so the cause and platform scope can be characterized.
Open questions
Pre-existing or regression? Does the crackle reproduce on mainbefore commit 0c058af0 (the [core] Fix TX mic stereo channel canonicalization #2572 merge) with the same Soundcore Life Q20 device? If yes, it's a long-standing Bluetooth capture issue unrelated to the channel canonicalization work. If no, the canonicalize/resample path interaction with this specific device needs investigation.
Where in the audio path?
Audible to the far end on transmit? (TX path issue)
Audible only in local monitor / sidetone / scope? (local rendering issue)
Audible in DAX TX recording captured back via WSJT-X / fldigi? (DAX TX path)
Audible in RX speaker output regardless of TX? (RX path, unrelated to mic capture)
Sample rate negotiation. Soundcore Life Q20 over Bluetooth typically exposes 8 kHz or 16 kHz (SCO/HFP) for capture and 44.1 kHz or 48 kHz (A2DP) for playback. AudioEngine::startTxStream() should negotiate one of the supported rates and route through m_txResampler if needed. Worth confirming:
Which sample rate is negotiated for capture on the affected setup?
Is the resampler being constructed and used, or is it being bypassed because the device matched 24 kHz nominally?
Does qCDebug(lcAudio) show the negotiated rate + channel count + format?
Platform scope. Was the test on macOS (Pat's setup), or did Linux/Windows also exhibit it? Bluetooth audio stacks differ substantially across the three platforms.
Reproduction notes
Pair Soundcore Life Q20 over Bluetooth
Open Preferences → Audio → set as the PC mic input
Engage PTT (SSB / Phone mode)
Record TX output via DAX bridge into Audacity / another DAW
Listen for crackle / glitches in the recorded waveform
Suggested first diagnostic
Run with QT_LOGGING_RULES="aether.audio.debug=true" and capture 10 s of TX. The TxMicChannelNormalizer diagnostic log fires only on one-sided stereo, but lcAudio logs cover format negotiation and any resampler reconstruction events. If the crackle correlates with capture-rate switches (BT codec renegotiation under load) the log will show it.
The PR fixes a different bug class (one-sided stereo 6.02 dB loss). The crackle is a separate signal and worth tracking independently to avoid conflation.
Symptom
PR #2572 (TX mic stereo channel canonicalization) was tested across several capture devices, with one observation:
The crackle was observed during PR validation. It does not block the PR (which fixes a separate documented bug class), but it deserves an independent investigation so the cause and platform scope can be characterized.
Open questions
Pre-existing or regression? Does the crackle reproduce on
mainbefore commit0c058af0(the [core] Fix TX mic stereo channel canonicalization #2572 merge) with the same Soundcore Life Q20 device? If yes, it's a long-standing Bluetooth capture issue unrelated to the channel canonicalization work. If no, the canonicalize/resample path interaction with this specific device needs investigation.Where in the audio path?
Sample rate negotiation. Soundcore Life Q20 over Bluetooth typically exposes 8 kHz or 16 kHz (SCO/HFP) for capture and 44.1 kHz or 48 kHz (A2DP) for playback.
AudioEngine::startTxStream()should negotiate one of the supported rates and route throughm_txResamplerif needed. Worth confirming:qCDebug(lcAudio)show the negotiated rate + channel count + format?Platform scope. Was the test on macOS (Pat's setup), or did Linux/Windows also exhibit it? Bluetooth audio stacks differ substantially across the three platforms.
Reproduction notes
Suggested first diagnostic
Run with
QT_LOGGING_RULES="aether.audio.debug=true"and capture 10 s of TX. TheTxMicChannelNormalizerdiagnostic log fires only on one-sided stereo, butlcAudiologs cover format negotiation and any resampler reconstruction events. If the crackle correlates with capture-rate switches (BT codec renegotiation under load) the log will show it.Context
73, Jeremy KK7GWY & Claude (AI dev partner)