fb2kの再生情報をSamurizeで表示するメモ

AMPIが使えない、foobar2000 ver.1.0以降の曲再生情報をSamurizeで表示する方法のメモ。

用意するもの

foobar2000のプラグイン、"Now Playing Simple"を利用する。

インストール手順

  1. foo_np_simple.7zをダウンロードしたら解凍し、中身のfoo_np_simple.dllを取り出す
  2. fb2kが起動しているなら終了する
  3. fb2kのインストールフォルダ¥components¥へfoo_np_simple.dllを放り込む

これでプラグインのインストールは終了。
今回はfb2k v1.1.17 / foo_np_simple.dll v1.8で試した。

Now Playing Simpleの設定

再生中のトラックの情報のうち、指定した項目を指定したファイルへ出力するプラグインです。
今回出力する情報は以下の7項目。

  • 曲名
  • アーティスト名
  • ディスク名(アルバムタイトル)
  • トラックの演奏時間
  • 再生開始からの経過時間
  • トラックの演奏時間に対する経過時間の割合(プログレスバーで使います)
  • 再生中のトラックのパスを取得し、同フォルダ内に置いたジャケット画像(folder.jpg)のパスを出力

では、順番に説明していきます。

設定ウィンドウと項目の説明

foobar2000を起動し、File > Preference > 左側メニューのTool > Now Playing Simpleと辿り設定画面を表示させます。
NowPlayingSimpleの設定画面

  1. 出力先のファイルパスの表示枠。右端(3の上)の"…"をクリックして出力先を決定します
  2. 出力ファイルの文字エンコード
  3. どのタイミングでファイルを出力するか。小ウィンドウが出るので選択します
  4. 条件を入力する場所です。予め定義されたコードを入力します
  5. 4で入力した結果が表示されます

出力先のファイルパスの指定

とりあえずきちんと出力されるか見るために、出力先を決めます。
今回はSamurizeのclient.exeがあるフォルダ内にOutputというフォルダを作り、その中にfb2k.txtというテキストファイルを出力することにします。
ファイルパスで記述すると、私の場合は C:\Program Files\Samurize\Output\fb2k.txt となります。
ダブルクォートで囲む必要はありません。

文字エンコードの選択

日本語(2バイト文字・全角文字)を扱う場合はANSIを選択します。
これ以外を選択すると文字化けが起こります。

どのタイミングで出力するか

クリックすると以下のウィンドウが表示されます。
1回選択するごとにウィンドウが隠れますが、複数選択可能です。
Eventsの中身

  • On new track – トラックを変更したタイミング
  • On Pause – 一時停止したタイミング
  • On Stop – 停止したタイミング
  • On every second – 1秒毎に

一時停止・停止したタイミングでの出力は、現在の再生状況の取得を行う際に必要になります。
今回は"On new track"にのみチェックを入れます。

出力する情報を設定する

先ほど挙げた7項目を設定ウィンドウの4番の場所に記述していきます。
記述フォーマットはtitle formatting reference (日本語訳)を参考にします。

なお、文中に表示される$char(10)は改行を、//はコメント行を示します。

曲名

//曲名
%title% $char(10)

アーティスト名

//アーティスト名
%artist% $char(10)

ディスク名(アルバムタイトル)

//ディスク
%album% $char(10)

演奏時間

//演奏時間
%_length% $char(10)

経過時間

//経過時間
%_time_elapsed% $char(10)

経過時間(パーセント表示・プログレスバー用)

$muldiv(%playback_time_seconds%, 100, %length_seconds%) $char(10)

解説:
$muldiv(a, b, c)は、a に b を掛け、それから c で割る、の意味。
つまり、経過時間(秒単位) × 100 ÷ トラック長(秒単位) = 経過時間(%) となるわけです。
最大値を100としたプログレスバーで使います。

アルバムジャケット表示

$if($directory_path(%path%)\folder.jpg,$directory_path(%path%)\folder.jpg,no-image)$char(10)

解説:
あらかじめ曲ファイルと同じフォルダに"folder"という名前でジャケット画像をJpg形式で置いておきます。
再生中の曲ファイルがあるフォルダを探し、その中にfolder.jpgがある場合はそのパス(path)を表示させます。


記述が終わったらOKでウィンドウを閉じ、Samurize側での設定を行います。
メーターの追加 > テキストファイル で出力したテキストファイルを指定。
経過時間(パーセント表示)はプログレスバーで、アルバムジャケット表示は画像で。それ以外はテキストで表示させればいいでしょう。
Samurizeでの設定例