Der ganz besondere Filter (wieder mal?)

Liebe Community,

ich bin heute auf ein besonderes Ärgernis gestoßen, das mir aktuell noch mächtig Kopfzerbrechen bereitet.

Anforderung:

Filtere mir die Dateien, die in ihrem ID3-Tag noch keinen ReplayGain-Eintrag haben.

Bisheriger Ansatz:

  • Beim Lesen in den Optionen nur ID3v1 und ID3v2 eingestellt.

  • Filter:
    %replaygain_track_gain% IS ""

Problem:

Selbst wenn ich mir die APE-Tags nicht anzeigen lasse, findet der Filter dennoch die in diesen Tags versteckten %replaygain_track_gain%-Felder und wiegt mich damit in falscher Sicherheit.

Ich will auch gar nicht großartig umkopieren oder oder. APE soll von der Suche = dem Filter ausgeschlossen werden, damit nur noch ID3-Tags ohne ReplayGain-Feld angezeigt werden.

Frage: Ist das möglich? Und wenn ja, wie?

Besten Dank und Gruß

ergänzen um
AND NOT %_tag% HAS ape
%replaygain_track_gain% MISSING AND NOT %_tag% HAS ape

Werde ich probieren, danke.

MISSING kannte ich noch gar nicht... :thinking:

Vielleicht einen Blick in die Dokumentation werfen?

Ja, mache ich hin und wieder, und als ehemaliger Forenmoderator weiß ich ebenso um die Nichtnutzung der Suchfunktion, aber an manchen Stellen bin ich dann doch überfordert.

Irgendwann ist der Zeitpunkt erreicht, an dem ich vom Fragesteller zum Ratgeber werde. Aber bis dahin muss ich noch in Sachen RegExp nachsitzen.

Verständnisfrage: Wie sicher bist du dir beim NOT?

Es sollen doch Dateien angezeigt werden, die so ziemlich jeden möglichen Tag haben (im konkreten Fall ist APE der Übeltäter), wo aber nur im ID3-Tag das %replaygain_track_gain%-Feld fehlt.

In meiner Logikwelt passt dass NOT da nicht rein.

Da es aber nur 1 Tag-Feld mit interner Repräsentation in MP3tag geben kann, ist es nach meinem Verständnis egal, ob dieses Tag-Feld in ID3 oder APE Tags gefunden wird, wenn es um den Mangel dieses Tag Felds geht.

Die Arbeitsweise wäre meiner Ansicht nach: alle Dateien finden, die das Feld nicht in ID3 haben, die Daten ergänzen, dann alle APE Tags löschen.

Mit dem oben vorgeschlagenen Filter-Ausdruck findest du alle Dateien, in denen das Feld nicht im ID3-Tag vorhanden ist.

Tut mir leid, aber das ist in dem Fall bedauerlicherweise keine Option.

Dem Konstrukt liegt eine ganz besondere (und durchaus ärgerliche) Konstellation zugrunde.
Es geht ums Webradio mit verschiedenen Sendeprogrammen.

Leider benutzen immer noch viel zu viele "Modis" :roll_eyes: dieses Mp3gain zur Normalisierung. Ich hingegen empfehle ReplayGain via foobar2000.
Selber benutze ich keines, da ich a) gar keine mp3-Dateien nutze und b) meine CDs mit einem Programm rippe, das den ReplayGain-Eintrag nach R 128 (mit anpassbaren Werten) berechnen und schreiben kann. Zudem nutze ich eine Sendesoftware, die ganz unabhängig von allem R 128 immer und überall kalkulieren kann.

Das Problem ist nun:
Ich möchte den (ehemaligen?) Mp3gain-Nutzern ihre Tags nicht wegnehmen, weil sie sie später vielleicht nochmal brauchen könnten. Und das Programm schreibt, bitte nicht nach dem Grund fragen, in APE-Tags.

Das ist der reine APE-Tag. Im ID3-Tag tauchen diese Werte nicht auf.

Das von meinen Kollegen verwendete Programm akzeptiert ReplayGain-Werte leider nur aus ID3-Tags. Und jetzt haben wir den Salat:

  • Nein, es soll nichts gelöscht werden, weil man (unter bestimmten Umständen) Mp3gain die Möglichkeit geben möchte, Einstellungen rückgängig zu machen.

  • Das von meinen Kollegen genutzte Radioprogramm mag ReplayGain nur aus ID3, also muss ich die Dateien finden, die im ID3-Tag noch kein ReplayGain haben.

Ich kann's ja auch nicht ändern, dass da gleich zwei Programme herumzicken, aber die wollen das halt so. Und ich bemühe mich um Hilfestellung.

Jetzt kennst du den Kontext und kannst meine Motivation vielleicht besser nachvollziehen.

Ich habe da noch ein Verständnisproblem.
Mp3Gain ändert doch die Lautstärke selbst im Gegensatz zu Foobar2000. Zwar kann Mp3Gain diese Veränderungen wieder ohne neues Encodieren rückgängig machen mit Hilfe seines mp3gain_undo Tags, wenn man es aktiviert hat. Eine Wiedergabekette arbeitet aber doch mit dieser veränderten Datei.

Ist es das Ziel, in den Tags 2 verschiedene Wertegruppen zu haben, 1x durch Foobar2000 und 1 x durch Mp3Gain?

Ich fürchte, ja. Leider.

Ich habe die Sache mit ReplayGain forciert, weil einer der Moderatoren sich - vollkommen zu Recht! - beschwert hat, dass jedes Radio in Sachen Pegel seine eigene Brötchen backt. Manche davon mit reichlich unsinnigen Werten.

Und weil sich (zu viele) unerfahrene Moderatoren von (zu vielen) meist ahnungslosen selbst ernannten Technikern an der Nase herumführen lassen, machen sie von ihren Original-Musikdateien keine Kopien, sondern überschreiben sie immer und immer wieder:
Von 89 auf 96 auf 92 auf 90 und dann wieder auf 93 angebliche "dB".

Es müssten sich eigentlich noch viel mehr Moderatoren gegen diesen Unsinn wehren bzw. ihre Musikordner viel besser pflegen und sichern bzw. Originale aufheben.
Allerdings ist das in der Webradioszene eine Illusion.

Dass die Qualität dabei irgendwann den Bach runtergeht, dürfte kaum verwundern. Aber sie halten nun mal an ihrem heißgeliebtem Mp3gain fest und das muss ich berücksichtigen.

Jetzt zu Schritt zwei: Das bei uns mehrheitlich verwendete Sendeprogramm, die ReplayGain-nur-ID3-Zicke, macht nur dann Sinn, wenn die Dateien alle mit foobar2000 normalisiert wurden. Es könnten ja Moderatoren dabei sein, die noch nach Mp3gain 96 "dB" normalisiert haben und ihre Dateien nicht zum drölfzigsten Mal überschreiben möchten.

Das Sendeprogramm wird nun also dazu gebracht, auf ReplayGain zu achten. Findet es keinen entsprechenden ID3-Tag, spielt es das Original aus, und das möglicherweise viel lauter als von uns erwünscht (wir sind kein "Brüllradio™").

Punkt 3:
foobar2000 zeigt alle Informationen aus allen Tags an. Dort kann ich nicht differenzieren.
Also nutze ich Mp3tag als Filter, um die nun ausgefilterten Dateien ("ich habe einen ID3-Tag ohne ReplayGain-Eintrag") gezielt in foobar2000 zu ziehen.

Das ist alles.

Okay, jetzt sind wir etwas [OT] geraten, aber im Kern geht es um eins:
Mp3tag soll mir als Filter helfen, wo andere Programme einfach versagen. Anders bekomme ich diesen Wildwuchs einfach nicht geregelt.

... aber das wird doch mit meinem Filter-Vorschlag erledigt, finde ich:
Der lässt nur die Dateien übrig, die ein ID3-Tag haben und in dem fehlt der gain-Eintrag.
Alle Dateien, die APE-Tags haben, haben damit auch einen gain-Eintrag.
Alle Dateien, bei denen der gain-Eintrag PRESENT ist, müssen nicht mehr behandelt werden.
Voraussetzung: das Lesen von APE-Tags ist ausgeschaltet.

Die gewährleiste ich, ja.

Nach meinem Wissensstand schreibt nach einer Analyse Foobar2000 zwar in ID3v2-Tags, findet aber auch vorhandene Ape-Tags und überschreibt diese zusätzlich einfach mit seinen Werten. Dabei löscht es den wichtigen vorhandenen mp3gain_undo Tag. Dieser wäre aber für eine Rückkehr zu dem Stand vor Veränderungen durch MP3gain wichtig.

Es gibt übrigens auch eine Variante von Mp3Gain, die in ID3v2-Tags schreiben kann.

Das kann man konfigurieren. :wink:

Das müsste ich in meinem "Testlabor" nochmal gezielt ausprobieren.

Die kenne ich nicht. Im übrigen hilft das den Kindern, die bereits in den Brunnen gefallen sind, auch nicht weiter.
Nach meiner Kenntnis wurde Mp3gain seit 2001 nicht mehr weiterentwickelt. Mehr sollten wir per PN austauschen, wenn wir den Thread nicht weiter verwässern möchten.

Zum Schluss noch etwas, was mir bei der gestrigen Fernwartung aufgefallen ist:
Ich habe Dateien gefunden, die ausschließlich APE-Tags hatten, also so gerippt oder produziert waren (Jingles eines Hobby-Produzenten). Da musste ich den ID3-Tag erst erzeugen, was dank Mp3tag ja schnell erledigt war.

Da es dir ja anscheinend nicht darum geht, die durch Mp3gain generierten APE Tags zu löschen (oder die durch sie durchgeführten Änderungen an den Audiodateien rückgängig zu machen) frage ich mich, wieso du nicht einfach z.B. rsgain mit entsprechend konservativen Optionen ausführst.

Es ist eine Weile her, dass ich die Dokumentation gelesen habe, aber ich bin mir recht sicher, dass man da einstellen kann, dass rsgain nur bei Dateien, die noch keine replaygain Tags haben, welche berechnet und in die Tags schreibt (alternativ kann es auch bestehende Tags überschreiben, wenn gewünscht).

Vielleicht reicht ja schon der Easy Mode. Das würde die ganze Filterproblematik in Mp3tag aushebeln und funktioniert zumindest im Easy Mode rekursiv. Ansonsten müsste man den Custom Mode nutzen, der aber nicht rekursiv arbeitet (das heißt das müsste man bei Bedarf in ein Script packen, was die Rekursion übernimmt).

Ich würde einfach mal mit ein paar Testdateien ausprobieren, ob dir das hilft. :slight_smile:

Irgendwie sehe ich keine FIlterproblematik. Dateien haben nur APE-Tags, wenn die wg. gain-Info geschrieben wurden.
Wenn ein gain-Feld im ID3V2-tag ist, kann danach gefiltert werden oder auch nach der Abwesenheit. Damit müssten alle zu behandelnden Dateien zu ermitteln gehen..

Tut mir leid, aber das ist so nicht richtig. Ich habe gestern durch Zufall auf dem Remote-Rechner auch mp3-Dateien gefunden, die ausschließlich einen APE-Tag hatten.

Ja - und damit fallen die in die Kategorie "gain fehlt im ID3 tag aber APE Tag ist vorhanden (wo die gain-Daten stehen)" ...