今回は,曲の情報を表示するためのTrackinfoの設定について説明します.
Trackinfoでは,foobar独自のTitle Formattingという言語?と,Trackinfo独自の命令で記述することで様々な事が可能です.
Title Formattingの命令についてはこちらがよくまとまっています.

私が使用している設定は以下です.
アルバムアートは再生中のファイルと同じフォルダ内のfolderというファイルを表示します.
単一フォルダで管理されている場合は,赤字の部分を適宜変更して下さい.
反転透化ようの画像はこちらを使用し,置く場所によって青字の部分を変更して下さい.
反転透化用画像は背景色がR-G-B=23-25-28用にできていますので背景色を変えたい場合は,Paint.NETなどで作成して下さい.
アルバムアートがない場合は緑字の画像が表示されるようになっています.

+++++++++++++++++++++++++++++++++++ここから++++++++++++++++++++++++++++++++++++
/ Background

// PerTrack
//***************ジャケット表示***************
//画像のサイズ
$puts(aas,200)
//左端X
$puts(aapx,$sub($div(%_width%,2),$div($get(aas),2)))
//左端Y
$puts(aapy,8)
//反転画像のY
$puts(aaspy,$add($get(aapy),$get(aas),1))
//-----フォントの設定-----
$puts(font1,MaruGoR-AA)
$puts(font2,MaruGoR-AA)
$puts(font_color1,222-222-222)
$puts(font_color2,80-140-170)

$if3(
$if($fileexists($replace(%path%,%filename_ext%,)folder.*),
$imageabs2(
$get(aas),$get(aas),,,,,$get(aapx),$get(aaspy),$replace(%path%,%filename_ext%,)folder.*,valign-t rotateflip-6
)
$imageabs2(
$get(aas),$get(aas),,,,,$get(aapx),$get(aapy) ,$replace(%path%,%filename_ext%,)folder.*,valign-b
)
)
,
$imageabs2($get(aas),$get(aas),,,,,$get(aapx),$get(aaspy),C:\Program Files\foobar2000\image\no image.png,valign-t rotateflip-6)
$imageabs2($get(aas),$get(aas),,,,,$get(aapx),$get(aapy) ,C:\Program Files\foobar2000\image\no image.png,valign-b)
)
$imageabs2($get(aas),$get(aas),,,,,$get(aapx),$get(aaspy),C:\Program Files\foobar2000\image\mask.png,valign-t)
//***************情報表示***************
//-----define-----
$puts(font_size,14)
//テキストの終わり
$puts(tixe,$sub(%_width%,))
//テキストの高さ
$puts(th,$calcheight($font($get(font1),$get(font_size),,)text))
$puts(th_1,$add($get(aaspy),14))
$puts(th_2,$add($get(th_1),$mul($get(th),2)))
$puts(th_3,$add($get(th_1),$mul($get(th),4)))
$puts(th_4,$mul($get(th),2))
$puts(th_5,$add($get(th_1),$mul($get(th),4),$calcheight($font($get(font2),8,,)jT)))

//-----Artist,Title-----
$font($get(font1),$get(font_size),bold,$get(font_color1))
$if(%_trackinfo_notrack%,
//停止中
$alignabs(,$get(th_1),$get(tixe),$get(th),center,top)No track
,
//再生中
$ifgreater($calcwidth(%title%),$get(tixe),
$alignabs(,$get(th_1),$get(tixe),$get(th),center,top)
$if3(
$if($greater($calcwidth($left(%title%,1)'...'),$get(tixe)),'...'),
$if($greater($calcwidth($left(%title%,2)'...'),$get(tixe)),$left(%title%,1)'...'),
$if($greater($calcwidth($left(%title%,3)'...'),$get(tixe)),$left(%title%,2)'...'),
$if($greater($calcwidth($left(%title%,4)'...'),$get(tixe)),$left(%title%,3)'...'),
$if($greater($calcwidth($left(%title%,5)'...'),$get(tixe)),$left(%title%,4)'...'),
$if($greater($calcwidth($left(%title%,6)'...'),$get(tixe)),$left(%title%,5)'...'),
$if($greater($calcwidth($left(%title%,7)'...'),$get(tixe)),$left(%title%,6)'...'),
$if($greater($calcwidth($left(%title%,8)'...'),$get(tixe)),$left(%title%,7)'...'),
$if($greater($calcwidth($left(%title%,9)'...'),$get(tixe)),$left(%title%,8)'...'),
$if($greater($calcwidth($left(%title%,10)'...'),$get(tixe)),$left(%title%,9)'...'),
$if($greater($calcwidth($left(%title%,11)'...'),$get(tixe)),$left(%title%,10)'...'),
$if($greater($calcwidth($left(%title%,12)'...'),$get(tixe)),$left(%title%,11)'...'),
$if($greater($calcwidth($left(%title%,13)'...'),$get(tixe)),$left(%title%,12)'...'),
$if($greater($calcwidth($left(%title%,14)'...'),$get(tixe)),$left(%title%,13)'...'),
$if($greater($calcwidth($left(%title%,15)'...'),$get(tixe)),$left(%title%,14)'...'),
$if($greater($calcwidth($left(%title%,16)'...'),$get(tixe)),$left(%title%,15)'...'),
$if($greater($calcwidth($left(%title%,17)'...'),$get(tixe)),$left(%title%,16)'...'),
$if($greater($calcwidth($left(%title%,18)'...'),$get(tixe)),$left(%title%,17)'...'),
$if($greater($calcwidth($left(%title%,19)'...'),$get(tixe)),$left(%title%,18)'...'),
$if($greater($calcwidth($left(%title%,20)'...'),$get(tixe)),$left(%title%,19)'...'),
$if($greater($calcwidth($left(%title%,21)'...'),$get(tixe)),$left(%title%,20)'...'),
$if($greater($calcwidth($left(%title%,22)'...'),$get(tixe)),$left(%title%,21)'...'),
$if($greater($calcwidth($left(%title%,23)'...'),$get(tixe)),$left(%title%,22)'...'),
$if($greater($calcwidth($left(%title%,24)'...'),$get(tixe)),$left(%title%,23)'...'),
$if($greater($calcwidth($left(%title%,25)'...'),$get(tixe)),$left(%title%,24)'...'),
$if($greater($calcwidth($left(%title%,26)'...'),$get(tixe)),$left(%title%,25)'...'),
$if($greater($calcwidth($left(%title%,27)'...'),$get(tixe)),$left(%title%,26)'...'),
$if($greater($calcwidth($left(%title%,28)'...'),$get(tixe)),$left(%title%,27)'...'),
$if($greater($calcwidth($left(%title%,29)'...'),$get(tixe)),$left(%title%,28)'...'),
$if($greater($calcwidth($left(%title%,30)'...'),$get(tixe)),$left(%title%,29)'...'),
$if($greater($calcwidth($left(%title%,31)'...'),$get(tixe)),$left(%title%,30)'...'),
$if($greater($calcwidth($left(%title%,32)'...'),$get(tixe)),$left(%title%,31)'...'),
$if($greater($calcwidth($left(%title%,33)'...'),$get(tixe)),$left(%title%,32)'...'),
$if($greater($calcwidth($left(%title%,34)'...'),$get(tixe)),$left(%title%,33)'...'),
$if($greater($calcwidth($left(%title%,35)'...'),$get(tixe)),$left(%title%,34)'...'),
$if($greater($calcwidth($left(%title%,36)'...'),$get(tixe)),$left(%title%,35)'...'),
$if($greater($calcwidth($left(%title%,37)'...'),$get(tixe)),$left(%title%,36)'...'),
$if($greater($calcwidth($left(%title%,38)'...'),$get(tixe)),$left(%title%,37)'...'),
$if($greater($calcwidth($left(%title%,39)'...'),$get(tixe)),$left(%title%,38)'...'),
$if($greater($calcwidth($left(%title%,40)'...'),$get(tixe)),$left(%title%,39)'...'),
),
$alignabs(,$get(th_1),$get(tixe),$get(th),center,top)%title%
)
$ifgreater($calcwidth(%artist%),$get(tixe)
,
$alignabs(,$get(th_2),$get(tixe),$get(th),center,top)
$if3(
$if($greater($calcwidth($left(%artist%,1)'...'),$get(tixe)),'...'),
$if($greater($calcwidth($left(%artist%,2)'...'),$get(tixe)),$left(%artist%,1)'...'),
$if($greater($calcwidth($left(%artist%,3)'...'),$get(tixe)),$left(%artist%,2)'...'),
$if($greater($calcwidth($left(%artist%,4)'...'),$get(tixe)),$left(%artist%,3)'...'),
$if($greater($calcwidth($left(%artist%,5)'...'),$get(tixe)),$left(%artist%,4)'...'),
$if($greater($calcwidth($left(%artist%,6)'...'),$get(tixe)),$left(%artist%,5)'...'),
$if($greater($calcwidth($left(%artist%,7)'...'),$get(tixe)),$left(%artist%,6)'...'),
$if($greater($calcwidth($left(%artist%,8)'...'),$get(tixe)),$left(%artist%,7)'...'),
$if($greater($calcwidth($left(%artist%,9)'...'),$get(tixe)),$left(%artist%,8)'...'),
$if($greater($calcwidth($left(%artist%,10)'...'),$get(tixe)),$left(%artist%,9)'...'),
$if($greater($calcwidth($left(%artist%,11)'...'),$get(tixe)),$left(%artist%,10)'...'),
$if($greater($calcwidth($left(%artist%,12)'...'),$get(tixe)),$left(%artist%,11)'...'),
$if($greater($calcwidth($left(%artist%,13)'...'),$get(tixe)),$left(%artist%,12)'...'),
$if($greater($calcwidth($left(%artist%,14)'...'),$get(tixe)),$left(%artist%,13)'...'),
$if($greater($calcwidth($left(%artist%,15)'...'),$get(tixe)),$left(%artist%,14)'...'),
$if($greater($calcwidth($left(%artist%,16)'...'),$get(tixe)),$left(%artist%,15)'...'),
$if($greater($calcwidth($left(%artist%,17)'...'),$get(tixe)),$left(%artist%,16)'...'),
$if($greater($calcwidth($left(%artist%,18)'...'),$get(tixe)),$left(%artist%,17)'...'),
$if($greater($calcwidth($left(%artist%,19)'...'),$get(tixe)),$left(%artist%,18)'...'),
$if($greater($calcwidth($left(%artist%,20)'...'),$get(tixe)),$left(%artist%,19)'...'),
$if($greater($calcwidth($left(%artist%,21)'...'),$get(tixe)),$left(%artist%,20)'...'),
$if($greater($calcwidth($left(%artist%,22)'...'),$get(tixe)),$left(%artist%,21)'...'),
$if($greater($calcwidth($left(%artist%,23)'...'),$get(tixe)),$left(%artist%,22)'...'),
$if($greater($calcwidth($left(%artist%,24)'...'),$get(tixe)),$left(%artist%,23)'...'),
$if($greater($calcwidth($left(%artist%,25)'...'),$get(tixe)),$left(%artist%,24)'...'),
$if($greater($calcwidth($left(%artist%,26)'...'),$get(tixe)),$left(%artist%,25)'...'),
$if($greater($calcwidth($left(%artist%,27)'...'),$get(tixe)),$left(%artist%,26)'...'),
$if($greater($calcwidth($left(%artist%,28)'...'),$get(tixe)),$left(%artist%,27)'...'),
$if($greater($calcwidth($left(%artist%,29)'...'),$get(tixe)),$left(%artist%,28)'...'),
$if($greater($calcwidth($left(%artist%,30)'...'),$get(tixe)),$left(%artist%,29)'...'),
$if($greater($calcwidth($left(%artist%,31)'...'),$get(tixe)),$left(%artist%,30)'...'),
$if($greater($calcwidth($left(%artist%,32)'...'),$get(tixe)),$left(%artist%,31)'...'),
$if($greater($calcwidth($left(%artist%,33)'...'),$get(tixe)),$left(%artist%,32)'...'),
$if($greater($calcwidth($left(%artist%,34)'...'),$get(tixe)),$left(%artist%,33)'...'),
$if($greater($calcwidth($left(%artist%,35)'...'),$get(tixe)),$left(%artist%,34)'...'),
$if($greater($calcwidth($left(%artist%,36)'...'),$get(tixe)),$left(%artist%,35)'...'),
$if($greater($calcwidth($left(%artist%,37)'...'),$get(tixe)),$left(%artist%,36)'...'),
$if($greater($calcwidth($left(%artist%,38)'...'),$get(tixe)),$left(%artist%,37)'...'),
$if($greater($calcwidth($left(%artist%,39)'...'),$get(tixe)),$left(%artist%,38)'...'),
$if($greater($calcwidth($left(%artist%,40)'...'),$get(tixe)),$left(%artist%,39)'...'),
)
,
$alignabs(,$get(th_2),$get(tixe),$get(th),center,top)%artist%
)
)
//-----セパレータ-----
$drawrect(15,$get(th_3),$sub($get(tixe),30),1,
brushcolor-255-255-255 penColor-255-255-255 ALPHA-120)

//-----next track-----
$font($get(font2),7,,$get(font_color2))
$alignabs(0,$sub($get(th_3),$calcheight($font(,7,,)jT),2),
$sub(%_width%,15),$calcheight($font($get(font2),7,,$get(font_color2))jT),right,top)'NEXT:'[%cwb_next_title%]
//-----再生情報-----
$font($get(font2),8,,)
$puts(inf11,15)
$puts(inf21,$add($div(%_width%,2),$calcwidth('W')))
$puts(inf12,$sub($div(%_width%,2),15,$calcwidth('W')))
$puts(inf22,$sub($div(%_width%,2),15,$calcwidth('W')))

$alignabs($get(inf11),$get(th_5),$get(inf12),%_height%,left,top)
'Date'$char(10)$char(10)'Codec'$char(10)$char(10)'Profile'$char(10)$char(10)'Album'
$alignabs($get(inf21),$get(th_5),$get(inf22),%_height%,left,top)
'Last Played'$char(10)$char(10)'Playback'$char(10)$char(10)'Bitrate'
$if(%_trackinfo_notrack%,,
$alignabs($get(inf11),$get(th_5),$get(inf12),%_height%,right,top)
$ifequal(%date%,,'-',%date%)$char(10)$char(10)$codec()$char(10)$char(10)$info(codec_profile)
$alignabs($get(inf21),$get(th_5),$get(inf22),%_height%,right,top)
$cut(%LAST_PLAYED_CD%,10)$char(10)$char(10)%PLAY_COUNT_CD%' times'
$alignabs($add($get(inf11),$calcwidth('Profile')),$get(th_5),
$sub($add($get(inf12),$get(inf22),$mul($calcwidth('W'),2)),$calcwidth('Profile')),%_height%,right,top)
' '$char(10)$char(10)$char(10)$char(10)$char(10)$char(10)%album%
)
//-----セパレータ-----
$drawrect(15,$add($get(th_5),$mul($calcheight('jT'),8)),$sub($get(tixe),30),1,
brushcolor-255-255-255 penColor-255-255-255 ALPHA-120)

//-----ボタン-----
$puts(bpy,$add($get(th_5),$mul($calcheight('jT'),9)))
$puts(cent,$div(%_width%,2))
$puts(bsx,22)
$puts(bsy,21)
$puts(imagePath,'C:\Program Files\foobar2000\image')

$button($sub($get(cent),$mul($get(bsx),3),6),$get(bpy),0,0,22,21,
$get(imagePath)'\stop.png',$get(imagePath)'\active-stop.png',Stop,)
$if($and(%_isplaying%,$not(%_ispaused%)),
$button($sub($get(cent),$mul($get(bsx),2),4),$get(bpy),0,0,22,21,
$get(imagePath)'\pause.png',$get(imagePath)'\active-pause.png',Pause,)
,
$button($sub($get(cent),$mul($get(bsx),2),4),$get(bpy),0,0,22,21,
$get(imagePath)'\play.png',$get(imagePath)'\active-play.png',Play,)
)
$button($sub($get(cent),$get(bsx),2),$get(bpy),0,0,22,21,
$get(imagePath)'\prev.png',$get(imagePath)'\active-prev.png',Previous,)
$button($add($get(cent),2),$get(bpy),0,0,22,21,
$get(imagePath)'\next.png',$get(imagePath)'\active-next.png',Next,)
$button($add($get(cent),$mul($get(bsx),2),6),$get(bpy),0,0,22,21,
$get(imagePath)'\load.png',$get(imagePath)'\active-load.png',Refresh All Queries,)
$button($add($get(cent),$get(bsx),4),$get(bpy),0,0,22,21,
$get(imagePath)'\random.png',$get(imagePath)'\random.png',cover,)
//*********************************************************************************************************************
// PerSecond
//*********************************************************************************************************************

//-----フォントの設定-----
$puts(font1,MaruGoR-AA)
$puts(font2,MaruGoR-AA)
$puts(font_color2,80-140-170)
$font($get(font2),8,,$get(font_color2))
//-----ビットレート-----
//画像のサイズ
$puts(aas,200)
//左端X
$puts(aapx,$sub($div(%_width%,2),$div($get(aas),2)))
//左端Y
$puts(aapy,8)
//反転画像のY
$puts(aaspy,$add($get(aapy),$get(aas),1))
//テキストの高さ
$puts(th,$calcheight($font($get(font1),14,bold,)text))
$puts(th_1,$add($get(aaspy),14))
$puts(th_5,$add($get(th_1),$mul($get(th),4),$calcheight($font($get(font2),8,,)jT)))
$puts(inf11,15)
$puts(inf12,$sub($div(%_width%,2),15,$calcwidth('W')))
$puts(inf22,$sub($div(%_width%,2),15,$calcwidth('W')))
$puts(prpy,$add($get(th_5),$mul($calcheight('jT'),10),21))
$alignabs($add($get(inf11),$calcwidth('Profile')),$get(th_5),
$sub($add($get(inf12),$get(inf22),$mul($calcwidth('W'),2)),$calcwidth('Profile')),%_height%,right,top)
' '$char(10)$char(10)$char(10)$char(10)[%bitrate% kb/s]
//時間
$if(%_trackinfo_notrack%,,
$alignabs(5,$sub($get(prpy),$calcheight($font($get(font2),7,,)jT),2),$sub(%_width%,10),%_height%,right,top)[%playback_time%]'/'[%length%])
//プログレスバー
$drawrect(5,$get(prpy),$sub(%_width%,10),6,brushcolor-null pencolor-40-40-40)
$drawrect(6,$add($get(prpy),1),$muldiv(%playback_time_seconds% ,$sub(%_width%,11),%length_seconds% ),4,
brushcolor-20-90-230)
+++++++++++++++++++++++++++++++++++ここまで++++++++++++++++++++++++++++++++++++

これを,パネル右クリック>Setting
のFormatting String欄にコピペし,Backgroundを23-25-28すれば以下のように表示されるはずです.

$rokutaの覚え書き
さて今回は,パネルの追加方法です.
まず,右クリック>Change base>Splittersで基本となるスプリッターを決めます.

rokutaの覚え書き

そして,スプリッターを右クリック>Insert panelでパネルを追加していきます.

$rokutaの覚え書き

↓が私の設定です.

$rokutaの覚え書き

設定をしてOKを押と↓のようになります.

$rokutaの覚え書き

パネルの上にパネルの名前が出ていますね.
邪魔なので消してしまいましょう.
名前を右クリックしてShow captionのチェックを外します.
すると↓のようになります.

$rokutaの覚え書き

これでパネルのレイアウトは終了です.
次回からは,それぞれのパネルの設定について説明していきます.
まず,File>Preferencesから設定画面を開きます.

rokutaの覚え書き

次に,設定画面のDisplayを選択しUser Interface ModuleをColumns UIに変更します.
Columns UIが選択画面に出ないときはコンポーネントがcomponentsフォルダ内にあるか,
コンポーネントのバージョンが正しいか確認して下さい.

rokutaの覚え書き

OKを押とfoobarが再起動します.
自動でされない場合は手動で再起動して下さい.

そして,Display>Columns UIを選択し,Layoutタブを表示させます.
Newボタンを押しプリセット名を入力します.
すると,下の様になります.

rokutaの覚え書き

さて,いよいよパネルを追加していきます.
まず,スプリッターについて説明します.
スプリッターはパネルの表示領域を区分けするために使用します.
代表的なものとして,横に分割するHorizontalと縦に分割するVerticalがあります.

rokutaの覚え書き

上の図のようにHorizontalを使用すると↓のようになります.

rokutaの覚え書き

rokutaの覚え書き

上の図のようにVerticalを使用すると↓のようになります.

rokutaの覚え書き

スプリッターの中にスプリッターを入れることもでき,

rokutaの覚え書き

↑のようにすると↓の様になります.

rokutaの覚え書き

今回はここまで,次回はパネルの追加の仕方を解説します.


まずはfoobarのインストールファイルをここ からダウンロードしてインストールして下さい.
インストールの仕方や日本語化はwiki を参考にするといいです.

インストールが終わったらコンポーネントのダウンロードです.
コンポーネントというのはfoobarの拡張機能のことです.

SSの様に表示させるには以下のコンポーネントが必要です.

Colums UI → foo_ui_columns
ELPlaylist → foo_uie_elplaylist
Library Tree → foo_uie_library_tree
Track info panel mod → foo_uie_trackinfo_mod
Lyric Show Panel 2 → foo_uie_lyrics2

ダウンロードしたファイルを解凍し中のdllを
C:\Program Files\foobar2000\componentsにコピーします.

また,PNG画像を使用するためにlibgpng and zlib libraries をダウンロードし,
foobar.exeと同じフォルダにlibpng13.dllとzlib1.dllをコピーします.

これで準備は完了です.
多機能ミュージックプレイヤーfoobar2000の設定について書いていきます.
最終的に下のSSができるように解説していきます.
rokutaの覚え書き