Pular para o conteúdo

Modelos de texto personalizados no Symfonium

Requer v12.0+

Esta página documenta a sintaxe dos modelos de texto personalizados no Symfonium e as listas de campos disponíveis em cada contexto.

Ela está organizada em:

  • Sintaxe comum dos modelos: placeholders, blocos condicionais, condições e operadores, formatação de texto, regras de escape e rótulos globais localizados string.*
  • Seções específicas por contexto:
    • Reproduzindo agora: recursos adicionais (\t, \o, campos next., campos chapter.*) e a lista completa de campos de Reproduzindo agora
    • Subtítulo de álbum: campos de nível de álbum disponíveis nas páginas de álbum
    • Subtítulo de artista: campos de nível de artista disponíveis nas páginas de artista

Sintaxe comum dos modelos (funciona em todos os lugares)

Seção intitulada “Sintaxe comum dos modelos (funciona em todos os lugares)”

Sintaxe: %fieldname%

  • Substitui %fieldname% pelo valor do campo
  • Se o campo estiver vazio ou ausente, nada é exibido

Exemplos:

ModeloResultado de exemplo
%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% é uma quebra de linha.


Use blocos para mostrar pontuação ou rótulos somente quando houver um valor ou quando uma condição for atendida.

Sintaxe: { ... }

  • Um bloco { ... } é exibido somente se o primeiro placeholder:
    • fizer referência a um campo não vazio
    • ou for um placeholder de condição verdadeira (%|condition%)
  • Você pode incluir vários placeholders e texto literal no mesmo bloco { ... }, mas somente o primeiro placeholder controla se o bloco é exibido
  • Coloque os espaços necessários dentro do bloco, por exemplo { by %artist%}

Exemplos:

ModeloResultado de exemploSe o campo estiver vazio
%title%{ by %artist%}Seven Nation Army by The White StripesSeven Nation Army
%album%{ (%year%)}Thriller (1982)Thriller
{%composer% ● }%artist%Beethoven ● Berliner PhilharmonikerBerliner Philharmoniker

Use %|condition% como primeiro placeholder para controlar um bloco sem imprimir um valor.

Exemplo:

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

Mostra Hi-Res: FLAC somente se format.samplerate > 48.

Use \n dentro de blocos condicionais:

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

Fora de { ... }, prefira %lb% para quebras de linha.


Sintaxe: %field|condition%

Exibe o campo somente se a condição for verdadeira.

Você pode comparar:

  • Outro nome de campo, por exemplo artist, composer, year
  • Um texto ou número literal entre aspas, por exemplo "2012", "Rock", "256"

Observações sobre literais:

  • track significa o campo track
  • "track" significa o texto literal track
  • Aspas podem aparecer dentro de valores. Verifique se o literal começa e termina com "

Exemplos:

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

OperadorSignificadoExemploObservações
==igual agenre=="Classical" / artist==composer
!=diferente deartist!="Metallica"
+=contémgenre+="Rock"funciona com um literal ou outro campo
-=não contémmood-="depressing"
>maior queyear>"1999"use aspas para números literais
<menor queduration<"500"a duração está em segundos
==emptyestá vazioyear==emptyempty é reservado
!=emptynão está vaziocomposer!=emptyempty é reservado
[]no intervalobpm[]"0".."100"limites inclusivos

Múltiplas condições, mistura de && / || e parênteses

Seção intitulada “Múltiplas condições, mistura de && / || e parênteses”
  • Use && para E
  • Use || para OU
  • Você pode misturar && e || na mesma condição
  • Use parênteses (...) para controlar a prioridade de avaliação

Exemplo:

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

Isso exibe %format% somente quando a profundidade de bits existe e pelo menos uma destas condições é atendida:

  • a taxa de amostragem é maior que 48
  • a profundidade de bits é maior que 24

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

Esses placeholders retornam textos traduzidos no idioma do usuário:

  • 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

Reproduzindo agora (Reprodutor compacto & Reprodutor expandido)

Seção intitulada “Reproduzindo agora (Reprodutor compacto & Reprodutor expandido)”

Os modelos de Reproduzindo agora podem acessar:

  • metadados da faixa
  • estado de reprodução
  • estado da fila
  • estado do capítulo
  • formato de áudio
  • informações de equalizador / renderizador
  • e mais

Use \t para dividir um modelo em vários segmentos.

Exemplo:

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

Com o alinhamento horizontal definido para distribuir o espaço entre os segmentos, o resultado geralmente é:

  • esquerda: posição
  • centro: formato
  • direita: duração

Use \o para aplicar uma sobreposição de proteção somente a essa parte, mesmo que o texto completo não esteja protegido.

Adicione next. antes dos campos de dados do item para se referir ao próximo item da fila:

%next.title%

Para campos de capítulo, next.chapter.* se refere ao próximo capítulo.


  • title
  • title.raw
  • cleantitle (título sem o número da faixa acrescentado nem o símbolo de conteúdo explícito)
  • artist
  • album
  • album.raw
  • album.version
  • album.type (também conhecido como tipo de lançamento)
  • 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 totais)
  • duration.d (adicione .nz para ocultar se for zero)
  • duration.h (adicione .nz para ocultar se for zero)
  • duration.m (adicione .nz para ocultar se for zero)
  • duration.s (adicione .nz para ocultar se for zero)
  • duration.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • 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 para 5 estrelas)
  • rating.5 (normalizado para 5 estrelas)
  • 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 se vier da Fila inteligente, 2+ se vier do Fluxo inteligente)
  • chapter.count
  • chapter.index
  • chapter.title
  • chapter.position
  • chapter.position.seconds
  • chapter.position.d (adicione .nz para ocultar se for zero)
  • chapter.position.h (adicione .nz para ocultar se for zero)
  • chapter.position.m (adicione .nz para ocultar se for zero)
  • chapter.position.s (adicione .nz para ocultar se for zero)
  • chapter.position.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.position.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.position.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.position.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.remaining
  • chapter.remaining.seconds
  • chapter.remaining.d (adicione .nz para ocultar se for zero)
  • chapter.remaining.h (adicione .nz para ocultar se for zero)
  • chapter.remaining.m (adicione .nz para ocultar se for zero)
  • chapter.remaining.s (adicione .nz para ocultar se for zero)
  • chapter.remaining.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.remaining.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.remaining.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.remaining.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.duration
  • chapter.duration.seconds
  • chapter.duration.d (adicione .nz para ocultar se for zero)
  • chapter.duration.h (adicione .nz para ocultar se for zero)
  • chapter.duration.m (adicione .nz para ocultar se for zero)
  • chapter.duration.s (adicione .nz para ocultar se for zero)
  • chapter.duration.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.duration.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.duration.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.duration.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.position
  • chapter.all.position.seconds
  • chapter.all.position.d (adicione .nz para ocultar se for zero)
  • chapter.all.position.h (adicione .nz para ocultar se for zero)
  • chapter.all.position.m (adicione .nz para ocultar se for zero)
  • chapter.all.position.s (adicione .nz para ocultar se for zero)
  • chapter.all.position.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.position.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.position.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.position.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.remaining
  • chapter.all.remaining.seconds
  • chapter.all.remaining.d (adicione .nz para ocultar se for zero)
  • chapter.all.remaining.h (adicione .nz para ocultar se for zero)
  • chapter.all.remaining.m (adicione .nz para ocultar se for zero)
  • chapter.all.remaining.s (adicione .nz para ocultar se for zero)
  • chapter.all.remaining.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.remaining.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.remaining.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.remaining.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.duration
  • chapter.all.duration.seconds
  • chapter.all.duration.d (adicione .nz para ocultar se for zero)
  • chapter.all.duration.h (adicione .nz para ocultar se for zero)
  • chapter.all.duration.m (adicione .nz para ocultar se for zero)
  • chapter.all.duration.s (adicione .nz para ocultar se for zero)
  • chapter.all.duration.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.duration.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.duration.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • chapter.all.duration.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • 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 (quebra de linha)
  • bool1
  • bool2
  • bool3
  • bool4
  • bool5

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

Composer ● Artist somente quando o compositor existir

Seção intitulada “Composer ● Artist somente quando o compositor existir”
{%composer% ● }%artist%

linha em três partes usando \t (posição / formato / duração)

Seção intitulada “linha em três partes usando \t (posição / formato / duração)”
%player.position%\t%format%\t%player.duration%

mostrar Hi-Res somente para alta taxa de amostragem

Seção intitulada “mostrar Hi-Res somente para alta taxa de amostragem”
{%|format.samplerate>"48"% Hi-Res: %format.codec%}

mostrar dispositivo de saída ativo (Android ou outro renderizador)

Seção intitulada “mostrar dispositivo de saída ativo (Android ou outro renderizador)”
{ %output.current|renderer.type=="Android"%}{ %renderer.current|renderer.type!="Android"%}

indicador de qualidade no estilo Apple alternável (usa bool1)

Seção intitulada “indicador de qualidade no estilo Apple alternável (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"%}

Se você vincular a ação toggle bool1 ao modelo de texto, ela alterna entre:

  • mostrar %format% quando bool1 for true
  • mostrar o indicador no estilo Apple quando bool1 for false
Vol %volume.current%%
{%chapter.index% - }%chapter.title%
%chapter.position%\t%chapter.title%\t%chapter.remaining%

progresso completo do audiolivro relativo ao primeiro capítulo

Seção intitulada “progresso completo do audiolivro relativo ao primeiro capítulo”
%chapter.all.position%\t%chapter.all.duration%
%next.chapter.title%
%format.codec% • %format.bitdepth%/%format.samplerate.raw% • %format.bitrate.raw%

As páginas de álbum normalmente fornecem metadados do álbum, mas não o estado da fila nem do reprodutor. Você pode usar a mesma sintaxe comum dos modelos.

  • title
  • title.raw
  • version
  • tags
  • type
  • status
  • composer
  • artist
  • year
  • duration
  • duration.seconds (segundos totais)
  • duration.d (adicione .nz para ocultar se for zero)
  • duration.h (adicione .nz para ocultar se for zero)
  • duration.m (adicione .nz para ocultar se for zero)
  • duration.s (adicione .nz para ocultar se for zero)
  • duration.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • 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 do álbum + versão somente se a versão existir

Seção intitulada “título do álbum + versão somente se a versão existir”
%title%{ — %version%}

linha com ano + gênero, omitindo as partes ausentes

Seção intitulada “linha com ano + gênero, omitindo as partes ausentes”
%year%{ • %genre%}

avaliação exibida somente quando atribuída pelo usuário

Seção intitulada “avaliação exibida somente quando atribuída pelo usuário”
{★ %userrating.5%/5%|userrating!=empty%}
{⬇ Offline%|offlinestatus!=empty%}

As páginas de artista normalmente fornecem metadados do artista e estatísticas da biblioteca. Você pode usar a mesma sintaxe comum dos modelos.

  • title
  • title.raw
  • version
  • tags
  • type
  • gender
  • duration
  • duration.seconds (segundos totais)
  • duration.d (adicione .nz para ocultar se for zero)
  • duration.h (adicione .nz para ocultar se for zero)
  • duration.m (adicione .nz para ocultar se for zero)
  • duration.s (adicione .nz para ocultar se for zero)
  • duration.dd (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.hh (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.mm (preenchido com 0, adicione .nz para ocultar se for zero)
  • duration.ss (preenchido com 0, adicione .nz para ocultar se for zero)
  • 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 o selo Favorite somente quando for favorito

Seção intitulada “mostrar o selo Favorite somente quando for favorito”
{♥ Favorite%|favorite!=empty%}
%title%{\n%instrument%}