Ir al contenido

Plantilla de cadena personalizada de Symfonium

Requiere v12.0+

Esta página documenta la sintaxis de las plantillas de cadena personalizadas de Symfonium y las listas de campos disponibles en cada contexto.

Está organizada en:

  • Sintaxis común de plantillas: marcadores, bloques condicionales, condiciones/operadores, formato de texto, reglas de escape y etiquetas localizadas globales string.*
  • Secciones específicas por contexto:
    • En reproducción: funciones adicionales (\t, \o, campos next., campos chapter.*) y la lista completa de campos de En reproducción
    • Subtítulo de álbum: campos de nivel de álbum disponibles en páginas de álbum
    • Subtítulo de artista: campos de nivel de artista disponibles en páginas de artista

Sintaxis común de plantillas (funciona en todas partes)

Sección titulada «Sintaxis común de plantillas (funciona en todas partes)»

Sintaxis: %fieldname%

  • Sustituye %fieldname% por el valor del campo
  • Si el campo está vacío o no existe, no se muestra nada

Ejemplos:

Plantilla Resultado de ejemplo
%title% de %artist% Seven Nation Army de The White Stripes
%album% (%year%) Thriller (1982)
%composer% ● %artist% Ludwig van Beethoven ● Berliner Philharmoniker
%artist%%lb%%composer% Berliner Philharmoniker
Ludwig van Beethoven

%lb% es un salto de línea.


Usa bloques para mostrar puntuación o etiquetas solo cuando algo existe o cuando se cumple una condición.

Sintaxis: { ... }

  • Un bloque { ... } solo se muestra si su primer marcador coincide:
    • con un campo no vacío
    • o con un marcador de condición verdadero (%|condition%)
  • Puedes incluir varios marcadores y texto literal dentro del mismo bloque { ... }, pero solo el primer marcador controla si el bloque se muestra
  • Coloca los espacios necesarios dentro del bloque, por ejemplo { by %artist%}

Ejemplos:

Plantilla Resultado de ejemplo Si el campo está vacío
%title%{ de %artist%} Seven Nation Army de The White Stripes Seven Nation Army
%album%{ (%year%)} Thriller (1982) Thriller
{%composer% ● }%artist% Beethoven ● Berliner Philharmoniker Berliner Philharmoniker

Usa %|condition% como primer marcador para controlar un bloque sin imprimir un valor.

Ejemplo:

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

Muestra Hi-Res: FLAC solo si format.samplerate > 48.

Usa \n dentro de bloques condicionales:

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

Fuera de { ... }, prefiere %lb% para los saltos de línea.


Sintaxis: %field|condition%

Imprime el campo solo si la condición es verdadera.

Qué puedes comparar:

  • Otro nombre de campo, por ejemplo artist, composer, year
  • Una cadena literal o un número entre comillas, por ejemplo "2012", "Rock", "256"

Notas sobre literales:

  • track significa el campo track
  • "track" significa el texto literal track
  • Las comillas pueden aparecer dentro de los valores. Asegúrate de que el literal empiece y termine con "

Ejemplos:

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

Operador Significado Ejemplo Notas
== igual a genre=="Classical" / artist==composer
!= distinto de artist!="Metallica"
+= contiene genre+="Rock" funciona con un literal u otro campo
-= no contiene mood-="depressing"
> mayor que year>"1999" usa comillas para números literales
< menor que duration<"500" la duración está en segundos
==empty está vacío year==empty empty está reservado
!=empty no está vacío composer!=empty empty está reservado
[] dentro del rango bpm[]"0".."100" límites inclusivos

Varias condiciones, mezcla de && / || y paréntesis

Sección titulada «Varias condiciones, mezcla de && / || y paréntesis»
  • Usa && para AND
  • Usa || para OR
  • Puedes mezclar && y || en la misma condición
  • Usa paréntesis (...) para controlar la prioridad de evaluación

Ejemplo:

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

Esto imprime %format% solo cuando existe la profundidad de bits y además:

  • la frecuencia de muestreo es mayor que 48
  • o la profundidad de bits es mayor que 24

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

Estos marcadores devuelven cadenas traducidas en el idioma del usuario:

  • 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

Las plantillas de En reproducción pueden acceder a:

  • metadatos de pista
  • estado de reproducción
  • estado de la cola
  • estado de capítulos
  • formato de audio
  • información de ecualizador / salida / reproductor
  • y más

Usa \t para dividir una plantilla en varios segmentos.

Ejemplo:

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

Con espacio de alineación horizontal entre ellos, normalmente se renderiza así:

  • izquierda: posición
  • centro: formato
  • derecha: duración

Superposición de protección selectiva con \o

Sección titulada «Superposición de protección selectiva con \o»

Usa \o para aplicar una superposición de protección solo a esa parte, incluso si toda la cadena no está protegida.

Añade next. antes de los campos de datos de elemento para referirte al siguiente elemento de la cola:

%next.title%

Para campos de capítulo, next.chapter.* se refiere al siguiente capítulo.


  • title
  • title.raw
  • cleantitle (título sin número de pista añadido ni símbolo explícito)
  • artist
  • album
  • album.raw
  • album.version
  • album.type (también conocido como Release Type)
  • 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 (segundos totales)
  • duration.d (añade .nz para ocultarlo si es cero)
  • duration.h (añade .nz para ocultarlo si es cero)
  • duration.m (añade .nz para ocultarlo si es cero)
  • duration.s (añade .nz para ocultarlo si es cero)
  • duration.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • 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 (normalizado a 5 estrellas)
  • rating.5 (normalizado a 5 estrellas)
  • 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 si viene de Smart Queue, 2+ si viene de Smart Flow)
  • chapter.count
  • chapter.index
  • chapter.title
  • chapter.position
  • chapter.position.seconds
  • chapter.position.d (añade .nz para ocultarlo si es cero)
  • chapter.position.h (añade .nz para ocultarlo si es cero)
  • chapter.position.m (añade .nz para ocultarlo si es cero)
  • chapter.position.s (añade .nz para ocultarlo si es cero)
  • chapter.position.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.position.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.position.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.position.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.remaining
  • chapter.remaining.seconds
  • chapter.remaining.d (añade .nz para ocultarlo si es cero)
  • chapter.remaining.h (añade .nz para ocultarlo si es cero)
  • chapter.remaining.m (añade .nz para ocultarlo si es cero)
  • chapter.remaining.s (añade .nz para ocultarlo si es cero)
  • chapter.remaining.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.remaining.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.remaining.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.remaining.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.duration
  • chapter.duration.seconds
  • chapter.duration.d (añade .nz para ocultarlo si es cero)
  • chapter.duration.h (añade .nz para ocultarlo si es cero)
  • chapter.duration.m (añade .nz para ocultarlo si es cero)
  • chapter.duration.s (añade .nz para ocultarlo si es cero)
  • chapter.duration.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.duration.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.duration.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.duration.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.position
  • chapter.all.position.seconds
  • chapter.all.position.d (añade .nz para ocultarlo si es cero)
  • chapter.all.position.h (añade .nz para ocultarlo si es cero)
  • chapter.all.position.m (añade .nz para ocultarlo si es cero)
  • chapter.all.position.s (añade .nz para ocultarlo si es cero)
  • chapter.all.position.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.position.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.position.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.position.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining
  • chapter.all.remaining.seconds
  • chapter.all.remaining.d (añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.h (añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.m (añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.s (añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.duration
  • chapter.all.duration.seconds
  • chapter.all.duration.d (añade .nz para ocultarlo si es cero)
  • chapter.all.duration.h (añade .nz para ocultarlo si es cero)
  • chapter.all.duration.m (añade .nz para ocultarlo si es cero)
  • chapter.all.duration.s (añade .nz para ocultarlo si es cero)
  • chapter.all.duration.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • 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 (salto de línea)
  • bool1
  • bool2
  • bool3
  • bool4
  • bool5

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

Composer ● Artist solo cuando existe compositor

Sección titulada «Composer ● Artist solo cuando existe compositor»
{%composer% ● }%artist%

línea de tres partes usando \t (posición / formato / duración)

Sección titulada «línea de tres partes usando \t (posición / formato / duración)»
%player.position%\t%format%\t%player.duration%

mostrar Hi-Res solo para frecuencia de muestreo alta

Sección titulada «mostrar Hi-Res solo para frecuencia de muestreo alta»
{%|format.samplerate>"48"% Hi-Res: %format.codec%}

mostrar el dispositivo de salida activo (Android u otro reproductor)

Sección titulada «mostrar el dispositivo de salida activo (Android u otro reproductor)»
{ %output.current|renderer.type=="Android"%}{ %renderer.current|renderer.type!="Android"%}

indicador de calidad estilo Apple alternable (usa bool1)

Sección titulada «indicador de calidad estilo Apple alternable (usa 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"%}

Si vinculas una acción toggle bool1 a la cadena personalizada, alterna entre:

  • mostrar %format% cuando bool1 es true
  • mostrar el indicador estilo Apple cuando bool1 es false
Vol %volume.current%%
{%chapter.index% - }%chapter.title%
%chapter.position%\t%chapter.title%\t%chapter.remaining%

progreso completo de audiolibro relativo al primer capítulo

Sección titulada «progreso completo de audiolibro relativo al primer capítulo»
%chapter.all.position%\t%chapter.all.duration%
%next.chapter.title%
%format.codec% • %format.bitdepth%/%format.samplerate.raw% • %format.bitrate.raw%

Las páginas de álbum suelen exponer metadatos de nivel de álbum, no el estado de la cola ni del reproductor. Puedes usar la misma sintaxis común de plantillas.

  • title
  • title.raw
  • version
  • tags
  • type
  • status
  • composer
  • artist
  • year
  • duration
  • duration.seconds (segundos totales)
  • duration.d (añade .nz para ocultarlo si es cero)
  • duration.h (añade .nz para ocultarlo si es cero)
  • duration.m (añade .nz para ocultarlo si es cero)
  • duration.s (añade .nz para ocultarlo si es cero)
  • duration.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • 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

título de álbum + versión solo si existe versión

Sección titulada «título de álbum + versión solo si existe versión»
%title%{ — %version%}

línea de año + género, omitiendo partes ausentes

Sección titulada «línea de año + género, omitiendo partes ausentes»
%year%{ • %genre%}

valoración mostrada solo si el usuario lo ha valorado

Sección titulada «valoración mostrada solo si el usuario lo ha valorado»
{★ %userrating.5%/5%|userrating!=empty%}
{⬇ Offline%|offlinestatus!=empty%}

Las páginas de artista suelen exponer metadatos de nivel de artista y estadísticas de biblioteca. Puedes usar la misma sintaxis común de plantillas.

  • title
  • title.raw
  • version
  • tags
  • type
  • gender
  • duration
  • duration.seconds (segundos totales)
  • duration.d (añade .nz para ocultarlo si es cero)
  • duration.h (añade .nz para ocultarlo si es cero)
  • duration.m (añade .nz para ocultarlo si es cero)
  • duration.s (añade .nz para ocultarlo si es cero)
  • duration.dd (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de 0, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de 0, añade .nz para ocultarlo si es cero)
  • 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%}

mostrar insignia Favorite solo cuando está marcado como favorito

Sección titulada «mostrar insignia Favorite solo cuando está marcado como favorito»
{♥ Favorite%|favorite!=empty%}
%title%{\n%instrument%}