Background
Slice audio_mute=1 stops the radio from sending VITA-49 RX audio packets entirely. Since TCI audio currently taps the same audioDataReady signal as the PC speaker, muting a slice kills TCI audio too (#1179).
Problem
- Muting slice A silences TCI clients (e.g. TCI Remote, WSJT-X via TCI)
- Disabling PC Audio has the same effect
- DAX audio is independent of
audio_mute and is unaffected
Design question
The natural fix is to feed TCI from the DAX audio path (daxAudioReady) instead of the main RX audio path (audioDataReady). DAX is independent of audio_mute, so TCI would stay live when the slice is muted.
However, the current UX only exposes a single DAX On/Off toggle (VFO → DAX tab → channel selector). Enabling DAX routes both RX and TX through the DAX path, which means the physical mic no longer works for SSB TX on that slice. The protocol supports separating DAX RX (slice set <id> dax=<ch>) from DAX TX (transmit set dax=0/1), but we don't expose that separation in the UI.
Options
- Require DAX for TCI audio — simplest, but user loses mic TX unless we add a "DAX RX only" UI option
- Auto-create a hidden DAX channel for TCI — transparent to user, but consumes a DAX channel slot
- Add DAX RX / DAX TX separate controls — most flexible, but UI complexity
- Keep current behavior — document that slice mute affects TCI (known limitation)
Related
Needs design decision before implementation.
Background
Slice
audio_mute=1stops the radio from sending VITA-49 RX audio packets entirely. Since TCI audio currently taps the sameaudioDataReadysignal as the PC speaker, muting a slice kills TCI audio too (#1179).Problem
audio_muteand is unaffectedDesign question
The natural fix is to feed TCI from the DAX audio path (
daxAudioReady) instead of the main RX audio path (audioDataReady). DAX is independent ofaudio_mute, so TCI would stay live when the slice is muted.However, the current UX only exposes a single DAX On/Off toggle (VFO → DAX tab → channel selector). Enabling DAX routes both RX and TX through the DAX path, which means the physical mic no longer works for SSB TX on that slice. The protocol supports separating DAX RX (
slice set <id> dax=<ch>) from DAX TX (transmit set dax=0/1), but we don't expose that separation in the UI.Options
Related
Needs design decision before implementation.