Song: Pegelanzeigen für Spuren und Song, Limiter am Ausgang #359

Closed
opened 2026-10-08 21:40:50 +02:00 by meleki · 1 comment
Owner

Pegelanzeigen im Song-Tab für jede Spur und für den Song selbst, dazu ein fester Schutz gegen Clipping am Ausgang.

Anzeigen

  • Spur: schmale Stereo-Anzeige (L/R) am rechten Rand des Spurkopfs, über die ganze Spurhöhe. Der Kopf wird dafür breiter.
  • Song: Stereo-Anzeige Out im Kopf des Tabs, mit dem Spitzenwert in dB daneben. Gemessen nach dem Sound FX des Songs, vor dem Bus des Assets.
  • Darstellung: -48 bis +6 dBFS, grün, ab -6 gelb, über 0 rot. Die Spitze hält 1,5 s und fällt dann. Eine Clip-Lampe bleibt rot, sobald einmal 0 dBFS überschritten waren. Sie geht beim nächsten Play aus oder per Klick.
  • Gemutete oder durch Solo stumme Spur: Die Anzeige läuft grau weiter.
  • Technik: AnalyserNode als Abzweig neben dem Signalweg (Kanal-Splitter, je Kanal ein Analyser, Sample-Peak). Keine Worklets, keine Ports. Die Analyser gibt es nur, solange der Song-Tab sichtbar ist und spielt.
  • Music bekommt immer einen eigenen Ausgangs-Bus, auch ohne Sound FX, damit Out nur den Song misst.

Schutz am Ausgang

  • Fester Limiter zwischen Master und Ausgang, -1 dBFS, nicht einstellbar, im Editor und im Spiel. Er nutzt den vorhandenen Limiter aus #326.
  • Er kostet 5 ms Latenz für alles. Abspielen und Aufnahme (#342) rechnen sie mit.
  • Die Anzeigen messen vor dem Limiter. Rot heißt also: Hier greift der Limiter, dreh runter.

Nicht dabei

  • Anzeigen im Pattern-Tab, an Bus-Assets oder als Master beim Spielen
  • True-Peak

Zuschnitt

Ein Issue, zwei Commits: zuerst die Anzeigen, dann Limiter und Clip-Lampe.

Pegelanzeigen im Song-Tab für jede Spur und für den Song selbst, dazu ein fester Schutz gegen Clipping am Ausgang. ## Anzeigen - **Spur:** schmale Stereo-Anzeige (L/R) am rechten Rand des Spurkopfs, über die ganze Spurhöhe. Der Kopf wird dafür breiter. - **Song:** Stereo-Anzeige *Out* im Kopf des Tabs, mit dem Spitzenwert in dB daneben. Gemessen nach dem Sound FX des Songs, vor dem Bus des Assets. - **Darstellung:** -48 bis +6 dBFS, grün, ab -6 gelb, über 0 rot. Die Spitze hält 1,5 s und fällt dann. Eine Clip-Lampe bleibt rot, sobald einmal 0 dBFS überschritten waren. Sie geht beim nächsten Play aus oder per Klick. - **Gemutete oder durch Solo stumme Spur:** Die Anzeige läuft grau weiter. - **Technik:** `AnalyserNode` als Abzweig neben dem Signalweg (Kanal-Splitter, je Kanal ein Analyser, Sample-Peak). Keine Worklets, keine Ports. Die Analyser gibt es nur, solange der Song-Tab sichtbar ist und spielt. - `Music` bekommt immer einen eigenen Ausgangs-Bus, auch ohne Sound FX, damit *Out* nur den Song misst. ## Schutz am Ausgang - Fester Limiter zwischen Master und Ausgang, -1 dBFS, nicht einstellbar, im Editor und im Spiel. Er nutzt den vorhandenen Limiter aus #326. - Er kostet 5 ms Latenz für alles. Abspielen und Aufnahme (#342) rechnen sie mit. - Die Anzeigen messen **vor** dem Limiter. Rot heißt also: Hier greift der Limiter, dreh runter. ## Nicht dabei - Anzeigen im Pattern-Tab, an Bus-Assets oder als Master beim Spielen - True-Peak ## Zuschnitt Ein Issue, zwei Commits: zuerst die Anzeigen, dann Limiter und Clip-Lampe.
admin added this to the Development project 2026-10-08 21:43:18 +02:00
Author
Owner

Erledigt und gepusht.

  • Repo: 490fcba „Meter each track and the song, and limit the output at -1 dBFS (#359)“
  • Wiki: 4cace55 „Describe the level meters and the limiter at the output (#359)“ (Songs, neuer Abschnitt Levels and clipping; Sounds, Abschnitt Buses and the master; Development)

Was sich ändert

Pegelanzeigen im Song-Tab

  • Jeder Spurkopf hat am rechten Rand eine Stereo-Anzeige über die ganze Spurhöhe. Der Kopf ist dafür 190 statt 176 px breit.
  • Out sitzt in der Ecke über den Spurköpfen, links vom Lineal, und zeigt den lautesten Wert seit Play in dB. Über 0 steht er in Rot.
  • Skala von -48 bis +6 dBFS: grün, ab -6 gelb, über 0 rot. Die Spitze bleibt 1,5 s stehen und fällt dann.
  • Die Clip-Lampe bleibt nach Stop an. Sie geht beim nächsten Play aus oder per Klick auf die Anzeige.
  • Grau erscheint eine Spur, die Mute oder Solo stummschaltet. Eine Spur, die nur durch Solo stumm ist, zeigt nichts, weil Solo ihre Items schon vor der Spur schließt.
  • Gemessen wird mit AnalyserNodes neben den Bussen, je Seite einer hinter einem Kanal-Splitter. Angezapft wird nur, solange der Song spielt und sein Tab sichtbar ist. Die Anzeigen messen vor dem Limiter.
  • Music spielt jetzt immer über einen eigenen Ausgangs-Bus, auch ohne Sound FX. Diesen Bus misst Out.

Limiter am Ausgang

  • Er sitzt fest hinter dem Master, im Editor und im Spiel, und lässt kein Sample über -1 dBFS. Einstellen oder abschalten kann man ihn nicht.
  • Er hat 5 ms Latenz. latency() rechnet sie mit, Playhead und das Ausrichten einer Aufnahme stimmen also weiter.
  • Er braucht das FX-Worklet. Bis das geladen ist, geht der Master direkt raus.

Abweichungen vom Plan

  • Out steht in der Ecke der Timeline statt im Tab-Kopf. Im Tab-Kopf wurde die Zeile breiter als ein 1280-px-Fenster, und ein bestehender Check fand ein Feld im Inspector nicht mehr.
  • Es ist ein Commit statt zwei. Anzeigen und Limiter hängen an denselben Stellen in SoundLibrary.ts, am e2e-Abschnitt und an den Hooks.
  • Out zeigt -inf statt „-∞“. Die UI-Schrift hat kein Unendlich-Zeichen, das hat der Font-Test im Gate gefunden.

Tests

Unit meter-view (neu) + sound-library → 8 neu + 112 grün (2 neu), 3 Gegenproben je rot
e2e 65 (melektaus-atx)                 → ALL PASSED – 55 Checks (3 neu)
Gate (melektaus-atx)                   → 4209 Tests, 1 rot im Font-Test (behoben, siehe oben)
  • Im Browser gemessen: Alle Spuren und das Sound-Item auf +12 dB ergaben Out +16,6 dB, und beide Lampen leuchteten. Hinter dem Limiter lag der lauteste Wert über 6 s bei 0,8913, das sind -1,0 dBFS. Nach Stop war kein Bus mehr angezapft, und ein Klick hat die Lampen gelöscht.
  • Nach dem Font-Fix liefen nur noch Font- und Meter-Tests, Typcheck und Lint, alle grün. Das volle Gate lief danach nicht noch einmal. Das übernimmt CI zu 490fcba.

Nicht geprüft

  • wie es klingt und ob man den Limiter hört
  • die graue Anzeige im Browser
  • das Wegnehmen der Abgriffe beim Tabwechsel
  • der Limiter im laufenden Spiel (gleiche SoundLibrary, gemessen nur im Song-Tab)
  • der CI-Lauf zu 490fcba
Erledigt und gepusht. - Repo: `490fcba` „Meter each track and the song, and limit the output at -1 dBFS (#359)“ - Wiki: `4cace55` „Describe the level meters and the limiter at the output (#359)“ (*Songs*, neuer Abschnitt *Levels and clipping*; *Sounds*, Abschnitt *Buses and the master*; *Development*) ## Was sich ändert **Pegelanzeigen im Song-Tab** - Jeder Spurkopf hat am rechten Rand eine Stereo-Anzeige über die ganze Spurhöhe. Der Kopf ist dafür 190 statt 176 px breit. - **Out** sitzt in der Ecke über den Spurköpfen, links vom Lineal, und zeigt den lautesten Wert seit Play in dB. Über 0 steht er in Rot. - Skala von -48 bis +6 dBFS: grün, ab -6 gelb, über 0 rot. Die Spitze bleibt 1,5 s stehen und fällt dann. - Die Clip-Lampe bleibt nach Stop an. Sie geht beim nächsten Play aus oder per Klick auf die Anzeige. - Grau erscheint eine Spur, die Mute oder Solo stummschaltet. Eine Spur, die nur durch Solo stumm ist, zeigt nichts, weil Solo ihre Items schon vor der Spur schließt. - Gemessen wird mit `AnalyserNode`s neben den Bussen, je Seite einer hinter einem Kanal-Splitter. Angezapft wird nur, solange der Song spielt und sein Tab sichtbar ist. Die Anzeigen messen vor dem Limiter. - `Music` spielt jetzt immer über einen eigenen Ausgangs-Bus, auch ohne Sound FX. Diesen Bus misst *Out*. **Limiter am Ausgang** - Er sitzt fest hinter dem Master, im Editor und im Spiel, und lässt kein Sample über -1 dBFS. Einstellen oder abschalten kann man ihn nicht. - Er hat 5 ms Latenz. `latency()` rechnet sie mit, Playhead und das Ausrichten einer Aufnahme stimmen also weiter. - Er braucht das FX-Worklet. Bis das geladen ist, geht der Master direkt raus. ## Abweichungen vom Plan - *Out* steht in der Ecke der Timeline statt im Tab-Kopf. Im Tab-Kopf wurde die Zeile breiter als ein 1280-px-Fenster, und ein bestehender Check fand ein Feld im Inspector nicht mehr. - Es ist ein Commit statt zwei. Anzeigen und Limiter hängen an denselben Stellen in `SoundLibrary.ts`, am e2e-Abschnitt und an den Hooks. - *Out* zeigt `-inf` statt „-∞“. Die UI-Schrift hat kein Unendlich-Zeichen, das hat der Font-Test im Gate gefunden. ## Tests ``` Unit meter-view (neu) + sound-library → 8 neu + 112 grün (2 neu), 3 Gegenproben je rot e2e 65 (melektaus-atx) → ALL PASSED – 55 Checks (3 neu) Gate (melektaus-atx) → 4209 Tests, 1 rot im Font-Test (behoben, siehe oben) ``` - Im Browser gemessen: Alle Spuren und das Sound-Item auf +12 dB ergaben *Out* +16,6 dB, und beide Lampen leuchteten. Hinter dem Limiter lag der lauteste Wert über 6 s bei 0,8913, das sind -1,0 dBFS. Nach Stop war kein Bus mehr angezapft, und ein Klick hat die Lampen gelöscht. - Nach dem Font-Fix liefen nur noch Font- und Meter-Tests, Typcheck und Lint, alle grün. Das volle Gate lief danach nicht noch einmal. Das übernimmt CI zu `490fcba`. ## Nicht geprüft - wie es klingt und ob man den Limiter hört - die graue Anzeige im Browser - das Wegnehmen der Abgriffe beim Tabwechsel - der Limiter im laufenden Spiel (gleiche `SoundLibrary`, gemessen nur im Song-Tab) - der CI-Lauf zu `490fcba`
admin moved this to Done in Development on 2026-10-09 09:38:05 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#359