feat(eq): reference target curve overlay on the Aetherial Parametric EQ#3259
Merged
ten9876 merged 1 commit intoMay 29, 2026
Merged
Conversation
Adds a "Ref:" dropdown to the left of the existing "Smoothing:" combo
in both the Channel Strip's EQ panel and the floating ClientEqEditor.
Five selectable presets render as a thin amber line over the EQ canvas
so the user can shape the parametric EQ toward a known target shape:
- AT&T 1959 - Bell Labs "optimum transmission frequency response for
speech" from the 1959 AT&T handbook. Peak +5 dB at 2.5
kHz, rolls off below 300 Hz and above 3.4 kHz. The
canonical presence-peak intelligibility target cited
throughout broadcast and SSB audio engineering.
- Heil DX - Bob Heil's aggressive DX/contest curve. Sharper +6 dB
peak at 2.7 kHz, harder low-cut than AT&T 1959.
- Astatic D-104 - Classic crystal "lollipop" mic, very peaky around
3 kHz with deep low-end rolloff. Digitized from the
"legendary mics" comparison chart.
- Shure 444 - Broadcast-style desk mic, gentler and broader response.
- Heil HC-5 - Modern dynamic SSB element.
Implementation:
- ClientEqCurveWidget gets setReferenceCurvePreset(QString) and a
static referenceCurveIds() list (canonical IDs for combo + settings).
Curves are stored as { hz, dB } point arrays joined point-to-point
in log-freq x linear-dB space (standard target-curve rendering),
drawn after the FFT analyzer but before the EQ band curves so the
user's adjustments sit on top of the target.
- Selection persisted to AppSettings as "ClientEqReferenceCurve"
(string ID; "Off" hides the overlay). Shared between RX/TX
editors and between the strip view and the floating editor.
- Toolbar: same QComboBox styling as the existing Smoothing combo,
placed immediately to the left.
Phase 1 of the request - on/off toggle with a single curve - was
expanded to the 5-preset version after user feedback referencing the
familiar "legendary mics" chart that ham operators compare against.
Files:
- src/gui/ClientEqCurveWidget.{h,cpp} - API + preset tables + paint
- src/gui/ClientEqEditor.{h,cpp} - toolbar combo + persistence
- src/gui/StripEqPanel.{h,cpp} - same toolbar combo for strip view
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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 a "Ref:" dropdown to the left of the existing "Smoothing:" combo
in both the Channel Strip's EQ panel and the floating ClientEqEditor.
Five selectable presets render as a thin amber line over the EQ canvas
so the user can shape the parametric EQ toward a known target shape:
speech" from the 1959 AT&T handbook. Peak +5 dB at 2.5
kHz, rolls off below 300 Hz and above 3.4 kHz. The
canonical presence-peak intelligibility target cited
throughout broadcast and SSB audio engineering.
peak at 2.7 kHz, harder low-cut than AT&T 1959.
3 kHz with deep low-end rolloff. Digitized from the
"legendary mics" comparison chart.
Implementation:
static referenceCurveIds() list (canonical IDs for combo + settings).
Curves are stored as { hz, dB } point arrays joined point-to-point
in log-freq x linear-dB space (standard target-curve rendering),
drawn after the FFT analyzer but before the EQ band curves so the
user's adjustments sit on top of the target.
(string ID; "Off" hides the overlay). Shared between RX/TX
editors and between the strip view and the floating editor.
placed immediately to the left.
Phase 1 of the request - on/off toggle with a single curve - was
expanded to the 5-preset version after user feedback referencing the
familiar "legendary mics" chart that ham operators compare against.
Files:
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com