Track info mod 解説

非 mod 版 の解説はTrack Info Panel 解説です


これ何?

再生している音楽ファイルの詳細な情報を表示するパネル、 Track info Panel の改造版。 従来の機能に加えて、フォントの変更、画像表示、ボタンの設置などができる。

導入方法

  1. Preferences - Display - Columns UI から、右側の Layout タブを選択
  2. Track Info Panel mod を挿入したいスプリッタを右クリックし、Insert Panel - Panels - Track Info mod を選択

設定画面

パネル上を右クリックして "Settings" をクリックすると設定画面が表示される

Now Playing と Follow cursor

パネル上を右クリックして "Mode" から選択

書式

Track info mod では行頭にある半角スペースは無視されます。

行頭にある半角スペースを文字として表示したい場合は、クォーテーションマークで囲みます。

コメント行について

本来、Titleformatting では //… と行頭に書くとコメント扱いになりますが、 Track info mod においては以下の四つで構文を更新する条件を変更することができます。

// Global

global values を書く (例: $puts() など)

// Background

背景を書く (例: 後述する $imageabs() など)

// PerTrack

トラックごとに切り替わるものを書く (例: %title% など) 後述する $button() もここに書く

// PerSecond

毎秒アップデートするものを書く (例: %playback_time% など)

関数

文字の配置

$align()

$align(H,V)

文字の配置を指定する関数です。曲名を左のまん中に表示させたい場合は

$align(left,middle)%title%

のようにします。

$alignabs()

$alignabs(X,Y,w,h,H,V)

$align()を高級にしたものです。 まず文字を表示可能な長方形領域を作成し、その中で文字の表示位置を指定します。 ペイントで長方形を選択するのと似たような感覚です。複雑な表示を行いたい場合は長方形達が重ならないよう気をつけましょう。

up312.png

$alignset() & $alignrel()

$alignset()

これを使う直前までの文字表示位置の中で最も下にあるもののy座標*2を$alignrel()で文字を表示する領域の縦方向の始点Yにします。

$alignrel(H,V)

$alignset()で定めた始点(0,Y)から%_width%×(%_height%-Y)の長方形領域を作成し、その中で文字の表示位置を指定します。

例えば

$align(right,middle)$font(,,bold,)'$align(right,middle)'
$alignabs(75,10,250,125,right,top)$font(,,italic,)'$alignabs(75,10,250,125,right,top)'
$alignset()
$alignrel(left,middle)$font(,,,)'$alignrel(left,middle)'

という書式だと下図のようになります。

up313.png

フォント

$font()

$font(NAME,SIZE,OPTIONS,COLOR)

OPTIONSをいくつか組み合わせて使用することもできます。一回使用すると次にまた使用するまでフォントは維持されます。 頭のほうに$puts(font1,$font(arial,9,,0-0-0))のようにしておくと後々楽かもしれません。

Hydrogenaudio Wikiのページにわかりやすい画像があります。

画像

$imageabs()

$imageabs(X,Y,image,options)

任意の位置(X,Y)に画像を表示させます。画像の場所はfoobar2000のプロフィールフォルダ*4からの相対パスです。絶対パスを使う場合は後述の$imageabs2()を使いましょう。

以下にいくつか例を挙げます。

$imageabs2()

$imageabs2(resizeW,resizeH,srcX,srcY,srcW,srcH,dstX,dstY,image,options)

$imageabs()を高級にしたものです。 画像をresizeW×resizeHにリサイズし、その中の長方形領域(srcX,srcY,srcW,srcH)を(dstX,dstY)に表示します。 拡大させたい場合はnokeepaspectをつけます。なお、アスペクト比を維持して拡大することはできません。 大雑把に言えば引数の上6つは画像の編集、下4つは$imageabs()の機能です。

以下にいくつか例を挙げます。

長方形を描く

$drawrect()

$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)

長方形を描きます。偶奇で背景色を分ける場合などに使いましょう。 色をSYSCOL-nで指定する事も可能です。brushColor-nullで枠だけ、penColor-nullで枠無しの長方形を描くことができます。

以下に例を挙げます。

ボタン - $button() & $button2()

$button(DstX,DstY,X,Y,W,H,IMAGE,HOVER IMAGE,COMMAND,OPTIONS)

ボタンを画像で表示します。

$button2(DstX,DstY,X,Y,W,H,TEXT,HOVER TEXT,COMMAND,OPTIONS)

ボタンをテキストまたは画像で表示します。

ボタンを表示します。以下に注意点をあげます。

COMMAND について

コマンドから以下のことが実行できます。

  1. メインメニュー、コンテキストメニューなどのコマンドを実行
    • メインメニューやコンテキストメニューのコマンドを実行できます。 例えば、メインメニューの Playback/Order/Default を実行したい場合は、COMMMAND に
      Default
      と、コンテキストメニューの Properties を実行したい場合は
      Properties
      と書きます。
    • その他のコマンドの一覧
  2. プレイリスト、Columns UI の Layout の "Presets" などの切り替え
    • それぞれの切り替えたいものの名前を打ち込みます。 例えば、Columns UI の Layout の Preset を "temporary" という名前のものに切り替えたいときは、 COMMMAND を
      temporary
      と、"My Best" という名前のプレイリストをアクティブにしたい場合は
      'My Best'
      とします。 ここで名前がが他のものと被っていると思うように動作しないことがあります。 例えば、"Default" という名前のプレイリストに切り替えたい場合、COMMANDに
      Default
      と書くと、Playback/Order/Default が実行されてしまいます。 この問題を解決するには、プレイリストの名前を変更する必要があります。
  3. コンテキストメニューから、Media Library にある曲を絞り込み検索
    FILTER:name|value:name2|value2…
    という形で記入します。
    • name
      • この部分には好きな名前を記入してください。
    • value
    • !source! と書くことでプレイリストから絞込むことができます。
      • ''FILTER:source|!source!:decade|$mul($div(%date%,10),10):artist|%artist%:album|%album%:'
  4. コンテキストメニューから、プレイリスト上の曲をソート
    FILTER:name|value:name2|value2…
    という形で記入します。
    • name
      • この部分には好きな名前を記入してください。
    • value
    • RESET , $sorted() などについては編集希望
      • 'SORT:genre|%genre%:artist|%artist%:album|%album%'
  5. タグの value の編集
    TAG:type:tag:value
    という形で記入します。
    • type
      • この部分に SET と書き込むことでタグを上書き、ADD でタグを追加、REMOVE でタグを削除することが出来ます。
    • tag
      • この部分にタグ名を記入します。
    • value
      • タグ付けする値を記入します。
    • TAG:SET:rating:1
      %rating% の値が1になります。
  6. PVAR…
    • 編集希望

ボタンの設定例

寸法

$calcwidth()

$calcwidth(text)

textはなんでもかまいません。textの横幅を返します。$if()などと共に使いましょう。

$calcheight()

$calcheight(text)

textはなんでもかまいません。textの高さを返します。$if()などと共に使いましょう。

$pad()

$pad(x,y)

左右をx、上下をyだけ詰めます。$align(), $alignrel(), $drawrect()に影響します。 例えば

$pad(a,b)
$align(left,top)

$alignabs(a,b,$sub(%_width%,2*a),$sub(%_height%,2*b),left,top)

と同値です。

$fileexists()

$fileexists(File path)

ファイルが存在すれば1を返し、存在しなければ何も返しません。 画像Aがあるときはそれを、ない時は画像Bを表示させるには

$if($fileexists(images\aaa.jpg),$imageabs(0,0,images\aaa.jpg,),$imageabs(0,0,images\bbb.jpg,))

のようにします。

$textcolor()

$textcolor(n-n-n)

文字色を指定します。$rgb()や$hsl()と違い、SYSCOL-nを使用することができます。

##

#lineheight,n#

文字列の高さを指定します。$align()などで表示位置を指定している場合はその後で使います。効果が今ひとつピンとこない場合は適当に広い場所で$crlf()や$char(10)を使い改行させてみましょう。

#shade#

文字列の背景色を濃くします。上と同様に$align()の後で使います。

Tips

リンク集


*1 座標系はそこを原点として右方向にx、下方向にy。位置を指定する引数には負の値が使える。
*2 厳密にはその次の行左上隅のy座標
*3 msstyleの色をとってくる
*4 User Profile Supportが有効になっていればC:\Documents and Settings\ユーザー名\Application Data\foobar2000\, それ以外はfoobar2000本体のあるディレクトリ
*5 クロップする
*6 アスペクト比を維持したリサイズで効果を発揮します

Last-modified: 2016-04-05 (火) 00:59:32