以下に Winamp でサポートされている ATF 機能を抜粋します。
ATF は Winamp がどのようにプレイリストとメインウインドウのソングティッカーにメタデータを表示するかを決定します。
Winamp 設定の 'タイトル' ページで手動でグローバルな ATF 文字列を編集できます。
Winamp のデフォルト ATF 文字列は以下の通りです:
[%artist% - ]$if2(%title%,$filepart(%filename%)
以下のように表示されます: 'アーティスト - タイトル'
アーティストとタイトルメタデータがファイルタグにあればそれを使用。なければ代わりに filename を表示します。
%hoge% はメタデータフィールドを示します。
$hoge() は関数呼び出しを示します。
[] で囲まれたメタデータが見つからなかった時は表示しません。
'(シングルクォート) で囲まれた部分は構文解析なしで生のテキストを出力します。 例えば 'hoge$hoge%hoge[]' は特殊文字($,%,[,])を無視して全ての文字列を出力します。
補足: フィールドは Winamp の様々なコンポーネントによって定義されます。
一部(%rating%, %playcount%)はメディアライブラリ依存で、
一部(%filename%, %folder%)は Winamp によって提供されます。
しかし、多くの場合入力プラグインによって提供されます。
いくつかの入力プラグインは他のプラグインよりも多くの種類のフィールドを提供します。
例えば、Windows Media プラグイン (in_wm, Winamp 5.12以降)では、%WM/*% によるいくつかのフィールドを提供します。(wma/wmv/asf ファイルの ファイル情報 ダイアログの詳細タブを参照してください)
ファイルのフルパスを返します。ファイル名だけを表示するときは $filepart 関数を使います。
ファイルを含むフォルダーを返します。
Winamp 5.2+ 専用。
トラックのレーティングがセットされている場合、1 から 5 までの整数で返します。☆やその他の文字で表示するときは $repeat 関数を使います。
Winamp 5.2+ 専用。
メディアライブラリ データベースに格納されている場合、再生回数(トラックが再生された回数)を返します。
Winamp 5.2+ 専用。
以下に挙げるフィールドは、ファイルがMLデータベースに存在していて、
次の以下のオプションを有効にしていると、MLから情報を取得します:
設定(Ctrl+P) > メディアライブラリ > ローカルメディア > "ライブラ リタイトル情報をプレイリスト タイトル フォーマットに使用する"
他の全ての場合では、情報は入力プラグインによって提供されます。 (それぞれのフィールドが入力プラグインによってサポートされている時)
これらの大部分は簡単であり、標準ファイルタグから取得さるため、追加の注記は必要としません。
アーティストフィールドを返します。
タイトルフィールドを返します。
アルバムフィールドを返します。
西暦フィールドを返します。
ジャンルフィールドを返します。
コメントフィールドを返します。
%tracknumber% と同じです。
アルバムアーティスト フィールドを返します。
Winamp 5.3+ 専用。
有効ならディスク番号タグを返します。例: 1/2 (2枚組みCDのディスク番号1)
作曲者フィールドを返します。
パブリッシャー(レコードレーベル) フィールドを返します。
Winamp 5.3+ 専用。
ストリームのストリーミングタイトルを返します。
ビットレートを返します。(VBR の時は平均ビットレートを使用)
トラック長をミリ秒単位で返します。トラック長の書式化は以下を使用します。
$div(%length%,60000):$num($div($mod(%length%,60000),1000),2)
ビデオの時は 1、オーディオの時は 0 を返します。
Winamp 5.2+ 専用。
VBR(可変ビットレート) の時は 1、CBR(固定ビットレート)の時は 0 を返します。
カテゴリ フィールドを返します。
Winamp 5.55+ 専用。
(レコードかフィルム)プロデューサー フィールドを返します。
Winamp 5.57+ 専用。
(フィルム)ディレクター フィールドを返します。mainly used for videos.
Winamp 5.57+ 専用。
以下に挙げたフィールドは全てのファイル形式では動作しないかもしれません。
トラックアーティスト フィールド(アーティストと同等)を返します。
Winamp 5.3+ 専用。
ムード フィールドを返します。
Winamp 5.3+ 専用。
データフィールドを持つなら BPM を返します。 (ビート/分)
Winamp 5.3+ 専用。
キー フィールドがあれば返します。(例: E Miner)
Winamp 5.3+ 専用。
歌詞フィールドを返します。
Winamp 5.3+ 専用。
指揮者フィールドを返します。
Winamp 5.3+ 専用。
エンコードツール(リッピング/エンコードに使用したソフト)を返します。(例: Winamp 5.34)
Winamp 5.3+ 専用。
ファイル種別を返します。(例: M4A の戻り値: MPEG-4 Audio File Format)
Winamp 5.5+ 専用。
エンコーダーを返します。(例: LAME 3.97)
Winamp 5.3+ 専用。
国際標準レコーディングコードまたは ISO 3901 (情報)
Winamp 5.3+ 専用。
リプレイゲインがあればトラックのリプレイゲインを返します。(例: -3.16 dB)
Winamp 5.3+ 専用。
リプレイゲインがあればアルバムのリプレイゲインを返します。
Winamp 5.3+ 専用。
リプレイゲインがあればトラックのピーク値を返します。
Winamp 5.3+ 専用。
リプレイゲインがあればアルバムのピーク値を返します。
Winamp 5.3+ 専用。
ゲインがあれば値を返します。
Winamp 5.3+ 専用。
注意: コンマの後のスペースに注意してください。$if(%title%, Has No Title) は
" A Title" と表示します(先頭のスペースに注意)、
"Has A Title" ではありません。
正しくは次のようにするべきです $if(%title%,Has A Title,Has No Title)。
引数: (a, then,
else)
戻り値:a が空でない有効なフィールドなら、 then を評価して返します。さもなければ、 else 引数を評価して返します。$if(A,A,B) と $if2(A,B) が同等であることに注意してください。
例: $if(%artist%,artist タグがある,artist タグが無い)
引数: (a, else)
戻り値:a が空でない有効なフィールドなら、a を評価して返します。さもなければ else 引数を評価して返します。
例:
$if2(%album%,アルバムが無い)
引数: (a1, ..., aN,
else)
戻り値:a1 から aN の間で空でない有効なフィールドの値を評価して返します。さもなければ else 引数を評価して返します。
例:$if3(%artist%,%filename%,%album%,フィールドが無い)
引数: (a, b1, c1, ..., bN, cN,
else)
戻り値: cN または else。 a 引数が bN 引数と一致したとき、cN 引数を評価して返す switch/case 関数です。一致が無い場合は最後の else 引数を評価して返します。
例:
$decode($fileext(%filename%),MP3,MPEG-1 Layer 3,MP4,MPEG-4 Container,その他)
Winamp 5.2+ 専用。
引数: (x1, x2, then,
else)
戻り値: x1 と x2 を整数値として比較します。x1 が x2 より大きいときは、then 引数を評価して返します。そうでない場合は、 else 引数を評価して返します。
例: $ifgreater(%rating%,2,高評価曲,高評価でない曲)
Winamp 5.2+ 専用。
引数: (a1, x1, then,
else)
戻り値:x1 と x2 の文字列の長さを比較します。x1 が x2 より長いときは、 then 引数を評価して返します。そうでない場合は、 else 引数を評価して返します。
例: $iflonger(%title%,15,長いタイトル,短いタイトル)
Winamp 5.2+ 専用。
引数: (A, B, then,
else)
戻り値:もし A = B なら then 、そうでない場合は else を返します。
例: $IfStrEqual2(%year%,2007,新しい!:,古い:)
例: $IfStrEqual2(%type%,1,'(ビデオ)','(音楽)')
Winamp 5.2+ 専用。
引数: (A, B,
then)
戻り値:もし A = B なら then を返します。
例: $IfStrEqual(%year%,2007,新しい!:)
2007年出版のメディアなら “新しい!” を表示します。
Winamp 5.2+ 専用。
– 削除されました –
引数: (%a%, %b%) – The fields
to check if populated.
戻り値: 1 if the fields %a% and %b%
are populated. An empty string if not. (?????)
例:
$if($and(%artist%,%title%),Has both artist and title,One field is
missing)
Winamp 5.2+ 専用。
引数: (x1, x2)
戻り値:
x1 を x2 で割った余り
例: $mod(21,8) の戻り値は “5”。
Winamp 5.2+ 専用。
引数: (x1, x2)
戻り値:
x1 を x2 で割った結果
例: $div(60,10) の戻り値は “6”。
Winamp 5.2+ 専用。
引数: (x1,x2,...,xn) - 掛ける数のリスト
戻り値: x1 * x2 * ... * xn. 全ての数をかけた結果。
例: $mul(7,8,3,4) の戻り値は “672“。
Winamp 5.2+ 専用。
引数: (x1, x2,
x3)
戻り値: x1 * x2 / 3. x1 かける x2 の結果を x3 で割ります。戻り値は最も近い整数値です。
例: $muldiv(10,6,3) の戻り値は “20”。
Winamp 5.2+ 専用。
引数: (x1,x2,...,xn) - 引き算する数のリスト
戻り値: x1 - x2 - ... - xn. x1 から x2...xn を減算します。
例: $sub(25,1,3,2,3) の戻り値は “16”。
Winamp 5.2+ 専用。
引数: (x1,x2,...,xn) - 足し算する数のリスト
戻り値: x1 + x2 +...+ xn. 全ての数を加算します。
例:
$add(2,3,%playcount%,%rating%)
Winamp 5.2+ 専用。
引数: (x1, x2) - 2つの数値を比較します
戻り値: x1 が x2 より大きければ 1、そうでなければ無し。$ifgreater() は同じ意味です。
例: $greater(3,2) – note does not appear to work within a $if() function.
Winamp 5.2+ 専用。
※訳注 なぜか手元では動作しませんでした。なので訳には自信がありません。引数: (x1,...,xn) - 比較する数のリスト
戻り値: 引数の中で最も大きい数
例: $max(7,8,3,4) の戻り値は “8”。
Winamp 5.2+ 専用。
引数: (x1,...,xn) - 比較する数乗りスト
戻り値: 引数の中で最も小さい数
例: $min(7,8,3,4) の戻り値は “3”。
Winamp 5.2+ 専用。
引数: (a1)
戻り値:a1 を小文字にして返します
例: $lower(%title%)
引数: (a1)
戻り値:a1 を大文字にして返します
例: $upper(%title%)
引数: (a1, a2,
a3)
戻り値: a1 の全ての a2 を a3 に置換します
例:
$replace(dum,u,o) は “dom” を返します。
Winamp 5.2+ 専用。
引数: (a1, x1)
戻り値:a1 の最初の x1 文字を返します。
例:
$left(%title%, 3) はタイトルの最初の3文字を返します。
Winamp 5.2+ 専用。
引数: (a1, x1)
戻り値:a1 の最後の x1 文字を返します。
例:
$right(%title%, 3) はタイトルの最後の3文字を返します。
Winamp 5.2+ 専用。
引数: (a1)
戻り値:a1 の文字数を返します
例:
$len(%artist%) はアーティスト名の文字数を返します。
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $substr()
Winamp 5.2+ 専用。
※訳注 未実装のようです。引数: (a1, a2)
戻り値:a1 の最初から数えて最初に現れる a2 の位置を返します
例: $strstr(aacbbabb,ab) は “6” を返します。
Winamp 5.2+ 専用。
引数: (a1, a2)
戻り値:a1 の最後から数えて最初に現れる a2 の位置を返します
例: $strrchr(aacbbabb,a) は “6” を返します。
Winamp 5.2+ 専用。
引数: (a1, a2)
戻り値:a1 の最初から数えて最初に現れる a2 の位置を返します
例: $strlchr(aacbbabb,a) は “1” を返します。
Winamp 5.2+ 専用。
引数: (a1, a2)
戻り値:a1 の最初から数えて最初に現れる a2 の位置を返します
例: $strchr(aacbbabb,a) は “1” を返します。 ($strlchr() と同じ)
Winamp 5.2+ 専用。
引数: (a1, a2)
戻り値:
a1 と a2 のうち、長さが短い方を返します。
例: $shortest(%album%,%folder%)
引数: (a1, a2)
戻り値:
a1 と a2 のうち、長さが長い方を返します。
例: $longest(%album%,%folder%)
引数: (a1, x1)
戻り値: a1 を簡略化します。
例: $abbr(%album%) アルバム名を次のように変換します。 “Final Fantasy VI” を “FFVI”。
$abbr(Advanced Title Formatting,10) は “ATF” を返します。
$abbr(%album%,10) アルバム名が10文字より長いときだけ簡略化して返します。
x1 の指定は任意です。もし指定された場合、
a1 が x1 文字よりも長い場合にのみ簡略化を行います。
引数: (a1, x2)
戻り値:a1 にスペースで補完するか、必要数だけ文字を削除して x2 文字の文字列を返します。
例: $padcut(%artist%,15)
引数: (a1, x2)
戻り値:a1 の x2 文字以降を削除します
例: $cut(%comment%,15) コメントの最初の15文字を返します。
引数: (string, num,
padstr)
戻り値:文字列が最低でも num 文字となるように、デフォルトではスペース、または padstr で指定された文字を埋め込みます。
例:
$pad(%artist%,40), または $pad(%artist%,40,.) はピリオドを埋め込みます。
引数: (string, num,
padstr)
戻り値:文字列が最低でも num 文字となるように、デフォルトではスペース、または padstr で指定された文字を左から埋め込みます。
例:
$lpad(%tracknumber%,3), または $lpad(%tracknumber%,3,0) は0を先頭に埋め込みます。
Winamp 5.2+ 専用。
引数: (a1)
戻り値:
a1 の前後のスペースを取り除きます。
例:
$trim(%artist%)
Winamp 5.2+ 専用。
引数: (a1, x1)
戻り値:
a1 を x1 回繰り返します。
例:
$repeat(*,%rating%) *をレーティング数分繰り返します。
(Winamp 5.2 の $fill()関数は5.21以降削除されました)
引数: (a1)
戻り値:a1 の最初の一文字を大文字に変換します。
例: $caps(%artist%)
引数: (a1)
戻り値:
a1 のそれぞれの単語の最初の文字を大文字に変換します。
例: $caps2(%artist%)
引数: (a1)
戻り値:a1 のファイル拡張子
例:
$fileext(%filename%)
引数: (a1)
戻り値:a1 のファイル名(例: パスを除きます)
例: $filepart(%filename%)
引数: (a1)
戻り値:a1 のファイル名(例: パスを除きます)
例: $filename(%filename%)
引数: (a1, x1)
戻り値:x1 段階の a1 ディレクトリ名
例: $directory(%filename%,2)
もしフルパスが “C:\Music\Artist - Album\Song.mp3” なら、上記の例では “Music” を返します。 x1 は任意で、デフォルトが1です。
Winamp 5.2+ 専用。
引数: (a, token, which)
戻り値:ディスクまたはトラック文字列を分離します。(例: "1/11" のとき "1" を表示)
例: [$num(%track%,2)$IfStrNotEqual($split(%track%,/,1),,/$num($split(%track%,/,1),2))]
Winamp 5.5+ 専用。
引数: (a1)
戻り値:a1 のファイル拡張子
例: $ext(%filename%)
Winamp 5.2+ 専用。
引数: (x1, x2)
戻り値:x1 を x2 桁の16進数で表示します。x2 桁に満たない時は0を挿入します。
例: $hex(%tracknumber%,4)
Winamp 5.2+ 専用。
引数: (x1, x2)
戻り値:x1 を x2 桁の10進数で表示します。x2 桁に満たない時は0を挿入します。
例: $dec(%tracknumber%,5)
Winamp 5.2+ 専用。
引数: (x1, x2)
戻り値:x1 を x2 桁で表示します。x2 桁に満たない時は0を挿入します。
例: $num(%tracknumber%,5)
Winamp 5.2+ 専用。
引数:複数の引数
戻り値: なし
例:
$null()
必ず何もしません。空の文字列が必要なときに役に立ちます。
Winamp 5.2+ 専用。
引数: (a1, x1)
戻り値:a1 の最初の x1 段分
例:
$PathLPart(%filename%,2)
もしフルパスが “C:\Music\Sonic Youth - Daydream Nation\01 - Teen
Age Riot.mp3” なら、上記の例では “C:\Music” を出力します。
Winamp 5.3+ 専用。
引数: (a1, x1)
戻り値:a1 の最後の x1 段分
例:
$PathRPart(%filename%,2)
もしフルパスが “C:\Music\Sonic Youth - Daydream Nation\01 - Teen Age Riot.mp3” なら、上記の例では “Sonic Youth
- Daydream Nation\01 - Teen Age Riot.mp3” を出力します。
Winamp 5.3+ 専用。
引数: (a1, x1)
戻り値:a1 の最初の x1 段分を取り除く
例:
$PathLTrim(%filename%,1)
もしフルパスが “C:\Music\Sonic Youth - Daydream Nation\01 - Teen Age Riot.mp3” なら、上記の例では “Music\Sonic
Youth - Daydream Nation\01 - Teen Age Riot.mp3” を出力します。
Winamp 5.3+ 専用。
引数: (a1, x1)
戻り値:a1 の最後の x1 段分を取り除く
例:
$PathRTrim(%filename%,1)
もしフルパスが “C:\Music\Sonic Youth - Daydream Nation\01 - Teen Age Riot.mp3” なら、上記の例では “C:\Music\Sonic Youth - Daydream Nation” を出力します。
Winamp 5.3+ 専用。
引数: (name,
value)
戻り値:名前付き変数に 値 を保存します。$get(name)を使用して値を取得します。$put() を使用すると値を保存するとともに、それを返します。
例: $puts(artist_title,%artist% -
%title%)
Winamp 5.2+ 専用。
引数: (name,
value)
戻り値: 値。名前付き変数に 値 を保存します。$get(name)を使用して値を取得します。 $puts() を使用すると値を保存するのみで、それを返しません。
例: $put(artist_title,%artist% - %title%)
Winamp 5.2+ 専用。
引数: (name)
戻り値:$put() または $puts() 関数で設定された、名前付き変数の値
例: $get(artist_title)
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_second()
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_minute()
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_hour()
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_day()
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_month()
Winamp 5.2+ 専用。
引数: TODO: (a1,
a2)
戻り値: TODO:
a1
例: TODO: $systime_year()
Winamp 5.2+ 専用。
[ .... ] - 少なくとも括弧中でフィールドが見つかった場合にだけ括弧内のコンテンツを表示します。 例えば、[%artist% - ] は %artist% タグがある場合にだけ表示されます。さもなければ(ハイフンとスペースも含めて)何も表示されません。
文法: [%artist% - ][%album% - ][$num(%track%,2) - ]$if2(%title%,$filepart(%filename%))
例: Pink Floyd - Animals - 02 - Dogs
文法: [$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% 'kbps' ]
[$if($fileext(%filename%),']',)][ $repeat(*,%rating%) ]
戻り値: AlbumArtist - Album - ## - Artist - Title [ Year | Ext | Bitrate ] StarRating
if AlbumArtist is different to TrackArtist, otherwise shows Standard format.
例: Various - Arcana - 01 - Tripswitch - Calabi Yau [ 2006 | mp3 | 205 kbps ] *****