TX-Audio: speechnorm Auto-Level + überarbeitete EQ-Oberfläche #5

Merged
oe6dxd-automation merged 1 commits from feat/eq-speechnorm-autolevel into main 2026-10-25 21:39:28 +01:00

Was & Warum

Low/uneinheitlicher SSB-TX-Pegel je nach Client: Browser liefern durch unterschiedliche AGC/NoiseSuppression und OS-Mic-Pegel völlig verschiedene Lautstärken (Handy laut, Desktop leise). Der Server kann den Browser nicht zwingen – daher adaptive Normalisierung serverseitig.

Änderungen

  • speechnorm (Auto-Level) in die TX-EQ-Kette: hebt leise Inputs auf einen Zielpegel, kappt heiße nicht → gleicher Pegel aus jedem Browser. Platziert nach dem Noise Gate, vor dem Limiter (Pausenrauschen wird zuerst gegatet, nicht hochgezogen).
  • Neue Admin-Sektion „Pegel-Normalisierung" mit Ziel-Pegel (%) und Max. Anhebung (dB); in build/parse integriert → persistent und überlebt EQ-Speichervorgänge.
  • EQ-Oberfläche überarbeitet (fancy): gruppierte Sektionskarten, Preset-Chips inkl. neuem „Konstanter Pegel", Switch-Toggles, Wert-Badges, Accent-Slider, Live-Vorschau der FFmpeg-Kette, abhängige Regler werden deaktiviert wenn ihre Sektion aus ist.
  • Stimmigkeits-Fixes: De-Esser lag bei 3500–8000 Hz (oberhalb des Lowpass → wirkungslos), jetzt im Durchlassband 2200–3400 Hz; Lowpass auf 3200 Hz begrenzt; agate mit explizitem attack; Gate-Parser toleranter.
  • Presets (flat/level/dx/ragchew) auf sinnvolle SSB-Werte neu abgestimmt.

Tests (auf VM113, ffmpeg 7.1.5)

  • node --check ✅
  • Build↔Parse-Roundtrip aller 4 Presets ✅ (Pegel, Normalizer, Gate/Comp/Limiter, Reihenfolge Gate→speechnorm→Limiter)
  • Reale Ketten durch ffmpeg -f lavfi validiert (level & dx) ✅

Hinweise

  • speechnorm-Optionen p/e/l auf dem Zielsystem bestätigt.
  • On-Air-wirksam: bitte am Gerät gegenhören und Gate-Threshold/Max-Anhebung final feinjustieren.
  • Ergänzend empfohlen (separater PR): client getUserMedia noiseSuppression:false, echoCancellation:false, optional autoGainControl:false.

🤖 Generated with Claude Code

## Was & Warum Low/uneinheitlicher SSB-TX-Pegel je nach Client: Browser liefern durch unterschiedliche AGC/NoiseSuppression und OS-Mic-Pegel völlig verschiedene Lautstärken (Handy laut, Desktop leise). Der Server kann den Browser nicht zwingen – daher **adaptive Normalisierung serverseitig**. ## Änderungen - **speechnorm (Auto-Level)** in die TX-EQ-Kette: hebt leise Inputs auf einen Zielpegel, kappt heiße nicht → **gleicher Pegel aus jedem Browser**. Platziert **nach dem Noise Gate, vor dem Limiter** (Pausenrauschen wird zuerst gegatet, nicht hochgezogen). - Neue Admin-Sektion **„Pegel-Normalisierung"** mit *Ziel-Pegel (%)* und *Max. Anhebung (dB)*; in `build`/`parse` integriert → persistent und überlebt EQ-Speichervorgänge. - **EQ-Oberfläche überarbeitet** (fancy): gruppierte Sektionskarten, Preset-Chips inkl. neuem **„Konstanter Pegel"**, Switch-Toggles, Wert-Badges, Accent-Slider, Live-Vorschau der FFmpeg-Kette, abhängige Regler werden deaktiviert wenn ihre Sektion aus ist. - **Stimmigkeits-Fixes:** De-Esser lag bei 3500–8000 Hz (oberhalb des Lowpass → wirkungslos), jetzt im Durchlassband 2200–3400 Hz; Lowpass auf 3200 Hz begrenzt; `agate` mit explizitem `attack`; Gate-Parser toleranter. - **Presets** (flat/level/dx/ragchew) auf sinnvolle SSB-Werte neu abgestimmt. ## Tests (auf VM113, ffmpeg 7.1.5) - `node --check` ✅ - Build↔Parse-Roundtrip aller 4 Presets ✅ (Pegel, Normalizer, Gate/Comp/Limiter, Reihenfolge Gate→speechnorm→Limiter) - Reale Ketten durch `ffmpeg -f lavfi` validiert (level & dx) ✅ ## Hinweise - `speechnorm`-Optionen `p`/`e`/`l` auf dem Zielsystem bestätigt. - On-Air-wirksam: bitte am Gerät gegenhören und Gate-Threshold/Max-Anhebung final feinjustieren. - Ergänzend empfohlen (separater PR): client `getUserMedia` `noiseSuppression:false`, `echoCancellation:false`, optional `autoGainControl:false`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
oe6dxd-automation added 1 commit 2026-10-25 21:35:31 +01:00
- Adaptive Pegel-Normalisierung (speechnorm) in die TX-Audio-EQ-Kette
  aufgenommen: gleicher Sendepegel aus jedem Browser/Mikrofon, unabhängig
  von Client-AGC und Mic-Pegel. Neue Sektion "Pegel-Normalisierung" mit
  Ziel-Pegel (%) und Max. Anhebung (dB); build/parse round-trip getestet.
- speechnorm sitzt nach dem Noise Gate und vor dem Limiter, damit
  Grundrauschen in Pausen zuerst gegatet und nicht hochgezogen wird.
- EQ-Admin-UI überarbeitet: gruppierte Sektionen, Preset-Chips (inkl.
  neuem "Konstanter Pegel"), Switch-Toggles, Wert-Badges, Accent-Slider,
  Live-Vorschau der FFmpeg-Kette; abhängige Regler werden deaktiviert,
  wenn ihre Sektion aus ist.
- Stimmigkeit korrigiert: De-Esser-Frequenz liegt jetzt im SSB-Durchlass-
  band (war 3500–8000 Hz, oberhalb des Lowpass), Lowpass auf 3200 Hz
  begrenzt, agate mit explizitem attack; Gate-Parser tolerant gemacht.
- Presets (flat/level/dx/ragchew) auf sinnvolle SSB-Werte neu abgestimmt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
oe6dxd-automation merged commit 341cb6cfab into main 2026-10-25 21:39:28 +01:00
oe6dxd-automation deleted branch feat/eq-speechnorm-autolevel 2026-10-25 21:39:28 +01:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ARCG/ARCG-Remote-Station-Software#5