foobar2000に柔軟なプレイリスト表示や設定をもたらすTitle Formattingスクリプト(Tagz)に関して。 Title Formatting 関連で質問などがあれば下部のコメント欄を利用して下さい。
できません。TitleFormatting の関数はあくまで1つの曲ごとに対する情報しか扱えません。動作速度の観点からこの仕様が拡張される可能性も低いでしょう。また、トラック以外に関する変数としては (%_foobar2000_version%, %_playlist_number%, %_playlist_total%, %_playlist_name%) の4つがあります。プレイリストの総演奏時間を返す変数は用意されていません。
(foo_cwb_hooksを導入する事により、次のトラック(前は不可)の情報、およびプレイリストの総演奏時間を返す事などが可能になります。)
プレイリストがらみの変数 (%_playlist_number%, %_playlist_total%, %_playlist_name%) は Playlist, Copy Command でしか機能しません。
フィールド名は使用されるファイルやタグの形式によって変わってくる上、自分で好きな名前のフィールドを作成することもできるので、そういう意味では一覧はつくることはできない。 フィールド名を調べるときはコンテキストメニューの "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) の形にできません。
シングルクォート "'" は囲んだ範囲を文字として出力するので、 'Monkey''s Audio'はMonkey's Audioをシングルクォートで囲んだものではなく、 'Monkey'と's Audio'として扱われてしまう。 この場合
$strcmp(%__codec%,Monkey''s Audio)
とすれば、正常に機能する。
アルバムごとの合計時間を取得する関数は現在ありません。また、foobar2000 の仕様上実装されることはおそらく無いでしょう。 よって、以下の2例のように手動で設定するしか方法はありません。
v0.9.5 から $rand() の機能は削除されました。 乱数の機能を使いたい場合は、以下の解決策があります。
$ext($info(referenced_file))
を利用する。
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))
になる。
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))))
一秒間隔で一文字動くだけなので、見た目はあまり良くない。
一部のファンクションは、本来とは違う特殊な動作をするものがあります。 例えば
%album artist%
は、
$if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))
の動作をします。
%_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 まで表示可能
Menu -> Playlist -> Sort -> Sort by ... ででるボックスに 昇順なら
$num(%_length_seconds%,6)
降順なら
$sub(1000000,%_length_seconds%)
のように設定する。また、foo_custom_sort を使えば自分で設定した ソート設定を保存してメニューコマンド化することができる。