cwbowron's hooks 解説

cwbowron's hooks

このコンポーネントは、いろいろな種類のTitleFormattingの関数を追加したりすることができます。

設定

Preferences>Tools>CWB Hooks から設定できます。

up364.png

※ この画像はv1.1.1のものです。

使用例 - 曲のスキップ回数を記録する
  1. Tagging>Manage Scriptsから
    Action: "Format Values From Other Fields" 
    Destination Field: SKIP_COUNT
    Formatting pattern: $if(%skip_count%,$add(%skip_count%,1),1)
    とし、適当な名前で保存します。
  2. Perform Action…で
    Tagging/Scripts/(保存した名前)
    を選択します。
  3. Nextで次の曲に移動する度に、その曲の%skip_count%の値が1増えるようになります。

関数の解説

TitleFormattingの解説は、ReferenceTitle Formatting Help などを参考にしてください。

文字列の変換、比較

$cwb_urldecode(x)

xの文字をURLデコードします。%などを含んでいるとそのままではうまく変換されないので、

$cwb_urldecode('%E3%81%82')

のように、'を入れて使用してください。ちなみに、上の例ではと表示されます。

$cwb_removethe(x)

xの単語の頭にあるaまたはtheを消します。anは消えません。

$cwb_ltrim(x,L1,L2,...)

xの単語の頭に文字Lnがあれば除去します。

$cwb_datediff(d1,d2)

yyyy-mm-ddまたはyyyy-mm-dd hh:mm:ssで表される二つの日付の日数を比較します。 24時間で一日とカウントされます。 なお、yyyy-mm-ddyyyy-mm-dd 00:00:00とみなされます。

$cwb_datediff(2006-12-30 01:00:00,2007-01-01 00:00:00)
この場合、差は一日と23時間なので1と表示されます。

$cwb_hms(n)

秒数nをhh:mm:ssの形に変換します。小数点以下は切り捨てられます。 nの値が2^31-1(2147483647、596523:14:07)を超える場合、正常に認識されません。

$cwb_hms(90.81)
01:30が返されます。

$cwb_wdhms(n)

秒数nを?wk ?d hh:mm:ssの形に変換します。

$cwb_splitnum(n,x)

数字nを三桁ずつ区切り、文字xを挿入します。 $cwb_splitnum(n)はスペースを挿入します。

$cwb_splitnum(1000000,',')
1,000,000が返されます。

プレイリストの情報

%cwb_activelist%

アクティブなプレイリストの名前を返します。

%cwb_activelist_count%

アクティブなプレイリストの総曲数を返します。

%cwb_activelist_duration%

アクティブなプレイリストの総演奏時間を、秒数で小数点二桁まで返します。

設定例
$cwb_hms(%cwb_activelist_duration%)
これにより、hh:mm:ssの形になります。

%cwb_playinglist%

再生中のプレイリストの名前を返します。

%cwb_playinglist_count%

再生中のプレイリストの総曲数を返します。

%cwb_playinglist_duration%

再生中のプレイリストの総演奏時間を、秒数で小数点二桁まで返します。

設定例
$cwb_hms(%cwb_playinglist_duration%)
これにより、hh:mm:ssの形になります。

%cwb_playing_index%

再生中のトラックが、プレイリストの何番目にあるかを返します。

%cwb_selection_count%

選択されたトラックの総曲数を返します。

%cwb_selection_duration%

選択されたトラックの総演奏時間を、秒数で小数点二桁まで返します。

キューの情報

%cwb_queueindex%

選択されたトラックが、何番目のキューに入っているかを返します。複数回入っていても一番若い数のみを返します。

%cwb_queueindexes%

選択されたトラックが、何番目のキューに入っているかを返します。複数回入っていた場合、' , 'で区切って返します。

%cwb_queuelength%

現在キューされている曲数を返します。

%cwb_queue_end_playlist%

最後にキューしたトラックのプレイリスト名を返します。

next_*

%cwb_next_title%

次のファイルの%title%の値を返します。

%cwb_next_artist%

次のファイルの%artist%の値を返します。

%cwb_next_user1%,%cwb_next_user2%

次のファイルの、任意に設定したフィールドの値を返します。 設定方法 使うには、%cwb_next_user1% とそのまま記入してください。

foobar2000 の情報

%cwb_stopaftercurrent%

Playback>Stop after current が有効ならば1、無効ならば何も返しません。$ifなどと共に使います。

%cwb_followcursor%

Playback>Playback follows Cursor が有効ならば1、無効ならば何も返しません。$ifなどと共に使います。 Playback>Cursor follows Playback と間違えないように。

%cwb_playback_order%

Playback>Order>... の値を返します。

%cwb_volume%

ボリュームの値を返します。

設定例
$if(%cwb_volume%
,
$ifequal($strchr(%cwb_volume%,'.'),2,'  ',$ifequal($strchr(%cwb_volume%,'.'),3,' ',))
$ifequal($strchr(%cwb_volume%,'.'),5,-100.0 dB,%cwb_volume% dB)
,
 Volume)
少し見やすいように改造(等幅フォントで効果を発揮します)。

%cwb_playback_state%

stop, play, pauseを返します。

設定例
$replace(%cwb_playback_state%,play,Playing,pause,Paused,stop,Stopped)
再生中にPlaying、ポーズしたときにPaused、停止したときにStoppedを返すようにします。
%_isplaying%,%_ispaused% との違い
%cwb_playback_state% は "foobar2000が曲を再生、一時停止しているかどうか" を判断しますが、 %_isplaying%,%_ispaused% は "その曲一曲が再生、一時停止されているかどうか" を判断します。 この違いは、 Columns Playlist や Single Column Playlist,Track info panel mod の Follow Cursorモードなどで重要になります。

その他

$cwb_fileexists(f)

パス名を含んだファイルの有無を調べます。$ifなどと共に使います。 絶対、相対パスの両方が使えます。

設定例
$if($cwb_fileexists($replace(%_path%,%_filename_ext%,)foobar.jpg),blah,zzz)
再生中のファイルがあるフォルダに、foobar.jpgという名のファイルがあればblahを、なければzzzを返します。

%cwb_systemdate%

Windowsのシステムの日付をyyyy-mm-ddの形で返します。

設定例
$replace(%cwb_systemdate%,'-','/')
日付をyyyy/mm/ddの形で返します。
$substr(%cwb_systemdate%,6,7)
今月は何月かを返します。

%cwb_systemdatetime%

Windowsのシステムの日付、時刻をyyyy-mm-dd hh:mm:ssの形で返します。

設定例
$replace(%cwb_systemdatetime%,%cwb_systemdate%' ',)
時刻のみをhh:mm:ssの形で返します。

$cwb_rand()

0 ~ 2^15-1(32767)までの間で乱数を返します。

設定例
$mod($cwb_rand(),10)
0 ~ 9 の間で乱数を取得します。

%cwb_created%

ファイルの作成日時をyyyy-mm-dd hh:mm:ssの形で返します。 *1

New File Tagger

Preferences>Tools>New File Tagger から設定できます。

up321.png

Replaygainの分析や、Tagging scriptsfoo_custominfoを使ってdatabase=1のような事ができます。

Masstagger に追加される Action

Stamp Current Date and Time

指定したfieldに、Windowsの時刻を 2007-01-10 16:45:22 のように入力します。

Stamp File Creation Time

指定したfieldに、ファイル作成日時を 2007-01-10 16:45:22 のように入力します。

Tagger Window

再生中の曲のタグをチェックボックスによって編集できます。 設定は右クリック→Options から。

実装予定のない機能

作者によると、foobar2000の機能上、実装不可能なものがあるようです。これらの機能は期待しないほうがいいでしょう。 http://wiki.bowron.us/index.php/Foobar2000:Hooksより。(07/02/10 現在)


*1 New File Tageerで %cwb_systemdatetime% を使うことにより、ファイルにいちいちアクセスしないで似たような情報を取得できるようになったため、本家解説にはこの関数は現在記載されていない。

Last-modified: 2016-02-03 (水) 23:00:00 (928d)