Skip to content

Quindar tones not triggered by keyboard shortcuts #3610

Description

@TnxQSO-Admin

Report preparation

  • I used the AI-assisted bug report tool (Help → Support → File an Issue)
  • I have attached a support bundle or log file

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

  1. Enable the QUIN chip in the Aetherial Final Output Stage (TX) panel.
  2. Select a phone mode, e.g. USB.
  3. Key with the GUI MOX button. Quindar tones are transmitted. This is the baseline that works.
  4. Key with the space bar, or with the keyboard TX/MOX shortcut.
  5. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    audioAudio engine and streamingbugSomething isn't workingexternal devicesFlexControl, MIDI, serial port, USB peripheralsmaintainer-reviewRequires maintainer review before any action is takenpriority: mediumMedium priority

    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