現在?人閲覧中
Track Info PanelのMOD版であるTrack Info Modのページです。
Track Info Panel
└Track Info Mod
目次
これは何?
再生している音楽ファイルの詳細な情報を表示するパネル、 Track Info Panel の改造版。
従来の機能に加えて、フォントの変更、画像表示、ボタンの設置などができる。
導入方法
※Columns UI および .NET C++ ランタイム が必要です (参考:Columns UI)
非 mod 版とは共用しないほうが無難
Preferences - Display - Columns UI から、右側の Layout タブを選択
Track Info Panel mod を挿入したいスプリッタを右クリックし、Insert Panel - Panels - Track Info mod を選択
設定画面
パネル上を右クリックして "Settings" をクリックすると設定画面が表示される
- Font (フォント)
デフォルトでのフォント - Colours (色)
- Default text
デフォルトでのテキストの色 - Background
デフォルトでの背景の色
- Default text
- Display options (ディスプレイに関する設定)
- Minimum height
高さの最小値
高さがこの値以下にならなくなる - Edge Style
パネルの周辺のスタイル
好みに合わせて設定する
- Minimum height
- Formating string
ここに構文を書き込む - Edit
メモ帳などで構文を開く - Color code
Title Formattingの "Color" の項を参照
Now Playing と Follow cursor
パネル上を右クリックして "Mode" から選択
- Now Playing
再生中の音楽トラックの情報を表示 - Follow cursor
プレイリスト上で選択した音楽トラックの情報を表示
書式
Track info mod では行頭にある半角スペースは無視されます。
- 例
$if(%isplaying%,
Playing
,
Not Playing
)
行頭にある半角スペースを文字として表示したい場合は、クォーテーションマークで囲みます。
- 例
test$char(10)
test$char(10)
' 'test$char(10)
コメント行について
本来、Title Formatting では //… と行頭に書くとコメント扱いになりますが、 Track info mod においては以下の四つで構文を更新する条件を変更することができます。
// Global
global values を書く (例: $puts() など)
// Background
背景を書く (例: 後述する $imageabs() など)
// PerTrack
トラックごとに切り替わるものを書く (例: %title% など)
後述する $button() もここに書く
// PerSecond
毎秒アップデートするものを書く (例: %playback_time% など)
- 例
$if($meta_test(album artist),$puts(album_is_va,1))
$puts(fontStyle,$font(Calibri,10,bold,0-255-128))
...
$imageabs(,,images\bground.png,)
...
$button(0,0,0,0,0,0,'images\play.png,images\play_hover.png','Play or Pause',)
...
%playback_time%
...
関数
- 以下で使われる「始点」は左上の角を基準にしています。*1
- ' n 'には非負整数を入れてください。
- []でデフォルトの値を表すことにします。デフォルトの値でいい場合は記述を省略することが可能です。
文字の配置
$align()
$align(H,V)
- H: left / center / right [left]
- V: top / middle / bottom [top]
文字の配置を指定する関数です。
曲名を左のまん中に表示させたい場合は
$align(left,middle)%title%
のようにします。
$alignabs()
$alignabs(X,Y,w,h,H,V)
- X: 横方向の始点 (長方形領域の左上隅のx座標) [0]
- Y: 縦方向の始点 (長方形領域の左上隅のy座標) [0]
- w: 横幅 [0]
- h: 高さ [0]
- H: left / center / right [left]
- V: top / middle / bottom [top]
$align()を高級にしたものです。
まず文字を表示可能な長方形領域を作成し、その中で文字の表示位置を指定します。
ペイントで長方形を選択するのと似たような感覚です。複雑な表示を行いたい場合は長方形達が重ならないよう気をつけましょう。
使用例
$alignset() & $alignrel()
$alignset()
これを使う直前までの文字表示位置の中で最も下にあるもののy座標*2を$alignrel()で文字を表示する領域の縦方向の始点Yにします。
$alignrel(H,V)
- H: left / center / right [left]
- V: top / middle / bottom [top]
$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)'
という書式だと下図のようになります。
フォント
$font()
$font(NAME,SIZE,OPTIONS,COLOR)
- NAME: フォント名
- SIZE: フォントのサイズ
- OPTIONS:
- bold: 太字
- italic: 斜体
- underline: 下線
- strikeout: 取消線
- nocleartype: クリアタイプ無効
- glow-R-G-B: 影をつける
- glowexpand-n: ぼかしを広げる [2]
- glowalpha-n: ぼかしの透過度 [2]
- glowblur-n: ぼかす
- uppercase: すべて大文字に
- lowercase: すべて小文字に
- textalpha-n: 文字の透過度
- textblur-n: 文字をぼかす
- textexpand-n: 文字を広げる
- fixedwidth-n: 文字幅を固定する
- shadow: 影をつける
- Color: R-G-BかSYSCOL-n*3
- SYSCOLの値
0 3D オブジェクト 11 非アクティブ ウィンドウの境界 22 ButtonLight 1 デスクトップ 12 アプリケーション作業域 23 InfoText 2 アクティブ タイトル バー 色1 13 選択項目 24 InfoWindow 3 非アクティブ タイトル バー 色1 14 選択項目のフォント 25 ButtonAlternateFace 4 メニュー 15 ButtonFace 26 HotTrackingColor 5 ウィンドウ 16 ButtonShadow 27 アクティブ タイトル バー 色2 6 WindowFrame 17 GrayText 28 非アクティブ タイトル バー 色2 7 メニューのフォント 18 3D オブジェクトのフォント 29 MenuHilight 8 ウィンドウのフォント 19 非アクティブ タイトル バーのフォント 30 MenuBar 9 アクティブ タイトル バーのフォント 20 ButtonHilight 10 アクティブ ウィンドウの境界 21 ButtonDkShadow
- SYSCOLの値
OPTIONSをいくつか組み合わせて使用することもできます。一回使用すると次にまた使用するまでフォントは維持されます。
頭のほうに$puts(font1,$font(arial,9,,0-0-0))のようにしておくと後々楽かもしれません。
Hydrogenaudio Wikiのページにわかりやすい画像があります。
画像
$imageabs()
$imageabs(X,Y,image,options)
- X: 画像を表示させる領域の横方向の始点 (画像左上隅のx座標) [0]
- Y: 画像を表示させる領域の縦方向の始点 (画像左上隅のy座標) [0]
- image: 画像の場所(相対パス)
- options:
- flow: 最前面に表示する
- alpha-n: 画像の透過度(0-255)
- rotateflip-n: 画像の上下左右の入れ替え、回転
- rotateflipの値:
回転は時計回りです。
左右 上下 両方 none 90° 5 7 3 1 180° 6 4 0 2 270° 7 5 1 3 none 4 6 2 0
- rotateflipの値:
任意の位置(X,Y)に画像を表示させます。
画像の場所はfoobar2000のプロフィールフォルダ*4からの相対パスです。絶対パスを使う場合は後述の$imageabs2()を使いましょう。
以下にいくつか例を挙げます。
- 画像Aの上に画像Bをかぶせる
$imageabs(0,0,covers\%album%.png,)$imageabs(0,0,images\overlay.png,)
- 再生中は画像Aを、そうでないときは画像Bを表示する
$if(%_isplaying%,$imageabs(0,0,images\a.jpg,),$imageabs(0,0,images\b.jpg,))
- alpha-nオプションを使って文字を透かしてみる
$alignabs(10,10,150,150,center,middle)$font(arial,14,bold,0-0-0)foobar2000 $imageabs(10,10,images\abc_150×150.jpg,alpha-150)
$imageabs2()
$imageabs2(resizeW,resizeH,srcX,srcY,srcW,srcH,dstX,dstY,image,options)
- resizeW: 画像の横方向のリサイズ
- resizeH: 画像の縦方向のリサイズ
- srcX: リサイズした画像を切り取る*5横方向の始点(画像上のx座標)[0]
- srcY: リサイズした画像を切り取る縦方向の始点(画像上のy座標)[0]
- srcW: 切り取る横幅 [%_width%]
- srcH: 切り取る高さ [%_height%]
- dstX: 切り取った画像を表示させる領域の横方向の始点 (画像左上隅のx座標)[0]
- dstY: 切り取った画像を表示させる領域の縦方向の始点 (画像左上隅のy座標)[0]
- image: 画像の場所(相対or絶対)
- options:
- flow: 最前面に表示する
- alpha-n: 画像の透過度(0-255)
- nokeepaspect: リサイズ時アスペクト比を維持しません
- valign-t: 画像の上寄せ*6
- valign-b: 画像の下寄せ
- halign-l: 画像の左寄せ
- halign-r: 画像の右寄せ
- rotateflip-n: 画像の上下左右の入れ替え、回転
- rotateflipの値:
回転は時計回りです。
左右 上下 両方 none 90° 5 7 3 1 180° 6 4 0 2 270° 7 5 1 3 none 4 6 2 0
共にリサイズ前の画像に適用されます。
- rotateflipの値:
$imageabs()を高級にしたものです。
画像をresizeW×resizeHにリサイズし、その中の長方形領域(srcX,srcY,srcW,srcH)を(dstX,dstY)に表示します。
拡大させたい場合はnokeepaspectをつけます。なお、アスペクト比を維持して拡大することはできません。
大雑把に言えば引数の上6つは画像の編集、下4つは$imageabs()の機能です。
以下にいくつか例を挙げます。
- 画像をx×yにリサイズし、(10,20)に表示する
$imageabs2(x,y,0,0,x,y,10,20,C:\program files\foobar2000\images\abc.jpg,)
- 500×500の画像を300×300にリサイズし、そのリサイズした画像の右上75×75を(5,5)に表示する
$imageabs2(300,300,225,0,75,75,5,5,D:\images\abc_500×500.jpg,)
- 150×150の画像を300×300にリサイズし、そのリサイズした画像の右上75×75を90°回転させ、(0,0)に表示する
$imageabs2(300,300,225,225,75,75,0,0,images\def_150×150.jpg,rotateflip-1 nokeepaspect)
長方形を描く
$drawrect()
$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)
- X: 横方向の始点 (長方形の左上隅のx座標) [0]
- Y: 縦方向の始点 (長方形の左上隅のy座標) [0]
- W: 横幅 [%_width%]
- H: 高さ [%_height%]
- brushColor-R-G-B: 長方形の色 [-0-0-0]
- penColor-R-G-B: 境界の色 [-0-0-0]
- OPTIONS:
- ALPHA-n: 透過度 (0-255)
- EXPAND-n: 指定した数値分長方形を拡張する
- BLUR-n: ぼかす
- WIDTH-n: 境界の太さ [1]
長方形を描きます。偶奇で背景色を分ける場合などに使いましょう。
色をSYSCOL-nで指定する事も可能です。
brushColor-nullで枠だけ、penColor-nullで枠無しの長方形を描くことができます。
以下に例を挙げます。
- 20×20の黒枠を作る
$drawrect(10,10,20,20,brushcolor-null pencolor-0-0-0)
ボタン - $button() & $button2()
$button(DstX,DstY,X,Y,W,H,IMAGE,HOVER IMAGE,COMMAND,OPTIONS)
ボタンを画像で表示します。
- DstX: 画像を表示する横方向の始点 [0]
- DstY: 画像を表示する縦方向の始点 [0]
- X: ボタンが起動する有効範囲のDstXからの横方向の始点 [0]
- Y: ボタンが起動する有効範囲のDstYからの縦方向の始点 [0]
- W: ボタンが起動する有効範囲の横幅 [値を指定しないとフリーズ?]
- H: ボタンが起動する有効範囲の高さ [値を指定しないとフリーズ?]
- IMAGE: 画像を相対パスか絶対パスで指定
- HOVER IMAGE: マウスを載せたときの画像を相対パスか絶対パスで指定
- COMMAND: コマンドを指定 (下記参照)
- OPTIONS: なし
$button2(DstX,DstY,X,Y,W,H,TEXT,HOVER TEXT,COMMAND,OPTIONS)
ボタンをテキストまたは画像で表示します。
- DstX: テキストを表示する横方向の始点 [0]
- DstY: テキストを表示する縦方向の始点 [0]
- X: ボタンが起動する有効範囲のDstXからの横方向の始点 [0]
- Y: ボタンが起動する有効範囲のDstYからの縦方向の始点 [0]
- W: ボタンが起動する有効範囲の横幅 [値を指定しないとフリーズ?]
- H: ボタンが起動する有効範囲の高さ [値を指定しないとフリーズ?]
- TEXT: 表示するテキスト
- HOVER TEXT: マウスを載せたときのテキスト
- COMMAND: コマンドを指定 (下記参照)
- OPTIONS: なし
ボタンを表示します。
以下に注意点をあげます。
- 画像、テキストに対して W と H の値があまりに小さいとボタンが表示されないことがある
- 画像の表示に相対パスを使う場合、最初に半角スラッシュを付ける
$button(0,0,0,0,25,25,/images\pause.png,images\pause_hover.png,pause,)
- 画像のパスに "#" の文字を使うのは避けたほうがよい
- IMAGE,HOVER IMAGE,TEXT,HOVER TEXT,COMMAND の部分はシングルクォーテーションマークで囲んだほうがよい(特に、$,%,[,] などの文字を含んでいるとき)
$button2(0,0,0,0,30,13,'$font(tahoma,8,,0-0-0)Forward','$font(tahoma,8,underline,0-0-0)Forward','Seek ahead by 10 seconds',)
COMMAND について
コマンドから以下のことが実行できます。
- メインメニュー、コンテキストメニューなどのコマンドを実行
メインメニューやコンテキストメニューのコマンドを実行できます。
例えば、メインメニューの Playback/Order/Default を実行したい場合は、COMMMAND にDefault
と、コンテキストメニューの Properties を実行したい場合はProperties
と書きます。
その他のコマンドの一覧 - プレイリスト、Columns UI の Layout の "Presets" などの切り替え
それぞれの切り替えたいものの名前を打ち込みます。
例えば、Columns UI の Layout の Preset を "temporary" という名前のものに切り替えたいときは、 COMMMAND をtemporary
と、"My Best" という名前のプレイリストをアクティブにしたい場合は'My Best'
とします。
ここで名前がが他のものと被っていると思うように動作しないことがあります。
例えば、"Default" という名前のプレイリストに切り替えたい場合、COMMANDにDefault
と書くと、Playback/Order/Default が実行されてしまいます。
この問題を解決するには、プレイリストの名前を変更する必要があります。 - コンテキストメニューから、Media Library にある曲を絞り込み検索
FILTER:name|value:name2|value2…
という形で記入します。
name
この部分には好きな名前を記入してください。
value
この部分に選別方法を Title Formatting で記述します。
!source! と書くことでプレイリストから絞込むことができます。
例''FILTER:source|!source!:decade|$mul($div(%date%,10),10):artist|%artist%:album|%album%:'
- コンテキストメニューから、プレイリスト上の曲をソート
FILTER:name|value:name2|value2…
という形で記入します。
name
この部分には好きな名前を記入してください。
value
この部分に選別方法を Title Formatting で記述します。
※ RESET , $sorted() などについては編集希望
例'SORT:genre|%genre%:artist|%artist%:album|%album%'
- タグの value の編集
TAG:type:tag:value
という形で記入します。
type
この部分に SET と書き込むことでタグを上書き、ADD でタグを追加、REMOVE でタグを削除することが出来ます。
tag
この部分にタグ名を記入します。
value
タグ付けする値を記入します。
例TAG:SET:rating:1
%rating% の値が1になります。 - PVAR…
編集希望
ボタンの設定例
- 文字で再生、一時停止などをする (Mode は Now Playing にしてください)
$button2(5,2,0,2,30,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Stop','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Stop',Stop,)
$if($and(%_isplaying%,$not(%_ispaused%)),
$button2(44,2,0,2,36,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Pause','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Pause',Pause,)
,
$button2(44,2,0,2,36,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Play','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Play',Play,)
)
$button2(95,2,0,2,30,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Prev','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Prev',Previous,)
$button2(135,2,0,2,30,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Next','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Next',Next,)
- 画像で再生、一時停止などをする (Mode は Now Playing にしてください)
http://foobar2000.xrea.jp/up/files/up534.zip
- %rating% の値を1増やす
$button2(5,2,0,0,50,21,'$alignrel(center,middle)$font(MS ゴシック,10,,)Rate ++','$alignrel(center,middle)$font(MS ゴシック,10,underline,)Rate ++','TAG:SET:rating:'$if(%rating%,$add(%rating%,1),1),)
寸法
$calcwidth()
$calcwidth(text)
textはなんでもかまいません。textの横幅を返します。$if()などと共に使いましょう。
- フォントサイズ15で%title%の横幅が%_width%を超えてしまうときはフォントサイズを9にする
$ifgreater($calcwidth($font(,15,,)%title%),%_width%,$font(,9,,),$font(,15,,))%title%
$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
- パネルのレイアウトを変更すると設定が消えてしまうので、 Formatting string のバックアップをとっておくこと
- 音楽ファイルをパネルにドラッグすると、そのファイルの情報が表示される
- 非Mod版と異なり、マウスホイールを用いても縦方向のスクロールすることができない
リンク集
- 英語版wiki
http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:0.9_Track_Info_Panel_Mod_(foo_uie_trackinfo_mod)- 解説
- 急ごしらえなぺーじ
http://www5.pf-x.net/motorhead/trackinfomod01.html- 日本語での解説
- 日本語での解説