Содержание

Описание

В этой документации приведены сведения по форматированию заголовков композиций. С помощью форматирования можно настроить как Winamp должен отображать метаданные в списке воспроизведения и главном окне. Синтаксис форматирования настраивается в разделе «Заголовки композиций» окна настроек Winamp.


Значение по умолчанию:
[%artist% - ]$if2(%title%,$filepart(%filename%)


В этом случае метаданные будут отображаться в виде «Исполнитель — Название песни» (но если исполнитель и название не указаны в метаданных, будет отображено имя файла).

Синтаксис

%поле% — поле метаданных.

$функция() — вызов функции.

[%поле%] — содержимое квадратных скобок не будет отображено, если тег поля отсутствует в метаданных. Например, в случае с «%artist% - [%album% / ]%title%» все пробелы и косая черта не будут показаны, если название альбома не указано в метаданных.

‘текст’ — текст, заключенный в одинарные кавычки, будет отображен в исходном виде (то есть без синтаксического разбора). Например, в случае с «‘слово$слово%слово[]’» все слова и специальные символы ($ % [ ]) будут проигнорированы синтаксическим анализатором.

Поля

Примечание. Набор доступных полей зависит от установленных компонентов Winamp. Некоторые поля задаются библиотекой (%rating%, %playcount%), в то время как другие самим Winamp (%filename%, %folder%). Более того, у многих подключаемых модулей ввода есть свои собственные поля (стоит отметить, что у некоторых подключаемых модулей их больше, чем у других). Например, у подключаемого модуля Windows Media (in_wm, Winamp 5.12 и более новые версии) поля задаются в виде %WM/*% (чтобы посмотреть список атрибутов у файлов WMA, WMV и ASF, см. вкладку «Дополнительно» в окне «Сведения о файле»).

Поля Winamp

%filename%

Возвращает полный путь к файлу. Чтобы отобразить только имя файла, воспользуйтесь функцией $filepart.

%folder%

Возвращает имя содержащей папки.

Для Winamp 5.2 и более новых версий.

Поля библиотеки

%rating%

Возвращает оценку (если есть) в виде целого числа от 1 до 5. Чтобы отобразить оценку в виде звездочек (*) или других символов, воспользуйтесь функцией $repeat.

Для Winamp 5.2 и более новых версий.

%playcount%

Возвращает количество прослушиваний, если файл присутствует в базе данных библиотеки.

Для Winamp 5.2 и более новых версий.

Поля библиотеки и подключаемых модулей ввода

Информация для этих полей берется из библиотеки только в том случае, если файл присутствует в базе данных библиотеки и когда установлен следующий флажок:
Настройки (Ctrl+P) > Библиотека > Домашняя библиотека > «Загружать сведения из библиотеки для элементов в списке воспроизведения»

В остальных случаях информация предоставляется подключаемым модулем ввода (если он поддерживает конечное поле).

Обратите внимание, что информация для большинства полей берется из стандартных тегов метаданных, поэтому вводить какие-либо префиксы перед нижеследующими полями не требуется.

%artist%

Возвращает имя исполнителя.

%title%

Возвращает название композиции.

%album%

Возвращает название альбома.

%year%

Возвращает год.

%genre%

Возвращает жанр.

%comment%

Возвращает примечание.

%tracknumber%

Возвращает номер дорожки без нуля. Например, для первой дорожки будет отображено «1».
Чтобы отображать номера с нулями (01, 02 и т. д.), воспользуйтесь функцией $num или $lpad.

%track%

См. %tracknumber%.

%albumartist%

Возвращает имя исполнителя альбома.
Для Winamp 5.3 и более новых версий.

%disc%

Возвращает номер диска (если указан). Например, «1/2» (набор из двух дисков).

%composer%

Возвращает имя композитора.

%publisher%

Возвращает имя издателя (лейбл).
Для Winamp 5.3 и более новых версий.

%streamtitle%

Возвращает название потока (если есть) при потоковом воспроизведении.

%bitrate%

Возвращает битрейт (при переменном битрейте будет показан средний).

%length%

Возвращает продолжительность дорожки (в миллисекундах). Чтобы вывести значение в минутах и секундах, воспользуйтесь функцией
$div(%length%,60000):$num($div($mod(%length%,60000),1000),2)

%type%

Возвращает «1» — для видео, «0» — для аудио.
Для Winamp 5.2 и более новых версий.

%vbr%

Возвращает «1» — для VBR (переменный битрейт), «0» — для CBR (постоянный битрейт).

%category%

Возвращает категорию.
Для Winamp 5.55 и более новых версий.

%producer%

Возвращает имя продюсера (для музыки и кинофильмов).
Для Winamp 5.57 и более новых версий.

%director%

Возвращает имя режиссера (для кинофильмов); в основном используется для файлов видео.
Для Winamp 5.57 и более новых версий.

Поля подключаемых модулей ввода

Следующие поля поддерживаются не для всех типов файлов.

%trackartist%

Возвращает имя исполнителя дорожки (эквивалентно исполнителю), если оно отличается от имени исполнителя альбома.
Для Winamp 5.3 и более новых версий.

%mood%

Возвращает тип настроения.
Для Winamp 5.3 и более новых версий.

%bpm%

Возвращает значение BPM (ударов в минуту), если есть.
Для Winamp 5.3 и более новых версий.

%key%

Возвращает ключевой знак (если указан). Например, «Ми минор».
Для Winamp 5.3 и более новых версий.

%lyricist%

Возвращает имя поэта-песенника.
Для Winamp 5.3 и более новых версий.

%conductor%

Возвращает имя дирижера.
Для Winamp 5.3 и более новых версий.

%tool%

Возвращает название программы, с помощью которой была закодирована дорожка (например, с компакт-диска). Например, «Winamp 5.34».
Для Winamp 5.3 и более новых версий.

%family%

Возвращает описание типа файла. Например, у файла с расширением M4A будет возвращено «MPEG-4 Audio File Format».
Для Winamp 5.5 и более новых версий.

%encoder%

Возвращает название кодировщика. Например, «LAME 3.97».
Для Winamp 5.3 и более новых версий.

%ISRC%

Возвращает международный стандартный код записи (ISO 3901). [Подробнее]
Для Winamp 5.3 и более новых версий.

%replaygain_track_gain%

Возвращает уровень усиления громкости дорожки (если есть). Например, «-3,16 дБ».
Для Winamp 5.3 и более новых версий.

%replaygain_album_gain%

Возвращает уровень усиления громкости альбома (если есть).
Для Winamp 5.3 и более новых версий.

%replaygain_track_peak%

Возвращает пиковый уровень громкости дорожки (если есть).
Для Winamp 5.3 и более новых версий.

%replaygain_album_peak%

Возвращает пиковый уровень громкости альбома (если есть).
Для Winamp 5.3 и более новых версий.

%gain%

Возвращает уровень усиления громкости (если есть).
Для Winamp 5.3 и более новых версий.

Функции

Примечание. Будьте внимательны к пробелам после запятых. В случае с «$if(%title%, Есть название, Нет названия)» результат будет таким:
« Есть название» (обратите внимание на лишний пробел) вместо «Есть название».
Следовательно, пробелы не следует ставить после запятых: «$if(%title%,Есть название,Нет названия)».

Управление потоком выполнения

[...] — условный раздел

$if

Параметры: (a, then, else)
Возвращает: Если параметр a содержит хотя бы одно допустимое и непустое поле, возвращается значение then, иначе — значение else. Обратите внимание, что функция $if(A,A,B) эквивалентна $if2(A,B).
Пример: $if(%artist%,Исполнитель указан,Исполнитель не указан)

$if2

Параметры: (a, else)
Возвращает: Если параметр a содержит допустимое и непустое поле, возвращается значение a, иначе — значение else.
Пример: $if2(%album%,Без альбома)

$if3

Параметры: (a1, ..., aN, else)
Возвращает: Если один из параметров a1aN содержит допустимое и непустое поле, возвращается значение, иначе — значение else.
Пример: $if3(%artist%,%filename%,%album%,Поле не заполнено)

$decode

Параметры: (a, b1, c1, ..., bN, cN, else)
Возвращает: cN или else. Определяет, какое значение из параметров b1bN равно a, а затем возвращает подходящее значение cN. Если ни одно значение не подходит, возвращается значение последнего параметра — else.
Пример: $decode($fileext(%filename%),MP3,MPEG-1 Layer 3,MP4,MPEG-4 Container,Другой тип файла)

Для Winamp 5.2 и более новых версий.

$ifgreater

Параметры: (x1, x2, then, else)
Возвращает: Сравнивает целые числа x1 и x2. Если x1 больше x2, возвращается значение then. Иначе будет возвращено значение else.
Пример: $ifgreater(%rating%,2,Песня с высокой оценкой,Песня с низкой оценкой)

Для Winamp 5.2 и более новых версий.

$iflonger

Параметры: (a1, x1, then, else)
Возвращает: Сравнивает количество символов значения a1 с числом x1. Если количество символов превышает число, возвращается значение then. Иначе будет возвращено значение else.
Пример: $iflonger(%title%,15,Длинное название,Короткое название)

Для Winamp 5.2 и более новых версий.

$IfStrEqual2

Параметры: (A, B, then, else)
Возвращает: Если значение A равно B, возвращается значение then. Иначе будет возвращено значение else.
Пример: $IfStrEqual2(%year%,2011,Новинка:,Старье:) — будет выведено «Новинка», если композиция была издана в 2011 году, в противном случае — «Старье».
Пример: $IfStrEqual2(%type%,1,'(Видео)','(Аудио)')

Для Winamp 5.2 и более новых версий.

$IfStrEqual

Параметры: (A, B, then)
Возвращает: Если значение A равно B, возвращается значение then, иначе — ничего.
Пример: $IfStrEqual(%year%,2011,Новинка:) — будет выведено «Новинка», если композиция была издана в 2011 году.

Для Winamp 5.2 и более новых версий.

Логические функции

$and

– Упразднена –
Параметры: (%a%, %b%) — проверка на заполненность полей метаданных.
Возвращает: Если поля %a% и %b% заполнены, возвращается «Оба поля заполнены», иначе «Одно из полей не заполнено».
Пример: $if($and(%artist%,%title%),Оба поля заполнены,Одно из полей не заполнено)

Для Winamp 5.2 и более новых версий.

Арифметические функции

$mod

Параметры: (x1, x2)
Возвращает: Остаток от деления x1 на x2.
Пример: $mod(21,8) возвращает «5».

Для Winamp 5.2 и более новых версий.

$div

Параметры: (x1, x2)
Возвращает: Частное от деления x1 на x2.
Пример: $div(60,10)

Для Winamp 5.2 и более новых версий.

$mul

Параметры: (x1,x2,...,xn) — числа для умножения.
Возвращает: Произведение x1 * x2 * ... * xn.
Пример: $mul(7,8,3,4)

Для Winamp 5.2 и более новых версий.

$muldiv

Параметры: (x1, x2, x3)
Возвращает: x1 * x2 / x3. x1 умноженное на x2 и деленное на x3. Возвращаемый результат округляется до ближайшего целого.
Пример: $muldiv(10,6,3) возвращает «20».

Для Winamp 5.2 и более новых версий.

$sub

Параметры: (x1,x2,...,xn) — числа для вычитания.
Возвращает: Разность x1 - x2 - ... - xn.
Пример: $sub(25,1,3,2,3)

Для Winamp 5.2 и более новых версий.

$add

Параметры: (x1,x2,...,xn) — числа для сложения.
Возвращает: Сумма x1 + x2 + ... + xn.
Пример: $add(2,3,%playcount%,%rating%)

Для Winamp 5.2 и более новых версий.

$greater

Параметры: (x1, x2) — два числа для сравнения.
Возвращает: Если x1 больше x2, возвращается x1, иначе — ничего. Схожа с функцией $ifgreater().
Пример: $greater(3,2) — обратите внимание, что данная функция не будет работать в пределах функции $if().

Для Winamp 5.2 и более новых версий.

$max

Параметры: (x1,...,xn) — числа для сравнения.
Возвращает: Наибольшее число.
Пример: $max(7,8,3,4)

Для Winamp 5.2 и более новых версий.

$min

Параметры: (x1,...,xn) — числа для сравнения.
Возвращает: Наименьшее число.
Пример: $min(7,8,3,4)

Для Winamp 5.2 и более новых версий.

Строковые функции

$lower

Параметры: (a1)
Возвращает: Значение a1 с нижним регистром.
Пример: $lower(%title%)

$upper

Параметры: (a1)
Возвращает: Значение a1 с верхним регистром.
Пример: $upper(%title%)

$replace

Параметры: (a1, a2, a3)
Возвращает: Значение a1, в котором все вхождения a2 заменены на a3.
Пример: $replace(дым,ы,о) возвращает «дом».

Для Winamp 5.2 и более новых версий.

$left

Параметры: (a1, N)
Возвращает: Первые x1 символов значения a1.
Пример: $left(%title%,5)

Для Winamp 5.2 и более новых версий.

$right

Параметры: (a1, x1)
Возвращает: Последние x1 символов значения a1.
Пример: $right(%title%,5)

Для Winamp 5.2 и более новых версий.

$len

Параметры: (a1)
Возвращает: Количество символов значения a1.
Пример: $len(%artist%)

Для Winamp 5.2 и более новых версий.

$substr

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $substr() [TODO]

Для Winamp 5.2 и более новых версий.

$strstr

Параметры: (a1, a2)
Возвращает: Первое вхождение подстроки a2 в строку a1.
Пример: $strstr(aacbbabb,ab) возвращает «6».

Для Winamp 5.2 и более новых версий.

$strrchr

Параметры: (a1, a2)
Возвращает: Последнее вхождение подстроки a2 в строку a1.
Пример: $strrchr(aacbbabb,a) возвращает «6».

Для Winamp 5.2 и более новых версий.

$strlchr

Параметры: (a1, a2)
Возвращает: Последнее вхождение символа a2 в строку a1.
Пример: $strlchr(aacbbabb,a) возвращает «1».

Для Winamp 5.2 и более новых версий.

$strchr

Параметры: (a1, a2)
Возвращает: Первое вхождение символа a2 в строку a1.
Пример: $strchr(aacbbabb,a) возвращает «1» (эквивалентно функции $strlchr()).

Для Winamp 5.2 и более новых версий.

$shortest

Параметры: (a1, a2)
Возвращает: Если значение a1 содержит меньше символов, чем значение a2, возвращается значение a1, иначе — a2.
Пример: $shortest(%album%,%folder%)

$longest

Параметры: (a1, a2)
Возвращает: Если значение a1 содержит больше символов, чем значение a2, возвращается значение a1, иначе — a2.
Пример: $longest(%album%,%folder%)

$abbr

Параметры: (a1, x1)
Возвращает: Аббревиатура от значения a1.
Примеры: $abbr(%album%) возвращает название альбома в виде аббревиатуры (например, «FFVI» от «Final Fantasy VI»).
$abbr(Союз Советских Социалистических Республик,10) — «СССР».
$abbr(%album%,10) — название альбома будет показано в виде аббревиатуры, если оно больше десяти символов.
Параметр x1 является необязательным. Он лишь определяет количество символов, при превышении которого значение a1 будет преобразовано в аббревиатуру.

$padcut

Параметры: (a1, x2)
Возвращает: Дополняет пробелами значение a1 (либо убирает лишние символы), чтобы длина строки стала равна x2 символам.
Пример: $padcut(%artist%,15)

$cut

Параметры: (a1, x2)
Возвращает: Убирает лишние символы, если количество символов значения a1 превышает число x2.
Пример: $cut(%comment%,15) возвращает поле «Примечание», и если текст большой, он обрезается до 15 символов.

$pad

Параметры: (string, num, padstr)
Возвращает: Дополняет значение string таким количеством пробелов, чтобы длина строки стала равна num символам. Обратите внимание, что вместо пробелов можно использовать любой другой символ (либо даже слово), который можно указать в параметре padstr.
Пример: $pad(%artist%,40); с добавлением точек — $pad(%artist%,40,.)

$lpad

Параметры: (string, num, padstr)
Возвращает: Дополняет слева значение string таким количеством пробелов, чтобы длина строки была равна num символам. Обратите внимание, что вместо пробелов можно использовать любой другой символ (либо даже слово), который можно указать в параметре padstr.
Пример: $lpad(%tracknumber%,3); с добавлением точек спереди — $pad(%artist%,40,.)

Для Winamp 5.2 и более новых версий.

$trim

Параметры: (a1)
Возвращает: Значение a1 без начальных и конечных пробелов.
Пример: $trim(%artist%)

Для Winamp 5.2 и более новых версий.

$repeat

Параметры: (a1, x1)
Возвращает: Значение a1, дублированное x1 раз.
Пример: $repeat(*,%rating%)

Примечание. В Winamp 5.2 задачу данной функции выполняла $fill(), но в версиях после 5.21 функция $fill() упразднена.

$caps

Параметры: (a1)
Возвращает: Значение a1, в котором первая буква каждого слова будет прописной, а остальные буквы — строчными.
Пример: $caps(%artist%)

$caps2

Параметры: (a1)
Возвращает: Значение a1, в котором первая буква каждого слова будет прописной.
Пример: $caps2(%artist%)

$fileext

Параметры: (a1)
Возвращает: Расширение файла a1.
Пример: $fileext(%filename%)

$filepart

Параметры: (a1)
Возвращает: Имя файла a1 (без полного пути).
Пример: $filepart(%filename%)

$filename

Параметры: (a1)
Возвращает: Имя файла a1 (без полного пути).
Пример: $filename(%filename%)

$directory

Параметры: (a1, x1)
Возвращает: Имя каталога a1 уровня x1.
Пример: $directory(%filename%,2)
В примере указан каталог второго уровня. Таким образом, если файл расположен в «C:\Музыка\Исполнитель - Альбом\Песня.mp3», отобразится имя каталога «Музыка». Параметр x1 является необязательным (если он не указан, будет отображено имя каталога первого уровня).

Для Winamp 5.2 и более новых версий.

$split

Параметры: (a, token, which)
Возвращает: Разделение номера диска и/или номера дорожки. Например, чтобы вместо номера «4/11» был показан номер «4».
Пример: [$num(%track%,2)$IfStrNotEqual($split(%track%,/,1),,/$num($split(%track%,/,1),2))]

Для Winamp 5.5 и более новых версий.

$ext

Параметры: (a1)
Возвращает: Расширение файла a1.
Пример: $ext(%filename%)

Для Winamp 5.2 и более новых версий.

$hex

Параметры: (x1, x2)
Возвращает: Значение x1 в виде шестнадцатеричного числа с количеством цифр x2 (с дополнением нулями слева).
Пример: $hex(%tracknumber%,4)

Для Winamp 5.2 и более новых версий.

$dec

Параметры: (x1, x2)
Возвращает: Значение x1 с количеством цифр x2 (с дополнением нулями слева).
Пример: $dec(%tracknumber%,5)

Для Winamp 5.2 и более новых версий.

$num

Параметры: (x1, x2)
Возвращает: Значение x1 с количеством цифр x2 (с дополнением нулями слева).
Пример: $num(%tracknumber%,5)

Для Winamp 5.2 и более новых версий.

$null

Параметры: Любое количество параметров.
Возвращает: Ничего.
Пример: $null()
Абсолютно ничего не делает. Данная функция пригодится только в том случае, если требуется указать пустой параметр.

Для Winamp 5.2 и более новых версий.

$PathLPart

Параметры: (a1, x1)
Возвращает: Значение a1 с первыми x1 уровнями.
Пример: $PathLPart(%filename%,2)
В примере указано два уровня. Таким образом, если файл расположен в «C:\Музыка\Исполнитель - Альбом\Песня.mp3», отобразится «C:\Музыка».

Для Winamp 5.3 и более новых версий.

$PathRPart

Параметры: (a1, x1)
Возвращает: Значение a1 с последними x1 уровнями.
Пример: $PathRPart(%filename%,2)
В примере указано два уровня. Таким образом, если файл расположен в «C:\Музыка\Исполнитель - Альбом\Песня.mp3», отобразится
«Исполнитель - Альбом\Песня.mp3».

Для Winamp 5.3 и более новых версий.

$PathLTrim

Параметры: (a1, x1)
Возвращает: Значение a1 с усечением первых x1 уровней.
Пример: $PathLTrim(%filename%,1)
В примере указано усечение на один уровень. Таким образом, если файл расположен в «C:\Музыка\Исполнитель - Альбом\Песня.mp3», отобразится
«Музыка\Исполнитель - Альбом\Песня.mp3».

Для Winamp 5.3 и более новых версий.

$PathRTrim

Параметры: (a1, x1)
Возвращает: Значение a1 с усечением последних x1 уровней.
Пример: $PathRTrim(%filename%,1)
В примере указано усечение на один уровень. Таким образом, если файл расположен в «C:\Музыка\Исполнитель - Альбом\Песня.mp3», отобразится
«C:\Музыка\Исполнитель - Альбом».

Для Winamp 5.3 и более новых версий.

Операции с переменными

$puts

Параметры: (имя, значение)
Возвращает: Присваивает значение переменной имя. Значение переменной можно получить с помощью функции $get(имя). Для присвоения и возврата значения используйте функцию $put().
Пример: $puts(исполнитель_название,%artist% - %title%)

Для Winamp 5.2 и более новых версий.

$put

Параметры: (имя, значение)
Возвращает: значение. Присваивает значение переменной имя. Значение переменной можно получить с помощью функции $get(имя). Для присвоения значения без возврата используйте функцию $puts().
Пример: $put(исполнитель_название,%artist% - %title%)

Для Winamp 5.2 и более новых версий.

$get

Параметры: (имя)
Возвращает: Значение переменной имя из функции $put() или $puts().
Пример: $get(исполнитель_название)

Для Winamp 5.2 и более новых версий.

Информация из системы

$systime_second

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_second() [TODO]

Для Winamp 5.2 и более новых версий.

$systime_minute

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_minute() [TODO]

Для Winamp 5.2 и более новых версий.

$systime_hour

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_hour() [TODO]

Для Winamp 5.2 и более новых версий.

$systime_day

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_day() [TODO]

Для Winamp 5.2 и более новых версий.

$systime_month

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_month() [TODO]

Для Winamp 5.2 и более новых версий.

$systime_year

Параметры: (a1,a2) [TODO]
Возвращает: a1 [TODO]
Пример: $systime_year() [TODO]

Для Winamp 5.2 и более новых версий.

Другие [TODO]

$select

$tab

$crlf

$char

Примеры

[ .... ] — содержимое квадратных скобок отобразится только в том случае, если хотя бы одно из полей найдено в метаданных. Например, в случае с [%artist% - ] содержимое скобок будет отображено, если тег исполнителя присутствует в метаданных композиции, и результат будет таким: «Исполнитель - ». В противном случае содержимое квадратных скобок не отобразится (включая тире и все пробелы).

Простой синтаксис форматирования

Синтаксис: [%artist% - ][%album% - ][$num(%track%,2) - ]$if2(%title%,$filepart(%filename%))
Пример:     Сектор газа - Газовая атака - 04 - 30 лет

Сложный синтаксис форматирования

Синтаксис:    [$if2(%albumartist%,%artist%) - ][%album% - ][$num(%track%,2) - ]
$IfStrNotEqual(%artist%,$if2(%albumartist%,%artist%),[%artist% - ])
[$if2(%title%,$filepart(%filename%))][$if($fileext(%filename%),'   [  ',)]
[%year%  |  ][$fileext(%filename%) ][$if(%bitrate%, '|'  ,)][%bitrate% 'кбит/с' ]
[$if($fileext(%filename%),']',)][   $repeat(*,%rating%) ]
Возвращает: Исполнитель альбома - Альбом - №№ - Исполнитель - Название  [ Год | Расширение | Скорость потока ]  Оценка
Примечание: имя исполнителя альбома будет отображено лишь в том случае, если оно отличается от имени исполнителя дорожки.
Пример:        Различные исполнители - Газовая атака - 04 - Сектор газа - 30 лет   [ 1996  |  mp3  |  205 кбит/с ]  *****