Report preparation
What happened?
What happened
Space bar PTT and the keyboard TX/MOX shortcut are handled entirely by AetherSDR, yet neither produces a Quindar tone. PTT itself engages correctly: the radio keys and mic audio is transmitted, only the Quindar intro/outro is missing. Quindar fires correctly only with the GUI MOX button.
Confirmed on my station:
- GUI MOX button: Quindar transmitted. Works.
- Space bar PTT: radio keys, mic audio sent, no Quindar tone.
- Keyboard TX shortcut (T): radio keys, mic audio sent, no Quindar tone.
Environment
- OS: CachyOS (Arch Linux), KDE Plasma
- Radio: [FLEX model + firmware version, please fill in]
- AetherSDR version: [please fill in]
Suggested fix
Root cause, from local source inspection. Paths are relative to the repo root; line numbers are approximate and version-specific.
- The Quindar state machine is driven only by
TransmitModel::requestPttOn() / requestPttOff() (src/models/TransmitModel.cpp), which call ClientQuindarTone::startIntro() / startOutro() and sequence the MOX edge around the tone (intro before key-up, outro by deferring the unkey for the tone duration).
- Only two call sites reach that coordinator: the GUI MOX toggle (
src/gui/TxApplet.cpp) and the TCI hardware-PTT path (src/core/TciServer.cpp).
- Every other PTT source goes through
RadioModel::setTransmit() then TransmitModel::setTransmitting(), a raw state setter that updates m_transmitting and emits moxChanged but never touches the Quindar state machine. This includes space bar PTT and keyboard MOX/TX shortcuts (src/gui/MainWindow_Shortcuts.cpp), MIDI bindings, RC-28, CAT (SmartCAT and rigctl), TCI digital-audio PTT, and the serial footswitch path (SerialPortController::externalPttChanged is connected to setTransmit(), not to requestPttOn/Off).
PttSource::Footswitch is defined in the enum (src/models/TransmitModel.h) but is never passed to requestPttOn/Off anywhere in the codebase, which suggests the wiring was intended but never completed.
- The enable and mode gates (
isPhoneModeForQuindar(), ClientQuindarTone::isEnabled()) exist only inside requestPttOn/Off, so they are not the cause. startIntro() / startOutro() perform no gating themselves, which is why the test buttons fire unconditionally.
Fixable: route the client-handled PTT sources (space bar, keyboard shortcuts, MIDI, RC-28, CAT/rigctl, TCI digital, serial footswitch) through requestPttOn/Off so the full intro plus outro sequence runs, because the client owns the key timing. This is the apparent intent of the unused PttSource::Footswitch value. Confirmed broken with the space bar, which is a built-in control with no external dependency.
Out of scope, inherent limitation: PTT commanded directly to the radio by an external program over FlexLib, with no client involvement (for example an external footswitch box). AetherSDR only observes the interlock TX state after the fact. A reactive intro tone would be late, and a true outro tone is impossible, because the client cannot defer an unkey it did not issue. This is acceptable behavior, but it should be documented where Quindar is configured (the QUIN editor dialog) so operators understand that full Quindar requires the client to be in the keying path.
Per CLAUDE.md, signal-routing changes are maintainer-review territory, so this is flagged rather than proposed as a specific patch.
Suggested labels: bug, audio, external devices
What did you expect?
What I expected
With QUIN enabled in a Quindar-eligible phone mode, the intro tone on TX key-down and the outro tone on TX key-up, for any PTT source that AetherSDR handles, including the space bar and keyboard shortcuts.
Steps to reproduce
Steps to reproduce
- Enable the QUIN chip in the Aetherial Final Output Stage (TX) panel.
- Select a phone mode, e.g. USB.
- Key with the GUI MOX button. Quindar tones are transmitted. This is the baseline that works.
- Key with the space bar, or with the keyboard TX/MOX shortcut.
- Observe: the radio transmits and mic audio is sent, but no Quindar tone is transmitted.
AetherSDR version
v26.6.3
Radio model & firmware
AU-520 4.2.20.41343
Operating system
Linux
OS version and hardware
CachyOs
Report preparation
What happened?
What happened
Space bar PTT and the keyboard TX/MOX shortcut are handled entirely by AetherSDR, yet neither produces a Quindar tone. PTT itself engages correctly: the radio keys and mic audio is transmitted, only the Quindar intro/outro is missing. Quindar fires correctly only with the GUI MOX button.
Confirmed on my station:
Environment
Suggested fix
Root cause, from local source inspection. Paths are relative to the repo root; line numbers are approximate and version-specific.
TransmitModel::requestPttOn()/requestPttOff()(src/models/TransmitModel.cpp), which callClientQuindarTone::startIntro()/startOutro()and sequence the MOX edge around the tone (intro before key-up, outro by deferring the unkey for the tone duration).src/gui/TxApplet.cpp) and the TCI hardware-PTT path (src/core/TciServer.cpp).RadioModel::setTransmit()thenTransmitModel::setTransmitting(), a raw state setter that updatesm_transmittingand emitsmoxChangedbut never touches the Quindar state machine. This includes space bar PTT and keyboard MOX/TX shortcuts (src/gui/MainWindow_Shortcuts.cpp), MIDI bindings, RC-28, CAT (SmartCAT and rigctl), TCI digital-audio PTT, and the serial footswitch path (SerialPortController::externalPttChangedis connected tosetTransmit(), not torequestPttOn/Off).PttSource::Footswitchis defined in the enum (src/models/TransmitModel.h) but is never passed torequestPttOn/Offanywhere in the codebase, which suggests the wiring was intended but never completed.isPhoneModeForQuindar(),ClientQuindarTone::isEnabled()) exist only insiderequestPttOn/Off, so they are not the cause.startIntro()/startOutro()perform no gating themselves, which is why the test buttons fire unconditionally.Fixable: route the client-handled PTT sources (space bar, keyboard shortcuts, MIDI, RC-28, CAT/rigctl, TCI digital, serial footswitch) through
requestPttOn/Offso the full intro plus outro sequence runs, because the client owns the key timing. This is the apparent intent of the unusedPttSource::Footswitchvalue. Confirmed broken with the space bar, which is a built-in control with no external dependency.Out of scope, inherent limitation: PTT commanded directly to the radio by an external program over FlexLib, with no client involvement (for example an external footswitch box). AetherSDR only observes the interlock TX state after the fact. A reactive intro tone would be late, and a true outro tone is impossible, because the client cannot defer an unkey it did not issue. This is acceptable behavior, but it should be documented where Quindar is configured (the QUIN editor dialog) so operators understand that full Quindar requires the client to be in the keying path.
Per CLAUDE.md, signal-routing changes are maintainer-review territory, so this is flagged rather than proposed as a specific patch.
Suggested labels: bug, audio, external devices
What did you expect?
What I expected
With QUIN enabled in a Quindar-eligible phone mode, the intro tone on TX key-down and the outro tone on TX key-up, for any PTT source that AetherSDR handles, including the space bar and keyboard shortcuts.
Steps to reproduce
Steps to reproduce
AetherSDR version
v26.6.3
Radio model & firmware
AU-520 4.2.20.41343
Operating system
Linux
OS version and hardware
CachyOs