Künstler-Biographie im Default UI anzeigen

Begonnen von yellowshark, 05. Dezember 2009, 18:34:32

« vorheriges - nächstes »

yellowshark

05. Dezember 2009, 18:34:32 Letzte Änderung: 05. Dezember 2009, 18:36:57 von yellowshark
Hallo,
mein Anliegen war zwar auch schon in diesem Forum verschiedentlich Thema, aber unter anderen Vorzeichen. Deshalb habe ich mich dazu entschlossen, einen neuen Thread aufzumachen.
Ich habe im Hydrogenaudio-Forum den Hinweis gefunden, dass man mit Hilfe der Plugins foo_textfile sowie foo_textdisplay Textdateien anzeigen kann, ohne diese Infos in Tags zu schreiben. Da ich viel klassische Musik höre, möchte ich das nutzen, um Informationen zu Komponisten anzuzeigen. Leider bin ich nur teilweise erfolgreich gewesen. Ich beschreibe mal kurz, was bisher funktioniert und wie ich es hinbekommen habe; ist ja vielleicht auch für andere interessant, die auch so ihre Schwierigkeiten mit der Title-Formatting-Syntax haben.

Meine Verzeichnisstruktur sieht so aus: Laufwerk/Musik/Klassik/Komponistenname/Album/Dateiname.ext. Alle Dateien enthalten einen Composer-Tag. Im Ordner "Mozart" liegt jetzt beispielsweise die Datei "Wolfgang Amadeus Mozart.txt", wobei der Dateiname dem Composer-Tag entspricht.

Im Plugin foo_textfile habe ich einen Eintrag namens "Biography" angelegt mit folgenden Pfadangaben:

$replace(%path%,%directory%\%filename_ext%,%composer%.txt)

In den Settings von foo_textdisplay steht lediglich %Biography%.

Bei einer Verzeichnisstruktur wie Komponist/Album/Dateiname.ext wird dann beim Abspielen auch wie gewünscht der Text im Textdisplay-Fenster angezeigt. Ich interpretiere das so, dass foo_textfile sowas wie einen Pseudo-Tag erzeugt, den ich dann mit foo_textdisplay auslesen kann. So weit so gut.

Jetzt zu meinem kleinen Problem. Bei einem Pfad wie Komponist/Album/CD1/Dateiname.ext funktioniert die Chose leider nicht. Anders gesagt, der obige Code berücksichtigt nur das Hauptverzeichnis und keine Unterverzeichnisse. Ich habe stundenlang rumgefummelt, aber ich habe einfach nicht rausgekriegt, wie ich Unterverzeichnisse in den Code integriere. Ist wahrscheinlich ganz einfach, aber hier muss ich leider passen. Würde mich über entsprechende Nachhilfe sehr freuen.

dj atrac

05. Dezember 2009, 19:54:08 #1 Letzte Änderung: 28. Januar 2014, 20:52:58 von grimes
hi, ich gib mal ne ganz blöde antwort, vielleicht nützt es ja trotzdem was...leider arbeite ich nicht mit diesen plugins, sondern lasse mir die informationen über das biography-panel anzeigen...

ich nutze seit jahren foobar und bin ganz weg von den discnumbers, weil was soll das denn, die festplatte beschränkt doch ein album nicht mehr auf cd1 cd2 cd3 oder bei klassik gar cd10...
ich verschmelze alle doppelalben usw zu einem mp3 album, dh. es gibt tracknumber 001-00X und fertig. folglich sind alle sinfonien von beethoven in einem album zusammengefasst...

defekter link entfernt - grimes

lg frank

" If music be the food of love, play on!" (William Shakespeare)

stefle

Vielleicht funktionuckelt das:

$substr(%path%,1,$sub($strstr(%path%,$trim($substr(%composer%,$strrchr(%composer%, ),$len(%composer%)))),1))%composer%.txt

Wenn ich richtig verstanden habe, sind die Ordner mit dem Komponisten-Nachnamen benannt, während die composer-Tags auch die Vornamen haben. Der String kappt den Pfad dort, wo der Nachname auftaucht. Funktioniert zwar nicht bei Mendelssohn Bartoldy, aber man kann ihm ja zur Not einen Bindestrich verpassen.

stefle

@ dj atrac

Ja, wozu die CD-Ordner, wenn %discnumber% bereits Standard ist.

Wer weiß, wie lange es Alben noch geben wird. Bei Klassik ordne ich fast nie nach Alben - sie haben nur selten eine Namen, der über eine bloße Inhaltsangabe hinausgeht und enthalten ja oft auch eine ganz willkürliche Zusammenstellung. Im Pop-Bereich entsprechend Anthologien oder Best-of-Alben.

yellowshark

Hallo Stefle,
danke für deine Mühe, aber dein Code funktioniert leider nicht. Zum besseren Verständnis, die Komponistenordner sind nach diesem Schema benannt:
Mozart, Wolfgang Amadeus (1756 - 1791)
Brahms, Johannes (1833 - 1897)
etc.

Hier mal ein konkretes Beispiel:
Musik\Klassik\Mozart, Wolfgang Amadeus [1756 - 1791]\Requiem - Jordi Savall, La Capella Reial De Catalunya (1991)\03. Dies irae.flac
Hier wird der Text mit meinem oben genannten Code angezeigt.

Musik\Klassik\Mozart, Wolfgang Amadeus [1756 - 1791]\Symphonies Nos. 38-41 (Mackerras, Scottish CO)\Disc 1\02. Symphony No. 38 in D major ('Prague'), K.504 - II. Andante.flac
Hier wird der Text nicht angezeigt.

Ich möchte meine Ordnerstruktur nur sehr ungern umschmeißen, weil ich damit seit Jahren sehr gut fahre.

stefle

Bei mir funktioniert's einwandfrei. Kann es sein, dass die composer-Tags nicht dem Schema "Wolfgang Amadeus Mozart" folgen? Unterscheiden sich die Komponisten-Ordner überhaupt vom composer-Tag?

stefle

... bitte auch Schema des txt-Files genau angeben.

yellowshark

Schema der Composer-Tags: Vorname Nachname (z.B. Johannes Brahms), die Textdateien entsprechend, z.B. Johannes Brahms.txt

stefle

Genau so hab ich's getestet. Versteh grad nicht, wo der Fehler liegt.

stefle

Weiß, wo der Fehler liegt. Mein Text-File landet in der falschen Ordner-Ebene. Moment ...

stefle

Wenn zuverlässig aller Komponisten-Ordner Lebensdaten in eckigen Klammern haben, sollte das funktionieren:

$substr(%path%,1,$strstr(%path%,']\'))\%composer%.txt

stefle

... und wenn nicht:

$substr(%path%,1,$sub($strstr(%path%,$trim($substr(%composer%,$strrchr(%composer%, ),$len(%composer%)))),1))$substr($substr(%path%,$strstr(%path%,$trim($substr(%composer%,$strrchr(%composer%, ),$len(%composer%)))),$len(%path%)),1,$strchr($substr(%path%,$strstr(%path%,$trim($substr(%composer%,$strrchr(%composer%, ),$len(%composer%)))),$len(%path%)),\))%composer%.txt

yellowshark

06. Dezember 2009, 00:16:42 #12 Letzte Änderung: 06. Dezember 2009, 00:19:09 von yellowshark
Hallo stefle,
herzlichen Dank!
Das isses: $substr(%path%,1,$strstr(%path%,']\'))\%composer%.txt
Ich muss den Code jetzt mal in Ruhe studieren, damit ich auch kapiere, was genau da vor geht. Also, besten Dank noch mal.

stefle

Kleine Hilfe
Diese zwei Befehle sind verschachtelt:
$substr(%path%,x,y)
$strstr(%path%,'abc')

x = 1
y = zweiter Befehl