Skip to content

feat(eq): reference target curve overlay on the Aetherial Parametric EQ#3259

Merged
ten9876 merged 1 commit into
mainfrom
auto/feateq-reference-target-curve-overlay-on-the-Aethe
May 29, 2026
Merged

feat(eq): reference target curve overlay on the Aetherial Parametric EQ#3259
ten9876 merged 1 commit into
mainfrom
auto/feateq-reference-target-curve-overlay-on-the-Aethe

Conversation

@ten9876
Copy link
Copy Markdown
Collaborator

@ten9876 ten9876 commented May 29, 2026

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

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>
@ten9876 ten9876 requested a review from a team as a code owner May 29, 2026 03:24
@ten9876 ten9876 enabled auto-merge (squash) May 29, 2026 03:24
@ten9876 ten9876 merged commit 38d9c20 into main May 29, 2026
4 checks passed
@ten9876 ten9876 deleted the auto/feateq-reference-target-curve-overlay-on-the-Aethe branch May 29, 2026 03:39
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.

1 participant