Conversation
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]>
This was referenced May 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 insertedbetween 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
QuindarLocalSinkmirrors the sameaudio to the operator's local output device — Quindar must always be
locally audible whenever it's overlaying the TX stream.
TransmitModel::requestPttOn/Offis the new single entry point forPTT requests. The MOX button and the TCI hardware-PTT path both
route through it; the coordinator runs the engage/disengage state
machine, defers
xmit 0by the outro duration so the tone actuallymakes 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::quindarActiveChangedrather than apolling 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]