In Ordner sortieren: Artist, Soundtrack, Various Artists

Hallo Zusammen,
ich möchte meine Dateien in z.Z. 3 Ordner einsortieren:
Artists
Soundtrack
Various Artists
[optional: Collection, Hörspiele]

Ich benutze derzeit den Tag %albumartist% dafür. Jedoch habe ich noch keine Lösung gefunden Alben/Singles eines einzelnen Künstlers unter Artists\ anzulegen.

derzeit benutze ich folgendes Schema:

D:\Audio\
$if($grtr($strstr(%_extension%,mp3),0),Lossy,Lossless)\
$if2(%albumartistsort%,%albumartist%)\
%album%\
$if2(%discnumber%,)$num(%track%,2) $if2($eql(%albumartist%,%artist%), %artist% - )%title%

Es würde mir am meisten Helfen wenn ich eine Art "case:"-Funktion verwenden könnte. Auch das Verknüpfen von Abfragen mit OR würde mir helfen.

Ich hoffe ich habe mich verständlich ausdrücken können.

Hab Ihr einen Vorschlag wie ich die Sache angehen könnte?

Danke,
Wursti & Chris


Ich verstehe das ganze nicht so wirklich. Wenn du doch den ALBUMARTIST verwendest, wozu dann noch die ganzen Vergleiche? Oder was steht in ALBUMARTIST?
Der müsste doch dann "Various Artists" enthalten?!

Was mir auch aufgefallen ist: bei der Erzeugung von Dateinamen fungieren die [] als Markierung für optionale Ausgaben, die nur stattfinden, wenn das Feld gefüllt ist.
$if2(%discnumber%,) würde also mit [%discnumber%] vollständig erfüllt.

Dann: es müsste doch irgendwo in deinen Daten ein Feld geben, das den wahren, echten Einordnungsnamen enthält. Das würde ich dann anwenden und bestenfalls noch zwischen "Various Artists" und dem Rest unterscheiden.

Wenn man den Formatstring in einzelne Bestandteile zerlegt, dann sieht das so aus ...

'D:\Audio\' $if($grtr($strstr(%_extension%,'mp3'),0),'Lossy','Lossless') '\' $if2(%ALBUMARTISTSORT%,%ALBUMARTIST%) '\' %ALBUM% '\' $if2(%DISCNUMBER%,) $num(%TRACK%,2) ' ' $if2($eql(%ALBUMARTIST%,%ARTIST%),' '%ARTIST%' - ') %TITLE%

Was ich zurzeit nicht verstehen kann, das ist die Zeile mit der Funktion ...
$if2($eql(%albumartist%,%artist%),' '%artist%' - ')
... denn diese liefert keinen Wert, wenn ALBUMARTIST und ARTIST gleich sind, ...
aber bei Unterschiedlichkeit dann doch wie mit dem zweiten Parameter beschrieben, ...
welche Logik verbirgt sich dahinter?

Es ist nicht notwendig, Standard-Tagfeldnamen für Zwecke zu verwenden, für die sie durch ihren Namen nicht vorgesehen sind.
Man kann ein Tagfeld anlegen mit einem besonderen Nicht-Standard-Namen, und das Tagfeld mit einem Wert füllen, wie es für den eigenen Zweck gebraucht wird, z. B. ... Tagfeld MY_SORT, in das man für jede Datei jeweils einen der eigenen Werte passend eintragen kann: "Artists" oder "Soundtrack" oder "Various Artists" oder "Collection, Hörspiele".
Dann verwendet man im Formatstring einfach das Tagfeld MY_SORT, bzw. dessen Inhalt %MY_SORT%.

Eine CASE Funktion kann man simulieren durch mehrere $if Funktionen oder vielleicht durch eine andere Abfragetechnik.

DD.20151208.1100.CET

Bei einem Album eines Künstlers ist bei mir %albumartist% und %artist% identisch.
Also soll auch nichts ausgegeben werden.

"D:\Audio\Lossless\Eric Clapton\Old Sock\01 Further On Down The Road.flac"

Bei VARIOUS_ARTIST und SOUNDTRACKS unterscheiden sich diese beiden Tags, und "%artist% - " wird hinzugefügt.

"D:\Audio\Lossless\Various Artists\Reggae In High-Fi\03  Freddie MCGregor - Push Comes To Shove.flac"

Ich möchte nur am Dateinamen erkennen von welchem ARTIST ein TRACK ist. Bei einem ALBUM eines einzelnen Künstlers weiss ich das.

Hintergrund ist hier das mein Musicplayer mit eigenen Tags nichts anfangen kann.

Hättest Du da ein Beispiel?

Danke,
Wursti & Chris

Hallo,

Es gibt z.Z. bei mir 4 mögliche Inhalte für ALBUMARTIST

  • Various Artists
  • Soundtrack
  • Collection
  • ALBUMARTIST == ARTIST

Ich würde dies dann gerne in etwa so haben:

IF %albumartist% == %artist%
 MOVE TO d:\Audio\Artists
ELSE
 MOVE TO d:\Audio\\%albumartist%
FI

Derzeit landet alles in einem Order, der neben den einzelenen Künstlern noch die Ordner Soundtrack und Various Artists enthält.

.\ABBA\
  .
  .
  .
.\Zappa\
.\Various Artists\
.\Soundtracks\

Danke,
Wursti & Chris

Dann arbeite doch mit absoluten Pfadangaben:

c:\music\%albumartist%....

Der Musicplayer braucht auch nichts damit anzufangen, denn du bist ja hier wegen einer Problemlösung mit Mp3tag.
Mp3tag kann eigentlich mit allen Inhalten von Tagfeldern etwas anfangen, nämlich daraus den Dateipfad nach Wunsch des Benutzers erzeugen.

DD.20151208.1740.CET

QUOTE (Wursti & Chris @ Dec 8 2015, 12:07) <{POST_SNAPBACK}>
... Ich würde dies dann gerne in etwa so haben:
IF %albumartist% == %artist%
 MOVE TO d:\Audio\Artists
ELSE
 MOVE TO d:\Audio\\%albumartist%
FI<!--QuoteEnd--></div><!--QuoteEEnd-->
$if($eql(%ALBUMARTIST%,%ARTIST%),'D:\Audio\Artists\','D:\Audio\'%ALBUMARTIST%'\') ... oder ... 'D:\Audio\'$if($eql(%ALBUMARTIST%,%ARTIST%),'Artists\',%ALBUMARTIST%'\') ... oder ... 'D:\Audio\'$if($eql(%ALBUMARTIST%,%ARTIST%),'Artists',%ALBUMARTIST%)'\'

DD.20151208.1753.CET

Case ARTIST "The Beatles": do this; "Bing Crosby": do that; "Rachmaninov": do other; Else: do nothing; EndCase $if($eql(%ARTIST%,'The Beatles'),'do this',$if($eql(%ARTIST%,'Bing Crosby'),'do that',$if($eql(%ARTIST%,'Rachmaninov'),'do other','do nothing')))

DD.20151208.1757.CET

Hallo Zusammen,
ich möchte mich bei euch bedanken. Dank euch habe ich nun alles soweit beisammen das ich eine gute Basis für weitere Experimente habe.
Vielen Dank.

Hier noch mein derzeitiger Stand (nicht schön aber selten):

[DEFAULT]'D:\Audio\'
$if($eql(%_EXTENSION%,flac),'Lossless',$if($eql(%_EXTENSION%,mp3),'Lossy','NEW-EXTENSION'))'\'

$if($eql(%ALBUMARTIST%,'Various Artists'),'Various Artists',$if($eql(%ALBUMARTIST%,'Soundtrack'),'Soundtrack','Artist'\\%ARTIST%))'\'

$if($eql(%GROUP%,'Collection'),'[Collections]',[%GROUP%])\

%ALBUM%[ $if2($eql([%GROUP%]),(%YEAR%))]\

[%DISCNUMBER%]$num(%TRACK%,2)' '$if($neql(%ALBUMARTIST%,%ARTIST%),$if2(%ARTISTSORT%,%ARTIST%)' - ',)%TITLE%

Vielen vielen Dank,
Wursti & Chris