Albumkünstler umsortieren

Hallo @all
Habe ca. 800 Alben mit an die 20'000 Tracks. Die Album-Künstler(Interpret) Sortierung hat das Format: Vorname Nachname

Ich möchte nun dies automatisch ändern auf: Nachname, Vorname. Wie mache ich das? Wie extrahiere ich aus Album-Künstler den Vornamen und Nachnamen.
Oder Wie extrahiere ich aus dem Pfad den Interpret. Meine Struktur auf dem PC: X:\Music\CD\Album-Künstler\Album. Hier ist der Album-Künstler im Format:
Nachname, Vorname. Also so wie ich es auch im Tag Album-Künstler-Sortierung haben möchte.

Danke jetzt schon für eure Hilfe.

Du kannst mit einer Aktion vom Typ "Ersetzen mit regulärem Ausdruck" für ALBUMARTIST 2 Wörter tauschen:
Suchen: (.) (.)
Ersetzen: $2, $1

Du müsstest dann ggf. eine eigene Aktion für 3 Namensbestandteile (z.B. Carly Rae Jepsen) bauen.

Aber mein persönlicher Rat: lass es.
Pink Floyd sollte nicht zu Floyd, Pink werden.
Deep Purple sollte nicht zu Purple, Deep werden.
Earth, Wind and Fire nicht zu Wind and Fire, Earth, werden.
Und mein absoluter Star: The The nicht zu The, The.
und so weiter und so fort. Es gibt am Ende mehr Ausnahmen als reguläre EInträge und dann musst du dir immer merken, welche Namen denn nun umgesetzt wurden und welche nicht. Nimm die Namen so, wie sie sind: als feste Eigennamen und lass sie, wie der Künstler sich benannt hat.

Wenn du das trotzdem machen willst und nun auch die Ordner anders benannt werden sollen, nimm eine Aktion vom Typ "Tag-Feld formatieren" für _DIRECTORY
Format-String: X:\Music\CD\%Albumartist%\%Album%

Edit: zu diesem Problem gibt es noch mehr Anleitungen und eine ebenfalls längliche Diskussion zum Für und Wider, z.B. /t/13848/1
wie schon in 2012 bin ich immer noch der Meinung: ein Tausch richtet nur Chaos an.

Aktion: Tagfeld formatieren
Feld: Album-Künstler-Sortierung
Formatstring: %_parent_directory%

DD.20141231.1159.CET

@ ohrenkino: Danke für deine Antwort

:slight_smile: Habe ich mir auch schon gedacht.
Bei meiner Sammlung handelt es sich um Jazz-Musik, da kommen solche Konstrukt wie "Pink Floyd" selten vor.
Öfters kommt jedoch vor z.B. Cannonball Adderly das wird aus MusicBrainz auch mal so geschrieben:
Julian "Cannonball" Adderly. Daturch bekomme ich unter Albumkünstler 2 verschiedene Künstler angezeigt.
Mit der Umstellung könnte ich dieses Problem nicht lösen aber die 2 Künstler schneller finden und dann vereinheitlichen.
Bekomme sicher dafür andere Probleme :slight_smile:

@ DetlevD: Danke auch dir.

Funktioniert nur solange das Album nicht noch einen Unterordner hat mit z.B. "CD 1" usw.
Habe versucht: $mid(%_folderpath%,13,$len(%albumartist%))
Der $len-Wert sollte jedoch noch um 1 vergrössert werden. Wie rechne ich mit dem $len-Wert?

Experiment
Damit "Beatles" und "The Beatles" untereinander stehen, ...
kannst Du in der Mp3tag Listenansicht eine neue Spalte einrichten:
Name: Artistsort reverse
Wert: %ARTIST%
Feld:
Sortieren nach: $reverse(%ARTIST%)
Numerisch: nein

DD.20141231.1344.CET

Ja, das ist so, leider.

Siehe Mp3tag Manual, dort sind die Funktionen dokumentiert.
Beispiele für deine Frage:
$add(1,$len(%albumartist%))
$add($len(%albumartist%),1)

Wenn die Ordnernamen im Dateipfad bzw. im Ordnerpfad in der Länge unterschiedlich sind, dann ist eine starre Substring-Berechnung nicht so passend, dann wäre eine flexible Lösung besser.
Dafür muss man den Ordnerpfad in seine Ordner-Komponenten zerlegen.
So kann man direkt auf einen Ordernamen auf einer bestimmten Höhe im Ordnerbaum zugreifen.
Beispiele:
Easy way to get directory names above Parent?
/t/9831/1

DD.20141231.1412.CET

Dass Tags aus externen Quellen häufig nicht einheitlich sind, wird aber durch umstellen nicht beser. Bzw. muss ich doch dann beim Einfügen in meine Sammlung die Beschriftungen vereinheitlichen (siehe hierzu z.B. die Heerscharen von Beiträgen, die einen "featured artist" lieber mal am ARTIST oder lieber am TITLE haben wollen). Hier muss es einheitlich für meine Sammlung werden.
Und mit dem Umstellen verlasse ich diesen Tugendpfad, da es dann auch für meine Sammlung keine Einheitlichkeit mehr gibt.

Zum Pfad-Problem: vielleicht ist ein Filter für die Verschachtelungstiefe nützlich:
$add($len($regexp(%_path%,'[^\\]',)),1) is 5

Die 5 muss du so anpassen, dass die richtige Menge an geschachtelten Verzeichnissen erwischt wird. Und für die baust du dann eine Aktion für die Umbenennung.

Oder du machst als Formatstring:
Format-String: X:\Music\CD\%Albumartist%\%Album%[\CD %discnumber%]

Dies sollte einen Ordner CD x hinzufügen, wenn DISCNUMBER gefüllt ist.

Hallo @ All

Zuerst mal wünsch ich ein Gutes Neues Jahr und herzlichen Dank für eure Hilfe.

@ DetlevD

Habe die Zwei unteren Links studiert.

Link1: Habe die Zeilen unter Aktionen die Zeilen eingegeben. Wo wird denn nun das Ergebnis angezeigt?
Link2: ist mir zu hoch.
Wein Wissensstand ist zu niedrig für dieses Programm.

Der Unterschied zwischen den Methoden unter "Link1" und "Linkt2" ist wie folgend:

Bei der Methode unter "Link1" werden bei Ausführung der Aktionengruppe ...
in jeder bearbeiteten Datei neue Tag-Felder angelegt ...
MY_FOLDER_0, MY_FOLDER_1 usw. (siehe Dialog "Erweiterte Tags" [Alt-T]).
Den Inhalt dieser Tag-Felder, also %MY_FOLDER_0%, %MY_FOLDER_1% usw., ...
kann man benutzen, z. B. zum Zusammenbauen des neuen Pfadnamens, ...
oder für andee Zwecke.
Am Ende können diese Hilfs-Tag-Felder dann entfernt werden.

Bei der Methode unter "Link2" werden keine neuen Tag-Felder angelegt ...
Zum Beispiel stellt der Formatstring ...
$regexp(%_folderpath%,'^(?:.+?\\)(.+?)\\(?:(.+?)\\){0}$','$1')
den Namen bereit des ersten Ordners, von der Datei aus gesehen, also den Heimatordner der Datei.
Zum Beispiel stellt der Formatstring ...
$regexp(%_folderpath%,'^(?:.+?\\)
(.+?)\\(?:(.+?)\\){1}$','$1')
den Namen des Eltern-Ordners der Datei bereit.
Usw. aufsteigend im Pfadnamen ...
$regexp(%_folderpath%,'^(?:.+?\\)*(.+?)\\(?:(.+?)\\){2}$','$1')

Man kann diese Formatstrings direkt benutzen so wie sie sind ...
auch in einem längeren Formatstring-Ausdruck, ...
oder damit neue Tag-Felder anlegen, um dann einfach ihren Inhalt zu verwenden.

Das kann sich ja ändern ... nur Mut!

DD.20150102.1054.CET