Title Formatting

Last-modified: 2010-10-13 (水) 03:17:38
Counter: ?, today: ?, yesterday: ?

現在?人閲覧中

 

Title Formatting
 ├Title Formatting 解説
 ├Title Formatting Help
 └Title Formatting Help Function


目次

 

Title Formattingとは

Title Formatting(TF)とはfoobar2000上で動作するスクリプト言語。

参考
用語辞典

foobar2000に柔軟なプレイリスト表示や設定をもたらすTitle Formattingスクリプト(Tagz)に関して。

Title Formatting 関連で質問などがあれば下部のコメント欄を利用して下さい。

TitleFormatting の情報・ファイルの入手先

Title Formatting Reference

Foobar2000:Title Formatting Reference
Hydrogenaudio Knowledgebase にある、0.9.x系用のTitle formatting リファレンスです。
Title formatting reference 日本語訳
上記を日本語に訳したものです。

海外の TitleFormatting 情報

現在利用可能な日本語がずれないTitle formattingへのリンク

Columns UI 関連

Title Formatting 投稿所

FAQ

日本語がずれる!!

FAQ: Playlist プレイリストで日本語の横幅が合わない。

前後のトラックの情報を参照することはできる?

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

(cwbowron's hooksを導入する事により、次のトラック(前は不可)の情報、およびプレイリストの総演奏時間を返す事などが可能になります。)

Playlist, Copy Command でのみ使える変数

プレイリストがらみの変数 (%_playlist_number%, %_playlist_total%, %_playlist_name%) は Playlist, Copy Command でしか機能しません。

%title%, %artist% などのメタデータフィールド名の一覧はないの?

フィールド名は使用されるファイルやタグの形式によって変わってくる上、自分で好きな名前のフィールドを作成することもできるので、そういう意味では一覧はつくることはできない。
フィールド名を調べるときはコンテキストメニューの "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"が返ってこない!

シングルクォート "'" は囲んだ範囲を文字として出力するので、
'Monkey''s Audio'はMonkey's Audioをシングルクォートで囲んだものではなく、
'Monkey'と's Audio'として扱われてしまう。
この場合

$strcmp(%__codec%,Monkey''s Audio)

とすれば、正常に機能する。

アルバムごとの合計時間はどうやって出せばいいですか?

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

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

$rand() が使えないのですが…(v0.9.5 )

v0.9.5 から $rand() の機能は削除されました。
乱数の機能を使いたい場合は、以下の解決策があります。

  1. cwbowron's hooks を導入し、$cwb_rand() を使う。
  2. $crc32() を使う。

Tips

CUEシートを利用しているときに拡張子をCUEじゃなくて参照しているファイルのものにしたい。

$ext($info(referenced_file))

を利用する。

VBRのレート表示を平均じゃなくて動的な表示にしたい。

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 などと表示したい場合は

pre>
$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)

/pre>
のようにすれば、9999.99 MB まで表示可能

演奏時間順にソートしたい

Menu -> Playlist -> Sort -> Sort by ...
ででるボックスに

昇順なら

$num(%_length_seconds%,6)

降順なら

$sub(1000000,%_length_seconds%)

のように設定する。また、foo_custom_sort*2 を使えば自分で設定したソート設定を保存してメニューコマンド化することができる。

 


*1 この方法は Tagging の Guess value from other fields からはできません
*2 foobar2000 v0.8 に同梱。