Skip to content

Regression: No audio output in SSB and Digital modes (USB, DIGL) since v0.8.21; CW mode unaffected #1875

@rnash2

Description

@rnash2

What happened?
After updating to AetherSDR v0.8.21, audio output is only present when the slice is set to CW mode. When switching to other modes such as USB, LSB, DIGU, or DIGL, the audio stream is silent, even though the panadapter shows active signals and the S-meter indicates received signal strength.

I have confirmed that the squelch is disabled and volume levels are adequate. This issue appears to be a regression specific to the handling of non-CW audio streams in the latest version. checked with PC Audio and Radio Audio.

What did you expect?
Audio should be demodulated and routed to the system output for all selected modes (USB, LSB, DIGL, DIGU, etc.), consistent with the behavior in versions prior to 0.8.21.

Steps to reproduce
Launch AetherSDR v0.8.21 on Windows.

Connect to a FLEX-6600 transceiver (Firmware v4.1.5).

Create a slice and set the mode to USB or DIGL.

Tune to an active frequency; observe visual signal activity but note the lack of audio.

Switch the slice mode to CW.

Observe that audio output immediately functions as expected.

Switch back to USB; audio returns to silence.

Radio model & firmware
Model: FLEX-6600

Firmware: v4.1.5.39794

OS & version
OS: Windows 11 25H2

AetherSDR Version: 0.8.21

Qt Version: 6.7.3

Developer Notes
Potential Root Cause:
The fact that CW works while SSB/Digital modes do not suggests an issue in the VITA-49 audio stream processing logic or the Opus decoding pipeline. In FlexRadio systems, CW audio is often handled via a different path or sample rate than Voice/Data modes. Since v0.8.21, there may be a regression in how VitaAudioStream handles the transition between stream types or a failure in the Opus decoder initialization for specific mode-dependent payload formats.

Likely Involved Files:

src/vitaradio.cpp: Check the processVitaPacket and handleAudioStream logic to see if packets for non-CW streams are being dropped or misidentified.

src/vitastream.cpp / src/vitastream.h: Review the logic for VitaAudioStream and how it handles different class IDs or payload lengths.

src/audiooutput.cpp: Verify if the QtAudioOutput buffer is receiving zeroed data or if the stream is being suspended when the mode changes.

src/vita_opus_decoder.cpp (if applicable): If the client uses the Opus compressed audio stream, check if the decoder is failing to reset when switching from the CW sidetone/stream to the Slice audio stream.

Recommended Logging Categories:
To diagnose this, please enable the following categories in Help → Support:

vita.audio: To verify if VITA-49 audio packets for USB/DIGL are actually arriving.

vita.packet: To check for malformed packet headers or unexpected Class IDs.

audio.output: To see if the audio device is reporting errors or underruns during mode switches.

radio.slice: To confirm the radio state synchronized correctly and the slice audio stream ID was properly assigned.

Code References:
Check the delta between v0.8.20 and v0.8.21 regarding the VitaStream classes. Specifically, look for changes in how sample rates or bit depths are handled for non-CW modes, as a mismatch here would cause QAudioSink to remain silent or error out.

support-bundle-20260423-090902.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions