Skip to content

Quindar tones — Apollo K/BK on PTT engage and disengage (#2262)#2334

Merged
ten9876 merged 1 commit intomainfrom
auto/Quindar-tones--Apollo-KBK-on-PTT-engage-and-diseng
May 4, 2026
Merged

Quindar tones — Apollo K/BK on PTT engage and disengage (#2262)#2334
ten9876 merged 1 commit intomainfrom
auto/Quindar-tones--Apollo-KBK-on-PTT-engage-and-diseng

Conversation

@ten9876
Copy link
Copy Markdown
Owner

@ten9876 ten9876 commented May 4, 2026

Adds the optional Apollo-era Quindar tones to MOX/PTT on phone modes.
Tone style (default) plays a 2525 Hz sine intro then a 2475 Hz outro,
each 250 ms with a 5 ms cos² ramp; Morse style sends "K" on engage
and "BK" on disengage at a configurable WPM/pitch. Ships disabled by
default; opt-in via the new QUIN chip in the channel strip's Final
Output Stage panel (right-click for the style/freq/WPM editor).

DSP (ClientQuindarTone) is lock-free atomic-driven and inserted
between PC mic gain and the final brickwall limiter, so the tone is
unprocessed by the user's DSP chain but still bounded by the
configured ceiling. A dedicated QuindarLocalSink mirrors the same
audio to the operator's local output device — Quindar must always be
locally audible whenever it's overlaying the TX stream.

TransmitModel::requestPttOn/Off is the new single entry point for
PTT requests. The MOX button and the TCI hardware-PTT path both
route through it; the coordinator runs the engage/disengage state
machine, defers xmit 0 by the outro duration so the tone actually
makes it on the air, and coalesces a re-engage during the outro
window so the user doesn't feel a dead zone. CW / digital modes
bypass Quindar entirely via the phone-mode gate.

The QUIN chip flashes bright while a tone is playing — signal-driven
via the new TransmitModel::quindarActiveChanged rather than a
polling timer. Test harness covers phase transitions, frequency
content (Goertzel), Morse K/BK timing, envelope ramp, level matching,
coalesce semantics, and disabled bypass (19 tests, all pass).

Quindar settings are intentionally excluded from Channel Strip
preset capture — they're a PTT-time stylistic choice, not voice
shaping; preset recall shouldn't silently start signing off the
operator's transmissions.

Co-Authored-By: Claude Opus 4.7 (1M context) [email protected]

Adds the optional Apollo-era Quindar tones to MOX/PTT on phone modes.
Tone style (default) plays a 2525 Hz sine intro then a 2475 Hz outro,
each 250 ms with a 5 ms cos² ramp; Morse style sends "K" on engage
and "BK" on disengage at a configurable WPM/pitch.  Ships disabled by
default; opt-in via the new QUIN chip in the channel strip's Final
Output Stage panel (right-click for the style/freq/WPM editor).

DSP (`ClientQuindarTone`) is lock-free atomic-driven and inserted
between PC mic gain and the final brickwall limiter, so the tone is
unprocessed by the user's DSP chain but still bounded by the
configured ceiling.  A dedicated `QuindarLocalSink` mirrors the same
audio to the operator's local output device — Quindar must always be
locally audible whenever it's overlaying the TX stream.

`TransmitModel::requestPttOn/Off` is the new single entry point for
PTT requests.  The MOX button and the TCI hardware-PTT path both
route through it; the coordinator runs the engage/disengage state
machine, defers `xmit 0` by the outro duration so the tone actually
makes it on the air, and coalesces a re-engage during the outro
window so the user doesn't feel a dead zone.  CW / digital modes
bypass Quindar entirely via the phone-mode gate.

The QUIN chip flashes bright while a tone is playing — signal-driven
via the new `TransmitModel::quindarActiveChanged` rather than a
polling timer.  Test harness covers phase transitions, frequency
content (Goertzel), Morse K/BK timing, envelope ramp, level matching,
coalesce semantics, and disabled bypass (19 tests, all pass).

Quindar settings are intentionally excluded from Channel Strip
preset capture — they're a PTT-time stylistic choice, not voice
shaping; preset recall shouldn't silently start signing off the
operator's transmissions.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@ten9876 ten9876 enabled auto-merge (squash) May 4, 2026 04:23
@ten9876 ten9876 merged commit 5c3a845 into main May 4, 2026
4 checks passed
@ten9876 ten9876 deleted the auto/Quindar-tones--Apollo-KBK-on-PTT-engage-and-diseng branch May 4, 2026 04:36
Comment thread src/core/QuindarLocalSink.cpp Dismissed
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.

2 participants