Ir al contenido

Plantilla de texto personalizada de Symfonium

Requiere v12.0+

Esta página explica la sintaxis de las plantillas de texto personalizadas de Symfonium y enumera los campos disponibles en cada contexto.

Está organizada en:

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

Sintaxis común de las plantillas (disponible en todos los contextos)

Sección titulada «Sintaxis común de las plantillas (disponible en todos los contextos)»

Sintaxis: %fieldname%

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

Ejemplos:

PlantillaResultado de ejemplo
%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% es un salto de línea.


Utiliza bloques para mostrar signos de puntuación o etiquetas solo cuando exista un valor o se cumpla una condición.

Sintaxis: { ... }

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

Ejemplos:

PlantillaResultado de ejemploSi el campo está vacío
%title%{ by %artist%}Seven Nation Army by The White StripesSeven Nation Army
%album%{ (%year%)}Thriller (1982)Thriller
{%composer% ● }%artist%Beethoven ● Berliner PhilharmonikerBerliner Philharmoniker

Utiliza %|condition% como primer marcador para controlar un bloque sin mostrar ningún valor.

Ejemplo:

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

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

Utiliza \n dentro de los bloques condicionales:

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

Fuera de { ... }, utiliza preferentemente %lb% para insertar saltos de línea.


Sintaxis: %field|condition%

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

Puedes compararlo con:

  • 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 representa el campo con ese nombre
  • "track" representa 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"%

OperadorSignificadoEjemploNotas
==es igual agenre=="Classical" / artist==composer
!=no es igual aartist!="Metallica"
+=contienegenre+="Rock"funciona con un literal o con otro campo
-=no contienemood-="depressing"
>es mayor queyear>"1999"utiliza comillas para los números literales
<es menor queduration<"500"la duración se expresa en segundos
==emptyestá vacíoyear==emptyempty está reservado
!=emptyno está vacíocomposer!=emptyempty está reservado
[]está dentro del intervalobpm[]"0".."100"los límites están incluidos

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

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

Ejemplo:

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

Esto muestra %format% solo cuando existe la profundidad de bits y, además, se cumple una de estas condiciones:

  • 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 al 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

Reproduciendo ahora (reproductores compacto y ampliado)

Sección titulada «Reproduciendo ahora (reproductores compacto y ampliado)»

Las plantillas de Reproduciendo ahora pueden acceder a:

  • metadatos de la pista
  • estado de la reproducción
  • estado de la cola
  • estado de los capítulos
  • formato del audio
  • información del ecualizador, la salida y el renderizador
  • y más

Utiliza \t para dividir una plantilla en varios segmentos.

Ejemplo:

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

Con una alineación horizontal que distribuya el espacio entre los segmentos, normalmente se muestran 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»

Utiliza \o para aplicar una superposición de protección solo a esa parte, aunque el texto completo no esté protegido.

Añade next. delante de los campos de datos del elemento para hacer referencia al siguiente elemento de la cola:

%next.title%

En los campos de capítulos, next.chapter.* hace referencia al capítulo siguiente.


  • title
  • title.raw
  • cleantitle (título sin el número de pista añadido ni el símbolo de contenido explícito)
  • artist
  • album
  • album.raw
  • album.version
  • album.type (también conocido como Tipo de álbum)
  • 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 ceros, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de ceros, 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 (normalizada a cinco estrellas)
  • rating.5 (normalizada a cinco 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 procede de la Cola inteligente; 2 o más si procede del Flujo inteligente)
  • 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.position.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.position.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.position.ss (con relleno de ceros, 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.remaining.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.remaining.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.remaining.ss (con relleno de ceros, 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.duration.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.duration.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.duration.ss (con relleno de ceros, 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.position.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.position.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.position.ss (con relleno de ceros, 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.remaining.ss (con relleno de ceros, 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 ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • chapter.all.duration.ss (con relleno de ceros, 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 si existe un compositor

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

Línea de tres partes con \t (posición, formato y duración)

Sección titulada «Línea de tres partes con \t (posición, formato y duración)»
%player.position%\t%format%\t%player.duration%

Mostrar Hi-Res solo con una frecuencia de muestreo alta

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

Mostrar el dispositivo de salida activo (Android u otro renderizador)

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

Indicador de calidad de estilo Apple que se puede alternar (utiliza bool1)

Sección titulada «Indicador de calidad de estilo Apple que se puede alternar (utiliza 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 asignas una acción toggle bool1 a la plantilla de texto 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%

Tiempo transcurrido y restante del capítulo actual

Sección titulada «Tiempo transcurrido y restante del capítulo actual»
%chapter.position%\t%chapter.title%\t%chapter.remaining%

Progreso total del audiolibro con respecto al primer capítulo

Sección titulada «Progreso total del audiolibro con respecto 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 álbumes suelen ofrecer metadatos del álbum, pero no el estado de la cola ni del reproductor. Puedes utilizar la misma sintaxis común de las 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 ceros, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de ceros, 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 y versión del álbum, solo si existe la versión

Sección titulada «Título y versión del álbum, solo si existe la versión»
%title%{ — %version%}

Línea de año y género, omitiendo los valores que falten

Sección titulada «Línea de año y género, omitiendo los valores que falten»
%year%{ • %genre%}

Valoración, solo si el usuario ha valorado el álbum

Sección titulada «Valoración, solo si el usuario ha valorado el álbum»
{★ %userrating.5%/5%|userrating!=empty%}
{⬇ Offline%|offlinestatus!=empty%}

Subtítulo del artista (página del artista)

Sección titulada «Subtítulo del artista (página del artista)»

Las páginas de artistas suelen ofrecer metadatos del artista y estadísticas de la biblioteca. Puedes utilizar la misma sintaxis común de las 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 ceros, añade .nz para ocultarlo si es cero)
  • duration.hh (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.mm (con relleno de ceros, añade .nz para ocultarlo si es cero)
  • duration.ss (con relleno de ceros, 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 la insignia Favorite solo si está marcado como favorito

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