[[foobar2000]]に柔軟なプレイリスト表示や設定をもたらすTitle Formattingスクリプト(Tagz)に関して。
Title Formatting 関連で質問などがあれば下部のコメント欄を利用して下さい。

#contents

**TitleFormatting の情報・ファイルの入手先 [#aa6b9f69]

***Title Formatting Reference[#k25e6f8a]

:[[Foobar2000:Title Formatting Reference:http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Titleformat_Reference]]|Hydrogenaudio Knowledgebase にある、0.9.x系用のTitle formatting リファレンスです。
:[[Title formatting reference 日本語訳:http://tnetsixenon.xrea.jp/title_formatting.html]] |上記を日本語に訳したものです。

***海外の TitleFormatting 情報 [#pb28c93f]
-[[公式フォーラム内Title Formattingスレ:http://www.hydrogenaudio.org/forums/index.php?showtopic=4899]]
-[[foobar2000 formatting:http://pelit.koillismaa.fi/fb2k/]] (ユーザー作成のTitle Formattingギャラリー)

***現在利用可能な日本語がずれないTitle formattingへのリンク [#df2217c0]
-http://www.geocities.co.jp/Milano-Cat/2067/titleformat.html
-http://www004.upp.so-net.ne.jp/makyon/foobar/
-[[chloe.zive.netの遺産:http://foobar2000.xrea.jp/tformat/chloe.html]]

***Columns UI 関連 [#m6b7c823]
-Columns UI formatting strings スレ:http://www.hydrogenaudio.org/forums/index.php?showtopic=22306
-%%フォーマット投稿・配布サイト%%:http://foobar.nub4life.net/columns/ (site is closed!)

***Title Formatting 投稿所 [#d76736d4]
-[[投稿所 跡地:http://foobar2000.xrea.jp/tformat/]]

**FAQ [#ked1ff5d]

***日本語がずれる!! [#qec00043]
[[FAQ: Playlist で日本語の横幅が合いません。>FAQ#a2995d90]]

***前後のトラックの情報を参照することはできる? [#na7c9551]
できません。TitleFormatting の関数はあくまで1つの曲ごとに対する情報しか扱えません。動作速度の観点からこの仕様が拡張される可能性も低いでしょう。また、トラック以外に関する変数としては (%_foobar2000_version%, %_playlist_number%, %_playlist_total%, %_playlist_name%) の4つがあります。プレイリストの総演奏時間を返す変数は用意されていません。

([[foo_cwb_hooks>General#a7ad64c0]]を導入する事により、次のトラック(前は不可)の情報、およびプレイリストの総演奏時間を返す事などが可能になります。)
***Playlist, Copy Command でのみ使える変数 [#j940dd14]
プレイリストがらみの変数 (%_playlist_number%, %_playlist_total%, %_playlist_name%) は Playlist, Copy Command でしか機能しません。

***%title%, %artist% などのメタデータフィールド名の一覧はないの? [#lf725e06]
フィールド名は使用されるファイルやタグの形式によって変わってくる上、自分で好きな名前のフィールドを作成することもできるので、そういう意味では一覧はつくることはできない。
フィールド名を調べるときはコンテキストメニューの "Properties..." や "Show file info" で表示されるものをそのまま利用すればよい。
その際、metadata (~ meta fields) の欄に表示されるものは (%fieldname% もしくは $meta(fieldname)) の形式で利用する。
:例|
 %artist% %title% $meta(artist) など

また Technical info の欄に表示されるものはファイルそのものに由来する情報で、 (%__fieldname% もしくは $info(fieldname)) の形式で利用する。
:例|
 %__replaygain_track_gain% %__samplerate% $info(samplerate) など
:注意|
 %__replaygain_album_gain%
 %__replaygain_album_peak%
 %__replaygain_track_gain%
 %__replaygain_track_peak%
これらは $info(fieldname) の形にできません。

***$strcmp(%__codec%,'Monkey''s Audio') で"1"が返ってこない! [#acb039b1]
シングルクォート "'" は囲んだ範囲を文字として出力するので、
'Monkey''s Audio'はMonkey's Audioをシングルクォートで囲んだものではなく、
'Monkey'と's Audio'として扱われてしまう。
この場合
 $strcmp(%__codec%,Monkey''s Audio)
とすれば、正常に機能する。

***アルバムごとの合計時間はどうやって出せばいいですか? [#ac632bcf]
アルバムごとの合計時間を取得する関数は現在ありません。また、foobar2000 の仕様上実装されることはおそらく無いでしょう。
よって、以下の2例のように手動で設定するしか方法はありません。

-正攻法
++アルバムの合計時間を[[Properties>Properties 解説]]などを使って手動でタグにコピー&ペーストする
--簡単だが、面倒。
-[[foo_custominfo>foo_custominfo 解説]]を使った方法((この方法は Tagging の [[Guess value from other fields>Tagging#bfecc1a1]] からはできません))
++[[foo_custominfo>foo_custominfo 解説]] と[[cwbowron's hooks>cwbowron's hooks 解説]] を導入
++foo_custominfo の方で、Field name を合計時間を取得するフィールド名、 Value を "$cwb_hms(%cwb_selection_duration%)" ("は不要)にした Tag item を作成
++合計時間を取得する一アルバム分を選択して、その Tag item を Context Menu などから実行する
--正攻法に比べて手間は少し省けるが、設定が少し面倒な上に、情報をタグに書き込まないために、ファイルを移動させた場合などにデータが消滅する。

***$rand() が使えないのですが…(v0.9.5 ~) [#x3cddbc1]
v0.9.5 から $rand() の機能は削除されました。
乱数の機能を使いたい場合は、以下の解決策があります。
+[[cwb_hooks>cwbowron's hooks 解説]] を導入し、[[$cwb_rand()>cwbowron's hooks 解説#ga674e64]] を使う。
+$crc32() を使う。

**Tips [#o7efe2d7]

***CUEシートを利用しているときに拡張子をCUEじゃなくて参照しているファイルのものにしたい。 [#kd37b20f]
 $ext($info(referenced_file))
を利用する。

***VBRのレート表示を平均じゃなくて動的な表示にしたい。 [#w893d3f6]
Preferences -> Display の Show dynamic info ~ と
Preferences -> Playback -> Input -> Standard inputs - VBR bitrate display のReal-time bitrate display ~
のチェックをオンにしてから、
 %bitrate%
を利用する。
ちなみに、%bitrate% の意味は
 $if2($info(bitrate_dynamic),$info(bitrate))
になる。

***タスクバーの文字をスクロールさせたい [#w41c4d15]
Preference > Display > Title formating > Main window title
 $puts(space_num,10)
 
 $puts(string,[ # %tracknumber% -][ $if2(%title%,$filename(%_path%))][ / %album%][ / %artist%]$repeat(' ',$get(space_num)))
 
 $right($get(string),$sub($len2($get(string)),$mod(%_time_elapsed_seconds%,$len2($get(string)))))
 $left($get(string),$mod(%_time_elapsed_seconds%,$len2($get(string))))
一秒間隔で一文字動くだけなので、見た目はあまり良くない。

***特殊なファンクション [#lacf5f7e]
一部のファンクションは、本来とは違う特殊な動作をするものがあります。
例えば
 %album artist%
は、
 $if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))
の動作をします。

***ファイルサイズを表示したい [#n21ccdba]
 %_filesize%
を利用する。~KB,~MB などと表示したい場合は
 $if($greater(%_filesize%,1048576),
 $num($left($num($muldiv(%_filesize%,100,1048576),6),4),1)
 .$right($muldiv(%_filesize%,100,1048576),2) MB,
 $num($left($num($muldiv(%_filesize%,100,1024),6),4),1)
 .$right($muldiv(%_filesize%,100,1024),2) KB)
のようにすれば、9999.99 MB まで表示可能

***演奏時間順にソートしたい [#j11e03be]
Menu -> Playlist -> Sort -> Sort by ...
ででるボックスに
昇順なら
 $num(%_length_seconds%,6)
降順なら
 $sub(1000000,%_length_seconds%)
のように設定する。また、[[foo_custom_sort>General#hf5d8199]] を使えば自分で設定した
ソート設定を保存してメニューコマンド化することができる。