Einzelne Wörter im Tag-Feld nicht in Datei Speichern

Guten Abend,

Ich kann mir vorstellen, dass das jetzt sehr speziell ist...
Gibt es in mp3tag eine möglichkeit in einem Tag-Feld einen Eintrag zu machen, der NICHT als Tag in die Datei gespeichert wird?
Nehmen wir als Beispiel Genre, wenn dort stünde: Heavy Metal; Hard Rock; Metal; Rock
Es wäre schön, wenn es eine möglichkeit gäbe, wenn in mp3tag auch die beiden letzten, Metal und Rock angezeigt werden, andere abspielprogramme es aber nicht anzeigen und auch nicht "erkennen". Klappt das irgendwie? Evtl durch nutzung von Sonderzeichen?
Z.B. Heavy Metal; Hard Rock; {Metal}; {Rock} oder Heavy Metal; Hard Rock; Metal; Rock
Von mir aus wäre auch eine trennung durch komma oder Bindestriche okay, z.B. so: Heavy Metal; Hard Rock; {Metal-Rock}

Vielen dank schon mal und Grüße :slight_smile:

Das hängt dann wohl sehr vom Abspielprogramm ab.
Eine Funktion, die nur wenige Abspieler unterstützen, sind multi-value Felder, also mehrere Felder vom selben Typ.
Probier es mal aus und nimm in MP3tag als Trennzeichen \\
z..B. Heavy Metal\\Hard Rock\\{Metal}\\{Rock}

1 Like

Danke dir!

Ich nutze Musicbee und das unterstüzt leider beides. Also trennung mit ; als auch \
Eine andere Idee die mir gerade kam war, die einträge einfach in ein Taghfeld zu schreiben, welches ich in Musicbee eh nicht nutze und welches von sonstigen abspielern seltenst beachtet wird.
Muss da mal schauen, welches am ehesten Sinn macht. Nicht, dass ich es später doch mal brauche :smiley:

Wenn das Feld wirklich nur für Dich sein soll, kannst Du auch einen x-beliebigen Namen selber erfinden. Das könnte z.B. GREGORIANFANSGENRE heissen oder MYGENRE oder was auch immer.

Das wird garantiert in keinem Player angezeigt. Du kannst es aber damit auch nirgends ausser Mp3tag verwenden.

2 Likes

Ahh, das wusste ich gar nicht, gute Idee!
Gibt es denn auch die Möglichkeit, z.B. über eine Aktion, dieses Feld Automatisch zu füllen?
Also, z.B. dass wenn im Feld GENRE "Heavy Metal; Hard Rock" steht, im Feld MYGENRE automatisch "Metal; Rock" eingetragen wird? Sollte dann aber so sein, dass jedes Genre quasi mit dem Main Genre verknüpft ist.
GENRE "Hard Rock; Acoustic Pop; Trance" Würde dann im Feld
MYGENRE "Acoustic; EDM; Pop; Rock"
erzeugen, weil Hard Rock -> Rock, Acoustic Pop -> Acoustic und Pop, Trance -> EDM

Eine Idee wäre, dass Du im ersten Schritt eine einfache Kopie vom Inhalt des Feldes GENRE in Dein neues individuelles MYGENRE kopierst.

In einem zweiten Schritt reduzierst Du dann den Inhalt in MYGENRE auf die Werte die Du dort noch sehen möchtest. Das müsstest Du aber praktisch pro Genre machen, weil es keinen offensichtlichen Weg gibt, wie Du z.B. aus "Trance" neu "EDM" machst, bzw. das Wort "Trance" durch "EDM" ersetzt.
Bei "Acoustic Pop" und "Hard Rock" könnte man noch diskutieren, ob Du einfach das erste Wort entfernen kannst. Du müsstet aber mal in Deinen existierenden Genres schauen, ob das so funktionieren würde.

Eine Art von Verknüpfung zwischen den einzelne Tags gibt es meines Wissens nicht.

1 Like

Man könnte die Aktionsgruppe zum Kopieren ja erweitern mit einer Aktion vom Typ "Tag-Feld formateiren" für MYGENRE, die dann bestimmte Begriffe ersetzt:
Format string: $replace(%mygenre%,Trance,EDM,Acoustic Pop,Acoustic,Hard Rock,Rock)

1 Like

Genau so habe ich mir das vorgestellt. :wink:

Das setzt aber eine paarweise "Übersetzungsliste" voraus, bei der man manuell definiert, dass z.B. "Trance" zu "EDM" wird.
Nicht vergessen: Es gibt - AFAIK - eine Limite für diese Pärchen, es sind glaub 32?
Erreicht man dieses Limit, braucht es einen weiteren $replace-Befehl.

1 Like

So könnte ich aber aus einem Genre nicht zwei oder mehr Main Genres erzeugen oder?
Dass z.B. aus "Acoustic Pop" im Genre dann "Acoustic; Pop" wird, wäre ja noch machbar, was wäre aber mit z.B. folgender Kombi:
"Acoustic Ballad; Acoustic Metal"?
Acoustic Ballad wäre -> "Acoustic" und "Ballad"
Acoustic Metal wäre -> "Acoustic" und "Metal"
Dann hätte ich im MYGENRE Feld "Acoustic; Ballad; Acoustic; Metal" stehen. also einzelne Einträge doppelt. Gibt mit sicherheit auch kombinationen die noch mehr doppelte erzeugen würden. (z.B. "Rock; Pop; Rock; Metal; Pop; Rock")
Wäre dies über Tag Feld formatieren -> " $trim($regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]);(?=.?(?<=;)\s?\1(?=;|\Z))',,1))" lösbar?

Hast du es ausprobiert? Vermutlich müsstest du statt %GENRE% dein Feld %MYGENRE% verwenden.

1 Like

Also, soweit funktioniert es jetzt. So halb. Ein paar Genres funktionieren aber noch nicht so ganz. Ich glaube, ich weiß auch woran es liegt...
Beispiel: Genre ist: "Pop Rock; Rock Ballad"
Die dazugehörigen Aktionen sehen so aus: (der übersichtlichkeit halber verkürze ich hier mal, punkte sind natürlich nicht in der Aktion)

$replace(%wwwradiopage%,...New Wave,Pop,Pop Ballad,Pop,Pop Rock,Pop,Psychedelic Pop,Pop,...)
$replace(%wwwradiopage%,...New Wave,Rock,Pop Rock,Rock,Prog Rock,Rock,Rock Ballad,Rock,Soft Rock,Rock,...)
$replace(%wwwradiopage%,...Metal Ballad,Ballad,Pop Ballad,Ballad,Rock Ballad,Ballad,...)

Daraus wird dann: Pop; Ballad
Rock fehlt dann also. Ich sehe auch, dass das Problem ist, dass er aus zwei einträgen keine drei machen kann. Gibt es da eine Möglichkeit, dass die Aktion wirklich ALLE replaces beachtet, auch wenn dadurch einträge doppelt entstehen (hier wäre es dann ja "Pop; Rock; Rock; Ballad" oder anderes Beispiel:
Aus "Acoustic Piano; Acoustic Ballad" wird aktuell: "Acoustic", besser wäre, es wird alles beachtet und am Ende kommt halt "Acoustic; Acoustic; Ballad" raus.)
Die doppelten könnte man dann ja wieder über eine nächste Aktion löschen.

Ich würde versuchen, zuerst die längsten Einträge zu ersetzen, dann immer weiter mit immer kürzeren Ursprungs-Genres.
Vermutlich liegt darin das Problem, dass Du mit dem ersten aktuellen $replace zwar Genre ersetzt, aber dann später im zweiten und dritten $replace diese nochmal änderst oder bereits ersetzte Genres wieder anders als bei den vorherigen Versuchen veränderst.

Vermutlich liegt es aber auch daran, dass ein
$replace(%GENRE%,Pop,test)
in einem vorhandenen GENRE mit dem Inhalt
Other Pop Third
den Teil Pop auch ersetzt und ignoriert was vorher und nachher folgt und deshalb zu
Other test Third
wird.

Wenn du 1x Pop Rock durch Pop ersetzt hast, ist kein Pop Rock mehr da, um das durch Rock zu ersetzen.

Ja, klingt plausibel.

Ich hätte da eine Idee, falls das funktioniert.
Gäbe es eine Möglichkeit es so zu machen, dass die Aktion direkt, in einem rutsch, aus dem Feld GENRE nach MYGENRE kopiert und umbenennt? Vielleicht über einen $if ?
quasi so was wie
$if%genre%is Pop Rock write Pop; Rock; to %mygenre%
$if%genre%is Rock Ballad write Rock; Ballad; to %mygenre%
$if%genre%is Dark Wave write Rock; to %mygenre%
In dem Fall würde am Ende "Pop; Rock; Rock; Ballad; Rock;" in MYGENRE stehen, doppelte ließen sich ja über eine weitere aktion entfernen.

Problem wäre dann evtl, wenn mehrere Genres in GENRE stehen...

Die $IF()-Bedingung ist ja eigentlich schon über das $replace() erschlagen, weil ja nur ersetzt wird, wenn es einen Treffer gibt.
Du kannst eine mehr oder weniger lange Kette in MYGENRE kriegen mit der Aktion "Tag-Feld formatieren" für MYGENRE
Format string: $replace(%genre%,Dark Wave,Rock,Pop Rock,Pop; Rock,Rock Ballad, Rock; Ballad);%mygenre%

Am Ende musst du mal checken, ob zu viele Semicoli hintereinander stehen und ja, die doppelten Genres müssten ggf. auch raus.