非 mod 版 の解説はTrack Info Panel 解説です
再生している音楽ファイルの詳細な情報を表示するパネル、 Track info Panel の改造版。 従来の機能に加えて、フォントの変更、画像表示、ボタンの設置などができる。
パネル上を右クリックして "Settings" をクリックすると設定画面が表示される
パネル上を右クリックして "Mode" から選択
Track info mod では行頭にある半角スペースは無視されます。
$if(%isplaying%, Playing , Not Playing )
行頭にある半角スペースを文字として表示したい場合は、クォーテーションマークで囲みます。
test$char(10) test$char(10) ' 'test$char(10)
本来、Titleformatting では //… と行頭に書くとコメント扱いになりますが、 Track info mod においては以下の四つで構文を更新する条件を変更することができます。
// Global
global values を書く (例: $puts() など)
// Background
背景を書く (例: 後述する $imageabs() など)
// PerTrack
トラックごとに切り替わるものを書く (例: %title% など) 後述する $button() もここに書く
// PerSecond
毎秒アップデートするものを書く (例: %playback_time% など)
// Global $if($meta_test(album artist),$puts(album_is_va,1)) $puts(fontStyle,$font(Calibri,10,bold,0-255-128)) ... // Background $imageabs(,,images\bground.png,) ... // PerTrack $button(0,0,0,0,0,0,'images\play.png,images\play_hover.png','Play or Pause',) ... // PerSecond %playback_time% ...
$align(H,V)
文字の配置を指定する関数です。曲名を左のまん中に表示させたい場合は
$align(left,middle)%title%
のようにします。
$alignabs(X,Y,w,h,H,V)
$align()を高級にしたものです。 まず文字を表示可能な長方形領域を作成し、その中で文字の表示位置を指定します。 ペイントで長方形を選択するのと似たような感覚です。複雑な表示を行いたい場合は長方形達が重ならないよう気をつけましょう。
$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)'
という書式だと下図のようになります。
$font(NAME,SIZE,OPTIONS,COLOR)
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 |
OPTIONSをいくつか組み合わせて使用することもできます。一回使用すると次にまた使用するまでフォントは維持されます。 頭のほうに$puts(font1,$font(arial,9,,0-0-0))のようにしておくと後々楽かもしれません。
Hydrogenaudio Wikiのページにわかりやすい画像があります。
$imageabs(X,Y,image,options)
左右 | 上下 | 両方 | none | |
90° | 5 | 7 | 3 | 1 |
180° | 6 | 4 | 0 | 2 |
270° | 7 | 5 | 1 | 3 |
none | 4 | 6 | 2 | 0 |
回転は時計回りです。
任意の位置(X,Y)に画像を表示させます。画像の場所はfoobar2000のプロフィールフォルダ*4からの相対パスです。絶対パスを使う場合は後述の$imageabs2()を使いましょう。
以下にいくつか例を挙げます。
$imageabs(0,0,covers\%album%.png,)$imageabs(0,0,images\overlay.png,)
$if(%_isplaying%,$imageabs(0,0,images\a.jpg,),$imageabs(0,0,images\b.jpg,))
$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(resizeW,resizeH,srcX,srcY,srcW,srcH,dstX,dstY,image,options)
左右 | 上下 | 両方 | none | |
90° | 5 | 7 | 3 | 1 |
180° | 6 | 4 | 0 | 2 |
270° | 7 | 5 | 1 | 3 |
none | 4 | 6 | 2 | 0 |
$imageabs()を高級にしたものです。 画像をresizeW×resizeHにリサイズし、その中の長方形領域(srcX,srcY,srcW,srcH)を(dstX,dstY)に表示します。 拡大させたい場合はnokeepaspectをつけます。なお、アスペクト比を維持して拡大することはできません。 大雑把に言えば引数の上6つは画像の編集、下4つは$imageabs()の機能です。
以下にいくつか例を挙げます。
$imageabs2(x,y,0,0,x,y,10,20,C:\program files\foobar2000\images\abc.jpg,)
$imageabs2(300,300,225,0,75,75,5,5,D:\images\abc_500×500.jpg,)
$imageabs2(300,300,225,225,75,75,0,0,images\def_150×150.jpg,rotateflip-1 nokeepaspect)
$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)
長方形を描きます。偶奇で背景色を分ける場合などに使いましょう。 色をSYSCOL-nで指定する事も可能です。brushColor-nullで枠だけ、penColor-nullで枠無しの長方形を描くことができます。
以下に例を挙げます。
$drawrect(10,10,20,20,brushcolor-null pencolor-0-0-0)
$button(DstX,DstY,X,Y,W,H,IMAGE,HOVER IMAGE,COMMAND,OPTIONS)
ボタンを画像で表示します。
$button2(DstX,DstY,X,Y,W,H,TEXT,HOVER TEXT,COMMAND,OPTIONS)
ボタンをテキストまたは画像で表示します。
ボタンを表示します。以下に注意点をあげます。
$button(0,0,0,0,25,25,/images\pause.png,images\pause_hover.png,pause,)
$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',)
コマンドから以下のことが実行できます。
Defaultと、コンテキストメニューの Properties を実行したい場合は
Propertiesと書きます。
temporaryと、"My Best" という名前のプレイリストをアクティブにしたい場合は
'My Best'とします。 ここで名前がが他のものと被っていると思うように動作しないことがあります。 例えば、"Default" という名前のプレイリストに切り替えたい場合、COMMANDに
Defaultと書くと、Playback/Order/Default が実行されてしまいます。 この問題を解決するには、プレイリストの名前を変更する必要があります。
FILTER:name|value:name2|value2…という形で記入します。
''FILTER:source|!source!:decade|$mul($div(%date%,10),10):artist|%artist%:album|%album%:'
FILTER:name|value:name2|value2…という形で記入します。
'SORT:genre|%genre%:artist|%artist%:album|%album%'
TAG:type:tag:valueという形で記入します。
TAG:SET:rating:1%rating% の値が1になります。
$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,)
$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(text)
textはなんでもかまいません。textの横幅を返します。$if()などと共に使いましょう。
$ifgreater($calcwidth($font(,15,,)%title%),%_width%,$font(,9,,),$font(,15,,))%title%
$calcheight(text)
textはなんでもかまいません。textの高さを返します。$if()などと共に使いましょう。
$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(File path)
ファイルが存在すれば1を返し、存在しなければ何も返しません。 画像Aがあるときはそれを、ない時は画像Bを表示させるには
$if($fileexists(images\aaa.jpg),$imageabs(0,0,images\aaa.jpg,),$imageabs(0,0,images\bbb.jpg,))
のようにします。
$textcolor(n-n-n)
文字色を指定します。$rgb()や$hsl()と違い、SYSCOL-nを使用することができます。
#lineheight,n#
文字列の高さを指定します。$align()などで表示位置を指定している場合はその後で使います。効果が今ひとつピンとこない場合は適当に広い場所で$crlf()や$char(10)を使い改行させてみましょう。
#shade#
文字列の背景色を濃くします。上と同様に$align()の後で使います。