#contents
|LEFT:|LEFT:|LEFT:200|c

***算術演算子 [#r1b47575]
|$add(x,y...)|複数の整数の足し算 (x+y+...) を行います。引数はいくつでも取ることが出来ます。|$add(%TRACKNUMBER%,$mul(%DISC%,100))|
|$sub(x,y)|整数 y を整数 x から引き算します。||
|$mul(x,y...)|整数のかけ算 (x*y*...) を行います。引数はいくつでも取ることが出来ます。|$add(%TRACKNUMBER%,$mul(%DISC%,100))|
|$muldiv(x,y,z)|整数 x を整数 y でかけ算し、整数 z で割った値を求めます。||
|$div(x,y)|整数 x を整数 y で割ります。|$div(%TRACKNUMBER%,100)|
|$mod(x,y)|x を y で割った余りを求めます。|$mod($rand(),10)|

***論理演算子 [#t7582f58]
|$and(x,y...)|引数の論理積(すべてTRUEならTRUE)を求めます。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$or(x,y...)|引数の理論和(どれか1つでもTRUEならTRUE)を求めます。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$xor(x,y)|引数の排他的論理和(xまたはyのどちらかがTRUEでかつ両方ともTRUEでない場合にTRUE)を求めます。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$not(x)|引数の否定(TRUEでない場合TRUE)を求めます。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$greater(x,y)|二つの整数を比較。 x>y かどうかを試します。$if()タイプの関数およびそのほかの理論演算子と共に使用します。|$if($greater(%TRACKNUMBER%,100),$div(%TRACKNUMBER%,100),%DISC%)|
|$strcmp(x,y)|二つの文字列を比較します(等しい場合はTRUE)。大文字と小文字を区別します。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$stricmp(x,y)|二つの文字列を比較します(等しい場合はTRUE)。大文字と小文字を区別しません。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||
|$longer(x,y)|二つの文字列の比較、 x が y より長いかを試します。$if()タイプの関数およびそのほかの理論演算子と共に使用します。||

***制御構造 [#v0ad2a6c]
|$if(a,b,c)|もし a が最低1個の有効なタグを含んでいる場合、 b を実行/表示します。それ以外の場合 c を実行/表示します。|"$if(%artist%,%artist%,unknown artist)" はアーティストの名前が存在する場合はその名前を表示し、存在しない場合は "unknown artist" を表示します。 注:"$if(a,a,)" は "[a]" と同等です。(下記を参照)|
|$if2(a,b)|$if(a,a,b) と同等です。|$if2(%title%,%_filename%)|
|$if3(a,b,c,..)|1番はじめのTRUEもしくは空白ではない値を返します。||
|$ifequal(a,b,c,d)|もし数字 a が数字 b と等しい場合、 c を実行/表示します。それ以外の場合 d を実行/表示します。||
|$ifgreater(a,b,c,d)|もし数字 a が数字 b より大きい場合、 c を実行/表示します。それ以外の場合 d を実行/表示します。||
|$iflonger(a,b,c,d)|もし文字列 a が b 文字より長い場合、 c を実行/表示します。それ以外の場合 d を実行/表示します。||
|$select(n,a,b,c,....)|引数 a,b,c... の n 番目のものを返します。|$select(3,'qwer','asdf','zxcv') なら 'zxcv' を返します。|
|$shortest(a,b,c,....)|引数 a,b,c... を比較し最も短いものを返します。|$shortest(%title%,%comment%)|
|$longest(a,b,c,....)|a,b,c... が返す値を比較し、もっとも長い値を表示します。 |$longest(%title%,%comment%)|

***数値 [#p64384e6]
|$hex(x,y)|整数 x を10進法から16進法に変換し、y 桁まで桁取りします。|$hex(%_playlist_number%,3)|
|$len(x)|文字列 x の文字数を返します。||
|$len2(x)|double-width 文字(平仮名、片仮名、漢字なども含まれる)を考慮して、文字列 x の文字数を返します。(double-width 文字は2文字として数えられます).||
|$num(x,y)|x を10進法の数として返しゼロで y 桁まで桁取りします。 (トラックナンバーに便利です。)|$num(%tracknumber%,2)|
|$tracknumber(n)|トラックナンバーのタグの数値を n桁分桁取りして返します。|標準の $tracknumber() とすれば2桁で数値が返されますが、n/Nまたはnn/NN形式のトラックナンバーには適用されません。これらも2桁で表示したい場合は、$num(%tracknumber%,2)を使用します。|
|$strchr(x,y)|文字列 x のうち最初に一致する文字 y の位置を探します。||
|$strrchr(x,y)|文字列 x のうち最後に一致する文字 y の位置を探します。||
|$strstr(x,y)|文字列 x のうち最初に一致する文字列 y の位置を探します。||
|$min(x,y...)|整数の比較を行い x, y... の最も小さい値を返します。引数はいくつでも取ることが出来ます。||
|$max(x,y...)|整数の比較を行い x, y... の最も大きい値を返します。引数はいくつでも取ることが出来ます。||
|$rand()|0 から 4294967295 (2^32-1) までの無作為な数を生成します。(v0.9.5 からは使えません)|$mod($rand(),10)|

***文字列 [#xc46e2c2]
|$char(x)|Unicode 番号 x の文字を挿入します。|"$char(3)" はプレイリストでカラーコードを制御する文字を返します。|
|$crlf()|改行コード (carrier return / linefeed) を挿入します。複数行の出力をするのに便利です。(例: system tray tooltip).|$crlf()|
|$fix_eol(x)|x 中に改行コード (CR/LF) が含まれているか検索し、見つかった場合は切りつめて " (...)" を追加します。||
|$fix_eol(x,y)|x 中に改行コード (CR/LF) が含まれているか検索し、見つかった場合は切りつめて y を追加します。||
|$insert(a,b,n)|文字列 b を文字列 a の n 文字目の後に挿入します。||
|$cut(a,b)|a の最初の b 文字を返します。|$cut(%title%,5)|
|$left(a,b)|a から最初の b 文字を抜き出します。|$left(%title%,5)|
|$right(a,b)|a の右から最初の b 文字を返します。|$right(%title%,5)|
|$substr(a,b,c)|文字列 a の b 文字目から c 文字目までの文字列を返します。|$substr('blah',1,2) は 'bl' を返します。|
|$pad(x,y,z), $pad_right(x,y,z)|x を文字 z で y 文字まで桁取りします。||
|$padcut(x,y), $padcut_right(x,y)|x を y 文字目まで桁取りし、長い場合は y 文字目まで切り詰めます。||
|$repeat(x,y)|x を y 回繰り返します。||

***文字列変換 [#l04f41b7]
|$abbr(x)|x の単語のそれぞれの頭文字をとった物を挿入します。|"$abbr(%album%)" はアルバム名 "Final Fantasy VI" を "FFVI" に変換します。|
|$abbr(x,y)|x が y 文字より長い場合 x の単語のそれぞれの頭文字をとった物を挿入します。それ以外の場合は x をそのまま挿入します。|$abbr(%album%,10)|
|$caps(x)|x の各単語の頭文字を大文字に変換し、頭文字以外は小文字に変換します。|"blah BLAH" -> "Blah Blah"|
|$caps2(x)|$caps とほぼ同じですが, 頭文字以外の大文字はそのままになります。|"blah BLAH" -> "Blah BLAH"|
|$lower(x)|x を小文字に変換します|$lower(%title%)|
|$upper(x)|x を大文字に変換します。|$upper(%title%)|
|$ansi(x)|x をシステムコードべージに変換してから返します。コードページに存在しない文字はすべて除去もしくは置き換えられます。ファイル名を一括変換する際、ユニコードに対応していないソフトとの互換性を確実にするのに便利です。||
|$roman(x)|数字 x を10進法表記からローマ数字に変換します。|$roman(%tracknumber%)|
|$trim(a)|a から先頭にあるもしくは連続する空白を除去します。|$trim(%comment%)|
|$tab(), $tab(n)|1つ ($tab()) または n 個 ($tab(n)) のタブ文字を追加します。プレイリストのカラムを分割するのに便利です。|$tab()|
|$replace(a,b,c)|文字列 a の中のすべての文字列 b を文字列 c で置き換えます。||

***ファイル名 [#m1f39891]
|$directory(x), $directory(x,n)|ファイルパスからディレクトリ名を抜き出します。任意に n 段階ディレクトリを登ることが出来ます。|$directory(%_path%,2)|
|$filename(x)|フルパスからファイル名を抜き出します。|$filename(%_path%)|
|$ext(x)|ファイルパス / ファイル名 から拡張子を抜き出します。|$ext(%_path%)|

***色 [#b791d5ce]
|$blend(a,b,c,d)|a and b の間の色のうち c/d の割合になっている色を1つ返します。|$blend($rgb(0,0,0),$rgb(255,255,255),%_time_elapsed%,%_time_total%)|
|$rgb(a,b,c), $rgb(a,b,c,d,e,f)|10進法の色の値をカラーコードに変換します。(上記の[[色指定>#o5d91bcc]]を参照。)||
|$transition(a,b,c)|文字列 a を色 b から c へのグラデーションで出力します。|$transition(%TITLE%,$rgb(0,0,0),$rgb(255,255,255))|

***meta [#ncaa9fdb]
|$channels()|%__channels% と同じです。||
|$codec()|%__codec% と同じです。||
|$info(x)|x という名前の tech info フィールドを返します。改行コードを切りつめません。 (%__field% は切りつめます).|"$info(bitrate)" は "%__bitrate%" と同等です。|
|$meta(x)|x という名前のメタデータフィールドの値を挿入します。|"$meta(artist)" は %artist% と複数行の値を切り詰めないことを除いて同等です。|
|$meta(x,y)|x という名前のメタデータフィールドの y 番目の値を挿入します。各行が1つの値をもった複数行の値に使います。|複数のアーティスト - $meta(artist,1), $meta(artist,2)|
|$meta_sep(x,y), $meta_sep(x,y,z)|x という名前のメタデータフィールドの複数の値を任意のセパレーターで分割してから挿入します。|"$meta_sep(artist,', ',' and ')" - それぞれ A, B, C という名前のアーティストが値に含まれていると、 "A, B and C" になります。|
|$meta_num(x)|メタデータフィールド x に存在する値の数を挿入します。||
|$meta_test(a,b,c)|()の中にメタフィールド名を入れると、そのフィールドに値が入力されていた場合、"1"を返します。|$if($meta_test(title,artist,album),A,B) とすると、タイトル・アーティスト・アルバム情報が全て入力されていた場合は "A" を表示、ひとつでも入力されていなければ、"B" を表示します。|

***変数 [#y6c74ab8]
|$put(name,text)|変数 <name> に <text> を代入し、また <text> を返します。|"$put(x,blah)" は変数 x に 'blah' を代入し 'blah' を返します。|
|$puts(name,text)|$put(name,text) と同等ですが値は返しません。||
|$get(name)|変数 <name> の値を返します。|"$puts(x,blah)$get(x)$get(x)" は 'blahblah' となります。|

-変数によりテキスト加工の途中経過を保存することが可能になり書式のサイズを削減することが出来ます。 
-変数を次の曲へ引き継がせることは出来ません。

***その他 [#cfca6d4d]
|$progress(a,b,c,d,e), $progress2(a,b,c,d,e)|プログレスバーを制作します。a :インジケーターが表示される位置 b :プログレスバーの範囲 c :プログレスバーの長さを文字数で指定 d、e : プログレスバーを構成する文字。 $progress2() は違う見た目になります。|"$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,'#','=')" は "====#===============" の様になり # が再生位置に合わせて移動します。|