Wie normalisieren? MP3Gain, ReplayGain, EBU R 128 (s2) vs. Peak

:warning: Es folgt ein langer Text.
Zum Resümee am Ende geht es mit diesem >Klick<.


Angesichts eines mitunter nahezu dogmatischen Beharrens auf der einen richtigen Methode zur Normalisierung möchte ich, auch wenn es zunächst nicht primär mit mAirList zu tun zu haben scheint, mit Fakten aufwarten. Der Bezug zu mAirList wird in der Folge zwischendurch immer wieder hergestellt.

Peak

Bei dieser Methode richtet sich diie Normalisierung nach dem höchsten Punkt in der Wellenform. Alles richtet sich danach und wird entsprechend reduziert (bei dynamischen Titeln) oder hochgezogen (bei stark komprimiert gemasterten Titeln).
Die Lautheitssprünge sind dabei, systembedingt, quasi vorprogrammiert.

  • dBfs
    “full scale” = bezogen auf die (digitale) Vollaussteuerung = 100%.
    0 dBfs ist der höchte Wert einer Minus-Skala - und dennoch gibt es Plus-Werte. Das hat mit einer bestimmten Berechnungsmethodik zu tun. Musikwiedergabe und -aufnahme in der digitalen Welt führen nicht automatisch zum Entfall der Übersteuerung.
    Später werde ich darauf zurückkommen.

  • dBTP
    “True Peak”, eine aktuelle, gründlichere Berechnungsmethode, um die bis dahin unberücksichtigten Intersample Peaks, z.B. bei der Wandlung in mp3-Dateien, zu erkennen und zu begrenzen.
    Auch das wird später erneut aufgegriffen.

In mAirList ab v6.0 kann man das berechnen und sich anzeigen lassen: 0 dBfs können zu dBTP-Werten > 0 führen.

Die Normalisierung nach Peak darf ruhigen Gewissens als überholt angesehen werden.

MP3Gain

Vor allem zu Beginn der aufkeimenden Webradioszene wurde MP3Gain als das Mittel zur Lautheitsangleichung angewendet und wird bis heute von Generation zu Generation folgender (Hobby-)Moderatoren weiterempfohlen.
Seit der letzten Version aus dem Jahre 2005 wird MP3Gain nicht mehr weiterentwickelt, obwohl der zugrundeliegende Algorithmus verbessert wurde.

MP3Gain funktioniert ausschließlich (!) mit mp3-Dateien, aber keinem anderen Codec!

Entgegen anderslautender Informationen verändert MP3Gain die Datei nachweisbar physisch.
Ein Vergleich zwischen einer unbearbeiteten Datei als mp3 und dieser Datei nach der Behandlung in MP3Gain mit “89 dB” in einer Wellenform in Audacity zeigt das deutlich.

Original:

MP3Gain “89”:

Recht beliebt scheint auch die Variante “92 dB” zu sein.

Ich habe von Hobbyradiosendern gehört, die sogar “96 dB” als Zielwert vorgeben. Das Ergebnis ist ernüchternd:

Betrachten wir die Unterschiede in den Messwerten:

Typ Lautheit (LUFS) LRA dBTP (max) Peaks > 0
Original-CD (mp3) -11,8 7,4 1,3 1229
MP3Gain “89” -17,8 7,4 -4,7 0
MP3Gain “92” -14,8 7,4 -1,7 0
MP3Gain “96” -10,3 7,4 2,8 91.224

Deutlich erkennbar: Mit “96 dB” wird das Ergebnis lauter als die Original-CD.

Wenn man sich jetzt vor Augen hält, dass manche Radiosender einen Pegel von -10,9 oder gar -8,8 LUFS fahren, dann liegt man damit (z.T. deutlich) über dem hier gezeigten CD-Original.

  • Kann man die Anpassungen, die von MP3Gain innerhalb der Datei vorgenommen wurden, wieder rückgängig machen?

Ja, aber
Das funktioniert nur, wenn es unter den gleichen Bedingungen (Parametern) erfolgt, unter denen auch gegaint wurde.
Im nachfolgenden Beispiel habe ich versucht, eine auf “89 dB” gegainte Datei in MP3Gain mit dem Parameter “96 dB” rückgängig zu machen.

Das hat so nicht geklappt. Daher ist es keine gute Idee, mp3-Dateien erneut bearbeiten zu wollen, wenn man zwischenzeitlich die Parameter in MP3Gain verändert hat.
Was einmal (physisch) verändert wurde, ist verändert. Punkt.

ReplayGain

Obwohl ReplayGain ursprünglich den gleichen Algorithmus verwendet hat wie MP3Gain, so ist die Vorgehensweise doch vollkommen unterschiedlich.
Anstatt die Datei selbst zu verändern, werden in den ID-Tag der Datei entsprechende Korrekturwerte geschrieben. Die meisten Player können diese Werte auslesen und entsprechend umsetzen. Auch mAirList kann das schon seit mehreren Generationen, mindestens jedoch seit zehn Jahren: Der ReplayGain-Wert kann als Verstärkung importiert werden.

ReplayGain ist auf fast alle Codecs anwendbar, in die die Korrekturwerte geschrieben werden können - auch flac (Vorbis Comment).

Weiter oben hatte ich zu MP3Gain geschrieben:
“Seit der letzten Version aus dem Jahre 2005 wird MP3Gain nicht mehr weiterentwickelt, obwohl der zugrundeliegende Algorithmus verbessert wurde.”

Obwohl es ReplayGain auch als Kommandozeilen-Tool und ebenfalls als GUI-Anwendung gibt, nutze ich die Funktion in foobar2000. Dort ist die Weiterentwicklung besonders gut zu beobachten.
Anfangs gab es noch die Einstellung “89 dB”, die man anpassen konnte. Später kam die Limitierung auf dBTP hinzu. Mittlerweile ist der Stand noch einfacher:

Um das Ergebnis messbar und die Wellenform in Audacity anzeigbar zu machen, habe ich den Umweg über den mAirList-Mixdown gewählt.

foobar2000 mit Classic ReplayGain:

foobar2000 mit R 128:

Gibt es einen Unterschied? Betrachten wir die Messungen:

Typ Lautheit (LUFS) LRA dBTP (max) Peaks > 0
foobar2000 (RG) -17,3 7,4 -4,3 0
foobar2000 (R 128) -17,9 7,4 -4,9 0

Bemerkenswert: Ohne dass irgendeine Einstellung in foobar2000 vorgenommen werden musste, wurde R 128 offenbar auf -18 LUFS festgelegt, was wiederum dem Zielkorridor der aktuellen EBU R 128 s2 entspricht (siehe nachfolgend).
-23 LUFS oder andere Werte scheinen damit jedoch nicht möglich zu sein.

  • Widerruf der ReplayGain-Werte:
    Um ReplayGain rückgängig zu machen, reicht es, die entsprechenden ID-Tag-Felder mit einem Editor (z.B. Mp3Tag) zu entfernen oder, alternativ, mit neuen Werten zu überschreiben.
    Die eigentliche Audiodatei wird dabei nicht verändert.

EBU R 128 (via mAirList)

Zur Funktionsweise des der R 128 zugrundeliegenden Algorithmus verweise ich auf diesen hervorragenden Beitrag von @Tondose.

Der dort empfohlene Zielwert beträgt -23 LUFS.
Im supplement 2 (s2) vom August 2020 (letzte Revision im Juni 2021) ist unter bestimmten Voraussetzungen auch ein Bereich von -20 bis -16 LUFS als temporär möglich definiert.

Im folgenden Beispiel habe ich -18 LUFS als Zielwert verwendet (das war das supplement 2 mit Stand vom August 2020).

Beim Messwert sollte sich ein déjà-vu einstellen:

Typ Lautheit (LUFS) LRA dBTP (max) Peaks > 0
EBU R 128 s2 -17,9 7,4 -4,9 0

Das ist absolut identisch zum R 128 aus ReplayGain von foobar2000.

  • Wie kann ich in mAirList diesen Wert anpassen?
    In der Konfiguration > Verschiedenes > Normalisierung ist der Wert für LUFS gemäß Spezifikation auf -23 gesetzt. Er kann (nicht nur) auf -20 / -18 / -16 angepasst werden (danach bitte die Normalisierung erneut durchführen!).

  • Widerruf der Normalisierung in mAirList:
    Der Korrekturwert der Normalisierung ist im Feld “Verstärkung” der Element-Eigenschaften zu finden. Er kann ganz einfach auf 0 gesetzt werden, das ist alles.
    Das ist ebenfalls mit der Massenbearbeitung möglich.
    Auch hier findet keine Veränderung der eigentlichen Datei statt.

Verlustbehaftete Codecs und True Peak

Zu Beginn hatte ich geschrieben:
“Musikwiedergabe und -aufnahme in der digitalen Welt führen nicht automatisch zum Entfall der Übersteuerung.”

Das gilt auch bei der Wandlung von Audiodateien in verlustbehaftete Formate wie z.B. mp3. Im konkreten Beispiel nutze ich eine CD, die im Mastering bis fast auf die letzte Spitze ausgereizt wurde.

Als wav-Datei, wie vorab zu sehen, ist alles (ganz knapp) noch in Ordnung. Rippe ich diese CD jedoch als mp3, entsteht, quasi von ganz allein, ein kleines Problem:

Dieses Ergebnis entsteht dadurch, dass beim Mastering der CD praktisch kein Headroom gelassen wurde.

Typ Lautheit (LUFS) LRA dBTP (max) Peaks > 0
Original-CD (wav) -11,8 7,5 -0,2 0
Original-CD (mp3) -11,8 7,4 1,3 1229

Bei -0,2 dBTP ist der Peak bei der mp3-Wandlung - Stichwort: Intersample Peaks, siehe oben - eine zwingende Folge. Leider ist davon auszugehen, dass die meisten CDs heutzutage ähnlich gemastert sind.
Auf die Lautheit hat das jedoch keinen Einfluss.

Das ist nicht allein auf mp3 beschränkt. Auch bei aac ist mir das aufgefallen, wenngleich nicht in diesem Umfang.

Resümee

  • Peak-Normalisierung darf als überholt angesehen werden, da dieses Verfahren in den meisten Fällen zu Lautheitsschwankungen führt.

  • MP3Gain verändert die Datei auf Basis eines veralteten Algorithmus. Unter gewissen Umständen ist diese Änderung nicht einfach rückgängig zu machen.

  • ReplayGain zusammen mit einem True Peak Scan führt zu sauberen Ergebnissen; allerdings wird man damit keinen Lautheitswettbewerb gewinnen (wozu auch?).

  • Wir dürfen von einem Ausspielprogramm (inklusive Automationen) ruhigen Gewissens erwarten, ReplayGain-Werte verarbeiten zu können. mAirList beweist seit mindestens zehn Jahren, dass es keine technischen Hürden dafür gibt.

  • EBU R 128 ist für angenehmes Hören aktuell das Mittel der Wahl.
    Nicht jedes Musikstück ist jedoch für eine Lautheitsnormalisierung von bis zu -16 LUFS geeignet. Es gibt Grenzen, die individuell zu prüfen sind. Radiosender sind gut beraten, diese Grenze eher niedrig anzusetzen, zumal das Ziel auf Dauer ohnehin -23 LUFS lautet.

  • Verlustbehaftete Codecs sind nicht unbedingt das Mittel der Wahl, wenn man seine Musik qualitativ hochwertig web- oder broadcasten möchte. Hierbei ist der jeweilige Einzelfall zu betrachten.

  • ES GIBT KEINE AUSREDE FÜR BRÜLLEND LAUTE RADIOPROGRAMME!


Technische Daten:

CD: Milchbar // Seaside Season 13 compiled by Blank & Jones ℗ 2021
Gerippt mit dBpoweramp Release 17.3 als mp3 und wav.
ReplayGain mit foobar2000 Version 1.6.6
MP3Gain mit Version 1.3.4 (Backend Version 1.4.6)
Mixdown der ReplayGain-Dateien mit mAirList v6.3.11 Build 4434
Wellenformen mit Audacity Version 3.0.2
Lautheitsanalyse mit Orban Loudness Meter Version 2.9.6

Zusammenfassung aller Messergebnisse auf einen Blick:

Typ Lautheit (LUFS) LRA dBTP (max) Peaks > 0
Original-CD (wav) -11,8 7,5 -0,2 0
Original-CD (mp3) -11,8 7,4 1,3 1229
MP3Gain “89” -17,8 7,4 -4,7 0
MP3Gain “92” -14,8 7,4 -1,7 0
MP3Gain “96” -10,3 7,4 2,8 91.224
foobar2000 (RG) -17,3 7,4 -4,3 0
foobar2000 (R 128) -17,9 7,4 -4,9 0
EBU R 128 s2 -17,9 7,4 -4,9 0

Und jetzt ihr!

:sunglasses:

2 Likes

Falsch. Positive Werte gibt es nur bei dBTP.

Danke für das Schließen der Wissenslücke. :+1:

Frage: Weißt du, wie es bei Audacity zur Anzeige der Übersteuerungen kommt? Soweit ich weiß, benutzt ein Audacity ein simples Peakmeter ohne dBTP. Dennoch werden Samples mit “Überlauf” als Peaks markiert (ich glaube, es müssen drei oder mehr in Folge sein).

Auch mAirList kann (digitale) Übersteuerungen anzeigen, ohne dafür in die TP-Trickkiste mit Oversampling greifen zu müssen.
Man kann die Werte dafür sogar selber einstellen.
Torben antwortete in dem entsprechenden, zugrunde liegenden Beitrag auf eine Frage:

Für mich heißt das: dBfs kann Übersteuerungen anzeigen, dBTP kann sie in positive Werte umrechnen bzw. als solche darstellen. Stimmt das?

Nein. Oben ist immer 0 dBfs. Du kannst Dir lediglich aussuchen, ab welchem (immer negativen!) Wert die Anzeige ihre Farbe wechselt. Auch mAirList kann nicht über 0 dBfs hinaus aussteuern, es gibt keinen Headroom darüber. (Es sei denn, es arbeitete intern mit 24-Bit-Auflösung, was ich bezweifle. Ganz streng genommen gibt es in der dBfs-Skala auch keine Übersteuerung, sondern nur Clipping, aber das ist Krümelkackerei.)

Kämest Du jetzt an und definiertest Dir einen Uli-Nobbe-Studio-Standardpegel, der kann irgendwo auf der dBfs-Skala sein, sagen wir bei –9 dBfs, dann kommt wie Kai aus der Kiste plötzlich doch ein Headroom zustande, nämlich genau diese 9 dB. Dann müßtest Du Dir auf dem Pegelmesser eine Marke anbringen („0 dBnob“, und außerdem den gesamten Rest Deiner Anlage darauf einmessen), und alles darüber wäre – nach Deiner Definition – übersteuert. (Über +9 dBnob kämest Du aber trotzdem nicht hinaus.) Und genau für diese „Marke“ sind die verschiedenen Farbbereiche auf der mAirList-Anzeige einstellbar.

Daß mAirList dBTP anzeigen kann, bezweifle ich; meiner Auffassung nach geschieht die True-Peak-Berechnung rein intern und wirkt sich nicht auf die Anzeige aus. @Torben möge mich korrigieren.

Wenn wir gerade dabei sind: Die zappelnden Farbbalken in mAirList sind nur qualitative Anzeigen und gar keine Pegelmesser, weil für einen solchen auch die ballistischen Eigenschaften (Anstiegs-, Abfall(!)zeiten usw.) geeicht sein müßten. Torben hat das umzusetzen an anderer Stelle abgelehnt, leider, jedoch aus gutem Grunde.

Die Vorgänge in Audacity sind mir nicht bekannt, dürften sich aber auf ähnliche Algorithmen stützen wie die in mAirList verwendeten: Ist der Pegelwert ≥ <Zahl>, dann mach rot.

1 Like

mAirList (bzw. BASS) arbeitet intern sogar mit 32-bit floating point; daher sind - bei der internen Verarbeitung - problemlos Samplewerte >1.0 (= 0 dBFS) möglich, ohne dass es zu Clipping kommt.

Du kannst ja mal aus Spaß einer Datei +20 dB Verstärkung geben und gleichzeitig die Player-Lautstärke auf -20 dB stellen :wink:

Aber natürlich sind alle GUI-Anzeigen darauf ausgelegt, dass die Signale die 0 dBFS niemals überschreiten.

Respekt! Das gefällt mir. Mein Beitrag oben ist dahingehend als unzutreffend zu beachten.

1 Like