Skip to content

Design: TCI audio should use independent DAX path #1331

Description

@ten9876

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

  1. Require DAX for TCI audio — simplest, but user loses mic TX unless we add a "DAX RX only" UI option
  2. Auto-create a hidden DAX channel for TCI — transparent to user, but consumes a DAX channel slot
  3. Add DAX RX / DAX TX separate controls — most flexible, but UI complexity
  4. Keep current behavior — document that slice mute affects TCI (known limitation)

Related

Needs design decision before implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementImprovement to existing featureprotocolSmartSDR protocol

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions