Zum Inhalt springen

Benutzerdefinierte Textvorlagen in Symfonium

Erfordert v12.0+

Diese Seite beschreibt die Syntax benutzerdefinierter Textvorlagen in Symfonium und die Felder, die im jeweiligen Kontext verfügbar sind.

Die Seite ist folgendermaßen aufgebaut:

  • Allgemeine Vorlagensyntax: Platzhalter, bedingte Blöcke, Bedingungen und Operatoren, Textformatierung, Escape-Regeln sowie global verfügbare lokalisierte string.*-Beschriftungen
  • Kontextspezifische Abschnitte:
    • Läuft gerade: zusätzliche Funktionen (\t, \o, next.-Felder, chapter.*-Felder) sowie die vollständige Feldliste für „Läuft gerade“
    • Album-Untertitel: albumbezogene Felder, die auf Albumseiten verfügbar sind
    • Interpreten-Untertitel: interpretenbezogene Felder, die auf Interpretenseiten verfügbar sind

Syntax: %fieldname%

  • Ersetzt %fieldname% durch den Feldwert
  • Wenn das Feld leer ist oder fehlt, wird nichts angezeigt

Beispiele:

VorlageBeispielergebnis
%title% by %artist%Seven Nation Army by The White Stripes
%album% (%year%)Thriller (1982)
%composer% ● %artist%Ludwig van Beethoven ● Berliner Philharmoniker
%artist%%lb%%composer%Berliner Philharmoniker

%lb% ist ein Zeilenumbruch.


Nutze Blöcke, um Satzzeichen oder Beschriftungen nur anzuzeigen, wenn ein Wert vorhanden ist oder eine Bedingung zutrifft.

Syntax: { ... }

  • Ein { ... }-Block wird nur angezeigt, wenn sein erster Platzhalter eine der folgenden Bedingungen erfüllt:
    • Er verweist auf ein nicht leeres Feld
    • Er ist ein wahrer Bedingungsplatzhalter (%|condition%)
  • Du kannst mehrere Platzhalter und wörtlichen Text in denselben { ... }-Block aufnehmen, aber nur der erste Platzhalter steuert, ob der Block angezeigt wird
  • Setze benötigte Leerzeichen innerhalb des Blocks, zum Beispiel { by %artist%}

Beispiele:

VorlageBeispielergebnisWenn das Feld leer ist
%title%{ by %artist%}Seven Nation Army by The White StripesSeven Nation Army
%album%{ (%year%)}Thriller (1982)Thriller
{%composer% ● }%artist%Beethoven ● Berliner PhilharmonikerBerliner Philharmoniker

Nutze %|condition% als ersten Platzhalter, um die Anzeige eines Blocks zu steuern, ohne einen Wert auszugeben.

Beispiel:

{%|format.samplerate>"48"% Hi-Res: %format.codec%}

Zeigt Hi-Res: FLAC nur an, wenn format.samplerate > 48 gilt.

Nutze \n innerhalb bedingter Blöcke:

%album%{\n(%year%)}

Außerhalb von { ... } solltest du %lb% für Zeilenumbrüche verwenden.


Syntax: %field|condition%

Gibt das Feld nur aus, wenn die Bedingung wahr ist.

Vergleichen kannst du:

  • Einen anderen Feldnamen, zum Beispiel artist, composer, year
  • Eine wörtliche Zeichenfolge oder Zahl in Anführungszeichen, zum Beispiel "2012", "Rock", "256"

Hinweise zu Literalen:

  • track bezeichnet das gleichnamige Feld
  • "track" bezeichnet den wörtlichen Text track
  • Anführungszeichen können in Werten vorkommen. Stelle sicher, dass das Literal mit " beginnt und endet

Beispiele:

%year|year>"2012"%
%composer|composer!=artist%
%composer|genre=="Classical"%

OperatorBedeutungBeispielHinweise
==ist gleichgenre=="Classical" / artist==composer
!=ist ungleichartist!="Metallica"
+=enthältgenre+="Rock"funktioniert mit einem Literal oder einem anderen Feld
-=enthält nichtmood-="depressing"
>größer alsyear>"1999"Wörtliche Zahlen müssen in Anführungszeichen stehen
<kleiner alsduration<"500"Dauer in Sekunden
==emptyist leeryear==emptyempty ist reserviert
!=emptyist nicht leercomposer!=emptyempty ist reserviert
[]im Bereichbpm[]"0".."100"einschließlich der Grenzwerte

Mehrere Bedingungen, gemischte && / || und Klammern

Abschnitt betitelt „Mehrere Bedingungen, gemischte && / || und Klammern“
  • Nutze && für UND
  • Nutze || für ODER
  • Du kannst && und || in derselben Bedingung kombinieren
  • Nutze Klammern (...), um die Auswertungsreihenfolge zu steuern

Beispiel:

%format|format.bitdepth!=empty && (format.samplerate>"48" || format.bitdepth>"24")%

Dies gibt %format% nur aus, wenn die Bittiefe vorhanden ist und entweder:

  • die Abtastrate größer als 48 ist
  • die Bittiefe größer als 24 ist

**Bold**
__Underline__
~~Strike~~
//Italics//
^^CAPS^^

Diese Platzhalter geben übersetzte Texte in der eingestellten Sprache zurück:

  • string.hires
  • string.lossless
  • string.lossy
  • string.hires.lossless
  • string.low.quality
  • string.high.quality
  • string.high.efficiency
  • string.time.unit.day.short
  • string.time.unit.hour.short
  • string.time.unit.minute.short
  • string.time.unit.second.short
  • string.time.unit.day.one
  • string.time.unit.day.other
  • string.time.unit.hour.one
  • string.time.unit.hour.other
  • string.time.unit.minute.one
  • string.time.unit.minute.other
  • string.time.unit.second.one
  • string.time.unit.second.other
  • string.track.one
  • string.track.other
  • string.album.one
  • string.album.other

Textvorlagen für „Läuft gerade“ können auf Folgendes zugreifen:

  • Titelmetadaten
  • Status der Wiedergabe
  • Status der Warteschlange
  • Status der Kapitel
  • Audioformat
  • EQ- und Wiedergabegeräteinformationen
  • und mehr

Nutze \t, um eine Vorlage in mehrere Segmente aufzuteilen.

Beispiel:

%player.position%\t%format%\t%player.duration%

Bei horizontaler Ausrichtung mit verteiltem Abstand wird dies normalerweise so angezeigt:

  • links: Position
  • Mitte: Format
  • rechts: Dauer

Nutze \o, um eine Schutzüberlagerung nur auf diesen Teil anzuwenden, auch wenn die gesamte Textvorlage nicht geschützt ist.

Setze next. vor ein Feld mit Elementdaten, um auf den nächsten Eintrag der Warteschlange zu verweisen:

%next.title%

Bei Kapitelfeldern verweist next.chapter.* auf das nächste Kapitel.


  • title
  • title.raw
  • cleantitle (Titel ohne hinzugefügte Titelnummer oder Kennzeichnung für anstößige Inhalte)
  • artist
  • album
  • album.raw
  • album.version
  • album.type (auch als Release Type bekannt)
  • albumartist
  • album.tags
  • album.title
  • album.title.raw
  • album.title.version
  • composer
  • year
  • releasedate
  • originaldate
  • releasedate.year
  • originaldate.year
  • track
  • disc
  • disctitle
  • duration
  • duration.seconds (Sekunden insgesamt)
  • duration.d (.nz hinzufügen, um bei null auszublenden)
  • duration.h (.nz hinzufügen, um bei null auszublenden)
  • duration.m (.nz hinzufügen, um bei null auszublenden)
  • duration.s (.nz hinzufügen, um bei null auszublenden)
  • duration.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • bpm
  • genre
  • style
  • mood
  • occasion
  • grouping
  • language
  • comment
  • work
  • movement.name
  • movement.number
  • movement.number.roman
  • mediatype
  • providername
  • offlinestatus
  • explicit
  • favorite
  • userrating
  • rating
  • userrating.5 (auf 5 Sterne normalisiert)
  • rating.5 (auf 5 Sterne normalisiert)
  • track.tags
  • original.artist
  • original.album
  • filepath
  • filename
  • lastplayed
  • lastSkipped
  • isaudiobook
  • playcount
  • skipcount
  • player.position
  • player.duration
  • player.remaining
  • player.position.seconds
  • player.duration.seconds
  • player.remaining.seconds
  • player.paused
  • player.repeat.mode
  • player.shuffle.mode
  • volume.current
  • sleep.timer
  • sleep.timer.seconds
  • sleep.timer.eos
  • queue.position
  • queue.size
  • queue.name
  • smartqueue
  • smartflow
  • radio.mode (1 bei einer intelligenten Warteschlange, 2+ bei einem intelligenten Verlauf)
  • chapter.count
  • chapter.index
  • chapter.title
  • chapter.position
  • chapter.position.seconds
  • chapter.position.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.position.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.position.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.position.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.position.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.position.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.position.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.position.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.remaining
  • chapter.remaining.seconds
  • chapter.remaining.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.remaining.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.duration
  • chapter.duration.seconds
  • chapter.duration.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.duration.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.duration.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.duration.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.duration.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.duration.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.duration.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.duration.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.position
  • chapter.all.position.seconds
  • chapter.all.position.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.position.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining
  • chapter.all.remaining.seconds
  • chapter.all.remaining.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.remaining.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration
  • chapter.all.duration.seconds
  • chapter.all.duration.d (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.h (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.m (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.s (.nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • chapter.all.duration.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • format
  • format.bitrate
  • format.bitrate.raw
  • format.samplerate
  • format.samplerate.raw
  • format.bitdepth
  • format.codec
  • format.bitandsample
  • format.channels
  • eq.profile
  • eq.config
  • output.current
  • renderer.current
  • renderer.type
  • lb (Zeilenumbruch)
  • bool1
  • bool2
  • bool3
  • bool4
  • bool5

%title%%lb%{by %artist%}
%album%{ (%year%)}

Composer ● Artist nur, wenn der Komponist vorhanden ist

Abschnitt betitelt „Composer ● Artist nur, wenn der Komponist vorhanden ist“
{%composer% ● }%artist%

dreiteilige Zeile mit \t (Position / Format / Dauer)

Abschnitt betitelt „dreiteilige Zeile mit \t (Position / Format / Dauer)“
%player.position%\t%format%\t%player.duration%
{%|format.samplerate>"48"% Hi-Res: %format.codec%}

aktives Ausgabegerät anzeigen (Android oder ein anderes Wiedergabegerät)

Abschnitt betitelt „aktives Ausgabegerät anzeigen (Android oder ein anderes Wiedergabegerät)“
{ %output.current|renderer.type=="Android"%}{ %renderer.current|renderer.type!="Android"%}

umschaltbarer Qualitätsindikator im Apple-Stil (verwendet bool1)

Abschnitt betitelt „umschaltbarer Qualitätsindikator im Apple-Stil (verwendet bool1)“
ⓘ {%format|bool1=="true"%}{Dolby Atmos %|format.channels>"2" && bool1=="false"%}{%string.high.efficiency|format.bitrate>"10" && format.bitrate<"256" && format.bitdepth==empty && bool1=="false"%}{%string.high.quality|format.bitrate>"255" && format.bitrate<"321" && format.bitdepth==empty && bool1=="false"%}{%string.lossless|format.bitdepth[]"16".."24" && format.samplerate<"49" && bool1=="false"%}{%string.hires.lossless|format.bitdepth[]"16".."32" && format.samplerate>"48" && bool1=="false"%}

Wenn du einer Textvorlage die Aktion toggle bool1 zuweist, wechselt sie zwischen:

  • Anzeige von %format%, wenn bool1 true ist
  • Anzeige des Indikators im Apple-Stil, wenn bool1 false ist
Vol %volume.current%%
{%chapter.index% - }%chapter.title%
%chapter.position%\t%chapter.title%\t%chapter.remaining%

vollständiger Hörbuchfortschritt relativ zum ersten Kapitel

Abschnitt betitelt „vollständiger Hörbuchfortschritt relativ zum ersten Kapitel“
%chapter.all.position%\t%chapter.all.duration%
%next.chapter.title%
%format.codec% • %format.bitdepth%/%format.samplerate.raw% • %format.bitrate.raw%

Albumseiten stellen in der Regel albumbezogene Metadaten bereit, nicht den Status der Warteschlange oder des Players. Du kannst dieselbe allgemeine Vorlagensyntax verwenden.

  • title
  • title.raw
  • version
  • tags
  • type
  • status
  • composer
  • artist
  • year
  • duration
  • duration.seconds (Sekunden insgesamt)
  • duration.d (.nz hinzufügen, um bei null auszublenden)
  • duration.h (.nz hinzufügen, um bei null auszublenden)
  • duration.m (.nz hinzufügen, um bei null auszublenden)
  • duration.s (.nz hinzufügen, um bei null auszublenden)
  • duration.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • genre
  • style
  • mood
  • language
  • providername
  • offlinestatus
  • occasion
  • mediatype
  • grouping
  • explicit
  • releasedate
  • originaldate
  • releasedate.year
  • originaldate.year
  • lastplayed
  • lastSkipped
  • userrating
  • rating
  • userrating.5
  • rating.5
  • favorite
  • song.count
  • playcount
  • skipcount
  • description
  • format
  • format.bitrate
  • format.channels
  • format.samplerate
  • format.bitdepth
  • format.codec
  • format.bitandsample
  • format.bitrate.raw
  • format.samplerate.raw
  • lb

Albumtitel + Version nur, wenn die Version vorhanden ist

Abschnitt betitelt „Albumtitel + Version nur, wenn die Version vorhanden ist“
%title%{ — %version%}

Zeile mit Jahr + Genre, fehlende Teile werden übersprungen

Abschnitt betitelt „Zeile mit Jahr + Genre, fehlende Teile werden übersprungen“
%year%{ • %genre%}

Bewertung nur anzeigen, wenn du eine vergeben hast

Abschnitt betitelt „Bewertung nur anzeigen, wenn du eine vergeben hast“
{★ %userrating.5%/5%|userrating!=empty%}
{⬇ Offline%|offlinestatus!=empty%}

Interpretenseiten stellen in der Regel interpretenbezogene Metadaten und Bibliotheksstatistiken bereit. Du kannst dieselbe allgemeine Vorlagensyntax verwenden.

  • title
  • title.raw
  • version
  • tags
  • type
  • gender
  • duration
  • duration.seconds (Sekunden insgesamt)
  • duration.d (.nz hinzufügen, um bei null auszublenden)
  • duration.h (.nz hinzufügen, um bei null auszublenden)
  • duration.m (.nz hinzufügen, um bei null auszublenden)
  • duration.s (.nz hinzufügen, um bei null auszublenden)
  • duration.dd (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.hh (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.mm (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • duration.ss (mit 0 aufgefüllt, .nz hinzufügen, um bei null auszublenden)
  • genre
  • style
  • mood
  • song.count
  • album.count
  • instrument
  • providername
  • offlinestatus
  • lastplayed
  • userrating
  • userrating.5
  • favorite
  • playcount
  • description
  • lb
%song.count% songs{ • %album.count% albums}
%genre%{ • %style%}

Kennzeichnung Favorite nur für Favoriten anzeigen

Abschnitt betitelt „Kennzeichnung Favorite nur für Favoriten anzeigen“
{♥ Favorite%|favorite!=empty%}
%title%{\n%instrument%}