Author Topic: Ausgabepegel verwalten  (Read 7704 times)

Moonbase

  • Newbie
  • *
  • Posts: 5
    • View Profile
    • Moonbase: The Problem Solver
Re: Ausgabepegel verwalten
« Reply #30 on: November 17, 2008, 07:34:48 »
Ich denke, einige verwechseln immer noch gern »MP3Gain« mit »Replay Gain« – zumal die Ausdrücke fälschlicherweise oft synonym gebraucht werden.

MP3Gain ist ein Tool, das die einzelnen Frames einer MP3-Datei anpackt und dort die Lautstärke in 1,5dB-Stufen variiert. Zusätzlich schreibt es ein APEv2-Tag, in dem Informationen zum Rückgängigmachen der Änderung sowie Replay Gain-Informationen für die Differenz zwischen Soll- und Ist-Korrektur abgelegt sind.

Damit sind von MP3Gain »behandelte« Dateien ohne weitere Tools auf nahezu jedem Gerätchen abspielbar – es war ja lange Zeit auch quasi »die einzige« Möglichkeit.

Replay Gain ist der Algorithmus zur Berechnung der Lautstärkenanpassung auf eine gegebene »Ziel-Lautstärke« (im Original von 2001 noch 83 dB, heute allgemein 89 dB, nur welche? Nehme mal an, dBFS … oder doch db SPL?).

Programme, die mit Replay Gain »umgehen« können, gibt es zweierlei:
  • Die Analyser, die die Korrekturwerte durch Decodieren der Audiodaten errechnen und dann in Tags abspeichern, jedoch ohne etwas an Audiodaten bzw. MP3-Audioframes zu verändern, und
  • Die Abspiel-Programme, die die Tags lesen und einfach die Lautstärke anpassen (bzw. BASS.dll die Korrekturwerte übergeben)
 
MP3Gain ist insoweit ein »Sonderfall«, als dass es die Werte mittels des Replay Gain-Algorithmus errechnet, aber zusätzlich Änderungen an den Audio-Frames selbst vornimmt. Was es dann selbst nicht korrigieren kann, speichert es als »Differenz-ReplayGain-Tags«. Somit werden quasi die Audiodaten geändert (ok ok, nur ein paar loudness bits, nicht der content), damit ist eine mit MP3Gain »behandelte« Datei quasi »lautstärkerichtig« auf allem abspielbar, was MP3 decodieren kann (natürlich auch BASS.dll). Der Grund für die zusätzlichen »Differenz-Tags« ist die technisch bedingte Begrenzung auf Lautstärken-Anpassung in 1,5 dB-Schritten – anders geht das nicht, wenn man »verlustfrei« in den Frames korrigiert.

Für ReplayGain-Unterstützung muss jedoch einer der Korrekturwerte aus den Tags gelesen und vom Player »angewandt« werden. Das erlaubt es, wahlweise im »audiophile mode« (Album Gain) oder im »radio mode« (Track Gain) zu lauschen (um z.B. bewusste Lautstärkeunterschiede innerhalb eines Albums so zu belassen und nicht alles »auf gleiche Lautstärke zu knüppeln«). Mit ReplayGain sind auch »feinere« Abstufungen möglich, theoretisch nur begrenzt durch die digitale Auflösung der Audiodatei (und des Players).

Ganz allgemein sind mir natürlich auch Dinge lieber, die nur einen Wert ermitteln, den irgendwo ablegen (Tag, Datenbank, Gehirn des Moderators zum Faden, …) anstatt jedes Audioframe einer Datei zu verändern. Ich gehe immer noch davon aus, dass der Originator der Datei sich dabei was gedacht hat, sie eben genau so zu machen wie sie ist … Was ich (oder mein mAirList, mein Compressor/Limiter, …) dann hinten draus mache – ohne das Original zu verändern – ist meine Sache.

Ich meine mich zu erinnern, dass man diesen »ReplayGain-Wert« auch an die BASS.dll übergeben kann und die dann »die Arbeit« übernimmt, habe das aber jetzt nicht überprüft. Ich vermute aber, das meinte Torben weiter oben auch.

EDIT: Für BASS würde ich wohl als ersten Ansatz sowas wie
Code: [Select]
BASS_SetConfig(BASS_CONFIG_CURVE_VOL, TRUE); // set dB scale 0..1 = 0..-100 dB
BASS_ChannelSetAttribute(handle, BASS_ATTRIB_VOL, replaygain_track_gain/100);
versuchen. BASS_FX kann das natürlich bestimmt viel »schöner«, aber wenn man das erstmal anfängt, schreien eh gleich alle nach Effekten, Pitch, Tempo und BPM …

EDIT 2: Das ist natürlich nur ein erster Ansatz … some thinking required … weil immerhin auch positive RG-Werte möglich sind (dann würde das so nicht direkt funktionieren).
« Last Edit: November 17, 2008, 20:01:27 by Moonbase »

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #31 on: November 17, 2008, 21:41:42 »
Gut recherchiert. Das mit BASS_ATTRIB_VOL geht leider nicht, weil ich das schon für das Ausfaden verwende.

Aber wie gesagt: mAirList 3.0 wird die Möglichkeit bieten, eine zusätzliche Verstärkung anzugeben (die ich über eine DSP-Funktion realisiert habe). Wenn ich eine passende Bibliothek für die APE-Tags finde, sollte es ein leichtes sein, diesen Wert daraus zu übernehmen.

lifechannel

  • Regular
  • *
  • Posts: 1432
  • Professional Edition V4
    • View Profile
    • http://www.lifechannel.ch
Re: Ausgabepegel verwalten
« Reply #32 on: November 17, 2008, 21:43:43 »

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #33 on: November 17, 2008, 21:46:49 »
Stimmt, damals hatten wir das Thema schonmal.

Ich hab gerade gesehen, dass die "ATL"-Library, die ich derzeit schon für ID3-, Ogg- und FLAC-Tags benutze, auch APE kann. Technisch ist das also alles kein Problem, ich bräuchte nur mal ein paar freie Minuten...

Moonbase

  • Newbie
  • *
  • Posts: 5
    • View Profile
    • Moonbase: The Problem Solver
Re: Ausgabepegel verwalten
« Reply #34 on: November 18, 2008, 04:03:06 »
Jepps. Allerdings bitte nicht vergessen, die Tags aus ID3v2 auszulesen. Vernünftige Menschen haben nur eine Sorte Tags ;-) (Die Sache mit dem APE-Tag hat er damals wohl nur gemacht, weil noch kein Player die »konnte« …)

Heutzutage werden die ReplayGain-Tags in aller Regel in ID3v2 getagged (z.B. von foobar2000, Winamp, metamp3 usw.) Bei so Sachen wie OGG natürlich als Vorbis Comment.
« Last Edit: November 18, 2008, 04:05:24 by Moonbase »

jangk

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Ausgabepegel verwalten
« Reply #35 on: September 25, 2010, 10:01:19 »
Ich hoffe, dass es ok ist, ein solch altes Topic wieder hervorzukramen.

Da ich mit Hilfe der Suchfunktion nicht feststellen konnte, dass das Nutzen von ReplayGain in mAirList möglich wäre (wegen der bass.dll),
stelle ich hier die Frage, ob eine Implementierung von ReplayGain in Zukunft beabsichigt ist, bzw. hierfür Interesse besteht.

Beste Grüsse

Jean

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #36 on: September 25, 2010, 10:09:12 »
Ich muss zugeben, ich hab das nicht mehr alles so im Kopf. Hilf mir mal auf die Sprünge:

Ist es tatsächlich so, dass durch den Replay Gain nur eine gleichbleibende Verstärkung pro Track angegeben wird? (Also nicht auf Frame-Level, wie bei der Technik, die mp3gain nutzt?)

Wenn ja, dann sollte es sehr leicht möglich sein, das zu implementieren. mAirList hat ja jetzt schon einen "Amplification"-Wert pro Track (kann man im PFL-Fenster verändern). Dann müsste man nur beim Neuimport der Titel den ReplayGain-Wert aus den Tags auslesen und als Amplification übernehmen.

jangk

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Ausgabepegel verwalten
« Reply #37 on: September 25, 2010, 10:49:40 »
So wie ich es verstanden habe, entspricht das Verfahren Deiner Beschreibung.

ReplayGain sollte aber im Player (oder in der Configuration) zu/abschaltbar sein.

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #38 on: September 25, 2010, 10:55:03 »
Wenn wir das so realisieren, wie es mir vorschwebt, dann wird der ReplayGain-Wert schon beim Import der Datei (in die Playlist oder Datenbank) ausgelesen. Wenn die Datei erstmal im Player ist, ist es zu spät, das zu deaktivieren. Wobei man natürlich jederzeit die Verstärkung wieder auf 0 setzen kann.

Das würde dann auf eine neue Datei-Import-Option hinauslaufen.

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #39 on: September 25, 2010, 11:26:15 »
Ich habe mir die Sachen gerade noch einmal durchgelesen. Eine offene Frage gibt es noch:

Es kann beim ReplayGain durchaus sein, dass die angegebene Verstärkung so groß ist, dass der Titel an seinen Peaks übersteuert. Deswegen wird im ReplayGain-Header auch der Peak-Wert gespeichert - man kann also leicht kontrollieren, ob die angegebene Verstärkung zur Folge hätte, dass der Peak plötzlich >1 (0dB) ist und der Titel übersteuert.

Wenn das nun der Fall ist, werden zwei Lösungsmöglichkeiten vorgeschlagen (siehe http://replaygain.hydrogenaudio.org/player_clipping.html):

1. Einen Limiter benutzen.

2. Den ReplayGain-Wert wieder soweit reduzieren, dass der Peak bei 0dB landet - was aber den ReplayGain-Effekt evtl. zunichte macht.

Leider hat mAirList keinen Limiter (pro Player) eingebaut. Lösung Nr. 1 würde also allenfalls funktionieren, wenn man ausschließlich über den Encoder sendet und dort ein entsprechendes VST-Plugin mitlaufen lässt. Ich könnte vielleicht einen Hard Limiter als einfache Option auch in die normale Soundausgabe einbauen, bin mir aber gerade nicht sicher, ob das so einfach ist. Muss ich mir angucken.

jangk

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Ausgabepegel verwalten
« Reply #40 on: September 25, 2010, 13:17:17 »
Es ist schon ok, dass die Verstärkung nicht über 1 (0dB) geht.

In foobar2000 hat man in den Preferences die Option bei der Wiedergabe "apply gain and prevent clipping according to peak",
d.h. die Verstärkung wird soweit zurückgedreht, dass die Peaks auf maximal 0dBFS reichen.

Ich sehe es eher so, dass die Anpassung der physiologisch gleichlaut empfundenen Lautstärke auf eine Dämpfung (negative Verstärkung) hinausläuft.

Im Endeffekt sind dann aber die Träcks ähnlich in der empfundenen Lautstärke (darin liegt ja die Arbeit des ReplayGain Algorithmus).
Die verlorene Lautstärke wird dann einheitlich z.B. im Mischpult wieder aufgeholt.


radiorom

  • Regular
  • *
  • Posts: 582
    • View Profile
    • R.O.M.
Re: Ausgabepegel verwalten
« Reply #41 on: September 25, 2010, 17:44:50 »
Moien Jang, Hallo Torben.

Eine ähnliche Diskussion hatte ich hier schon mal angestossen:
http://forum.mairlist.com/index.php/topic,4359.0.html
Wobei wir mittlerweile alle mp3s auf -89dBSPL gesetzt haben und den Pegel am Mischpult auf +3dBu gesetzt haben.
Zur "Kalibration" des Playout-PC zum Mischpult hin habe ich die Rosa-Rauschen-Datei von Replay-Gain benutzt welche auf 89dB Pegel gesetzt wurde und preset wird dann beim Abspielen der selben auf +3dBu gesetzt.
http://replaygain.hydrogenaudio.org/ref_pink.wav
Der Rest macht ein äussert weicher Kompressor mit "interactive Knee" Funktion dem ein Limiter nachgeschaltet ist.

Deshalb ist unser Preset vom "mAirList" Fader auch blockiert und nicht für den Moderator veränderbar.
Das Problem ist hier immer wieder "Schulung der Moderatoren" daran scheitert es immer wieder. Und wo man nix drehen und verstellen kann, da geht auch nix schief. (K.I.S.S. halt)

Jean, bei deinem letzten Besuch hatte ich das Thema Pegel mal kurz angesprochen.
Ich denke dein Problem liegt darin dass eure Tracks alle in FLAC sind, oder? Es gibt wahrscheinlich kein Programm à la mp3gain was die Datei entsprechend absenken kann, oder?

Torben, wir benutzen ja nicht die Datenbank; ein "Player embedded Replay Gain", wie würde sich das auf Ladezeiten auswirken wenn keine Absenkwerte in der Datenbank gespeichert sind. Der Track müsste zunächst ja zunächst mal analysiert werden bevor er in der Playlist landet.
So eine Funktion wäre schon nicht schlecht weil einige (unbelehrbare) Moderatoren immer irgendwelche Tracks auf USB Stick mitschleppen welche nicht auf 89 dBSPL geleveled sind (muss ja schön laut sein im mp3-Player...)
So eine Funktion würde das schon mal lösen.

Oder liege ich falsch in meinen Annahmen betreffend dieses Thema?

Gruss:
-Serge-
R.O.M. 106,5 FM - The music of Luxembourg
               http://www.rom.lu

jangk

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Ausgabepegel verwalten
« Reply #42 on: September 25, 2010, 18:16:16 »
Moin Serge, Torben,

egal ob FLAC, oder mp3, beide Formate können die Informationen von ReplayGain abspeichern.

Es geht mir in erster Linie darum, dass zwischen den einzelnen Tracks kein zu grosser Unterschied im Lautheitsempfinden entsteht,
das bedeutet, dass die heute produzierten Briketts runtergeregelt werden müssen, während Tracks mit einer Dynamik wie sie in den 70er Jahren noch üblich war, eventuell unangetastet bleiben. Das erleichtert den Moderatoren die Aussteuerungsarbeit.

Gruss

Jean

Torben

  • Administrator
  • Doktor mAirList
  • *****
  • Posts: 11106
    • View Profile
Re: Ausgabepegel verwalten
« Reply #43 on: September 25, 2010, 18:49:50 »
Torben, wir benutzen ja nicht die Datenbank; ein "Player embedded Replay Gain", wie würde sich das auf Ladezeiten auswirken wenn keine Absenkwerte in der Datenbank gespeichert sind. Der Track müsste zunächst ja zunächst mal analysiert werden bevor er in der Playlist landet.

mAirList soll die Dateien nicht selbst analysieren, sondern nur den vom CD-Ripper etc. in die Tags geschriebenen ReplayGain-Wert auslesen und beim Abspielen entsprechend berücksichtigen.

jangk

  • Newbie
  • *
  • Posts: 45
    • View Profile
Re: Ausgabepegel verwalten
« Reply #44 on: September 25, 2010, 19:30:10 »
Quote
mAirList soll die Dateien nicht selbst analysieren, sondern nur den vom CD-Ripper etc. in die Tags geschriebenen ReplayGain-Wert auslesen und beim Abspielen entsprechend berücksichtigen

Ja, so ist es genau.