Skip to content

fix(audio): probe-at-open for auxiliary sinks instead of isFormatSupported (#4641) - #2

Closed
wa2n-code wants to merge 1 commit into
mainfrom
fix/4641-auxiliary-sink-probe-at-open
Closed

fix(audio): probe-at-open for auxiliary sinks instead of isFormatSupported (#4641)#2
wa2n-code wants to merge 1 commit into
mainfrom
fix/4641-auxiliary-sink-probe-at-open

Conversation

@wa2n-code

Copy link
Copy Markdown
Owner

Summary

Fixes aethersdr#4641.

AetherVoice recording played back nothing on a Dell Optiplex 9020 with an
Akai EIE (class-compliant multichannel USB interface) as the Windows output
device — the record button muted audio as expected, but no audio played
after release. RX audio played through the same device fine, so it wasn't a
wrong-device-selected issue (ruled out early in the issue thread).

Root cause

ClientPuduMonitor::startPlayback() (AetherVoice monitor playback),
CwSidetoneQAudioSink::start() (CW sidetone), and QuindarLocalSink::start()
(Quindar tones) all gated format selection on QAudioDevice::isFormatSupported().
On WASAPI that query answers against the shared-mode mix format and
false-negatives on class-compliant multichannel devices like the EIE, so
every rung of the negotiation ladder was rejected before the device was ever
actually opened — the play button just never fired.

AudioEngine's RX sink never trusted that query for exactly this reason: it
opens each candidate format for real (QAudioSink::start()) and keeps the
first that starts. This brings the three auxiliary sinks in line with that
pattern instead of asking isFormatSupported() for permission first.

Test plan

  • Tested on a Dell Optiplex 9020 (Windows 11 23H2) with an Akai EIE as
    the AetherSDR output device — AetherVoice recording now plays back through
    the EIE as expected after the record button is released.
  • git diff --check

🤖 Generated with Claude Code

…orted (aethersdr#4641)

AetherVoice playback, CW sidetone, and Quindar tones went silent on
class-compliant multichannel USB output devices (e.g. Akai EIE) on
Windows even though the same device played RX audio fine.

isFormatSupported() answers against WASAPI's shared-mode mix format
and false-negatives on these devices, so every rung of the negotiation
ladder was rejected before anything was ever opened. AudioEngine's RX
sink never trusted that query -- it opens each candidate format for
real and keeps the first that starts. Bring ClientPuduMonitor,
CwSidetoneQAudioSink, and QuindarLocalSink in line with that pattern.
@wa2n-code

Copy link
Copy Markdown
Owner Author

Opened against the wrong repo — the issue lives upstream. Correct PR: aethersdr#4654

@wa2n-code wa2n-code closed this Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AetherVoice Record button mutes audio but no follow up playback on some Windows 11 computers

1 participant