In the now playing screens (compact and expanded), custom strings can be used to display whatever you like. You can enter plain text there, but of course there are placeholders available that are replaced with information about the currently playing track.
Basic string replacement
The basic syntax for these placeholders is easy: %fieldname%
You have to give the precise name of the field between the percent signs (%). Everything including the percent signs will be replaced with the contents of the field at run time. If the field is empty (corresponding tag not set or empty), then nothing will be shown.
Everything outside of the percent signs will be printed literally. Simple usage examples are:
Template | Translates to (Example) |
---|---|
%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 Ludwig van Beethoven |
The available field names are:
title
cleantitle
→ the title without added track number or explicit symbolartist
album
albumartist
composer
year
track
disc
duration
bpm
genre
style
mood
explicit
format
lb
→ a line breaknext.title
next.cleantitle
→ the title without added track number or explicit symbolnext.artist
next.album
next.albumartist
next.composer
next.year
next.track
next.disc
next.duration
next.bpm
next.genre
next.style
next.mood
next.explicit
Version 12.1 adds the following new fields.
smartqueue
smartflow
format.bitrate
format.samplerate
format.bitdepth
format.codec
format.bitandsample
eq.profile
eq.config
queue.position
queue.size
language
releasedate
originaldate
userrating
rating
favorite
track.tags
playcount
skipcount
comment
next.language
next.releasedate
next.originaldate
next.userrating
next.rating
next.favorite
next.track.tags
next.playcount
next.skipcount
next.comment
Note: All fields prefixed with next.
refers to the next item in the queue.
Conditional text
As no contents is shown when the field is empty, you maybe want to print some of the characters only if actual contents is shown. This is possible by enclosing the expression with curly brackets: {AAA%fieldname%BBB}
.
AAA
will only be shown before and BBB
only after the main contents, if the field does contain something. Above examples enhanced with this function could be:
Template | Translates to (Example) | or when field is empty |
---|---|---|
%title%{ by %artist% } |
Seven Nation Army by The White Stripes | Seven Nation Army → if artist is empty |
%album%{ (%year%)} |
Thriller (1982) | Thriller → if year is empty |
{%composer% ● }%artist% |
Ludwig van Beethoven ● Berliner Philharmoniker | Berliner Philharmoniker → if composer is empty |
Please be aware that you can use only one field within the curly brackets. So this would not be possible: {Mood and Style: %mood% - %style%}
. This also extends to the line break placeholder %lb%
which cannot be used inside curly brackets, but you can use \n
(backslash followed by lowercase n) instead:
Template | Translates to | or when field is empty |
---|---|---|
%album%{\n(%year%)} |
Thriller (1982) |
Thriller → if year is empty |
Do not forget to include necessary whitespace within the curly brackets when using conditional text.
Conditional expressions
Even going further, you can show the contents of certain fields only if a condition of your choice is met. The syntax for this is: %fieldname|condition%
Conditions can be measured against the currently stated field, or against other known fields.
The checked value can be any field value or a literal value if you wrap it between "
. (So track
represent the track field, but "track"
represent the actual track string). You can still have "
inside the raw value this is not a problem as long as the raw value starts and ends with "
.
Template | Translates to (Example) |
---|---|
%year|year>"2012"% |
2013 → but not 2011 |
%composer|composer!=artist% |
Taylor Swift → if the track is not performed by Taylor Swift |
%composer|genre=="Classical% |
Ludwig van Beethoven → only for titles in the Classical genre |
The available operators for the conditions are:
Operator | Meaning | Example | Note |
---|---|---|---|
== |
the same | genre=="Classical" artist==composer |
|
!= |
not the same | artist!="Metallica" composer!=artist |
|
+= |
contains | genre+="Rock" mood+=style |
|
-= |
does not contain | mood-="depressing" mood-=genre |
|
> |
is greater than | year>"1999" |
Wrapping between "" is also necessary for raw number values |
< |
is less than | duration<"500" |
duration is in seconds |
==empty |
empty | year==empty |
empty is just a reserved word |
!=empty |
not empty | composer!=empty |
empty is just a reserved word |
Of course you can combine conditional strings and expressions to get the full flexibility out of this, for example:
Template | Translates to (if condition is met) | (if condition is not met) |
---|---|---|
{%composer|genre=="Classical"% ● }%artist% |
Wolfgang Amadeus Mozart ● Boston Symphony Orchestra | Billie Eilish |
%title%{\n(%bpm|bpm>"120"% BPM)} |
The Bells (138 BPM) |
Last Christmas |
{Oldies%|year<"1980"%} |
Oldies | [nothing] |