Columns UI のデフォルトの UI extension である Item Details で、作曲者や作詞者を表示する


  • 初期状態では、アーティスト、タイトル、アルバム、歌詞などが表示されていたと思う
  • 歌詞については、lyrics の歌詞(同期)が表示される設定になっていたが、同期するための記号や数字まで表示されるので、Lyric Show Panel 3 を利用するほうがよいと思う
  • もし、歌詞を Item Details で表示するなら、unsynced lyrics の歌詞を表示するようにしたほうがよいだろう
  • ここでは、Item Details でアーティスト、タイトル、アルバム、作曲者、作詞者を表示する方法について記載する
  • なお、テキストは水平・垂直とも、中央揃えにすることを前提としている


1.Item Details の表示画面で右クリックし、Options をクリックする

2.Options のウィンドウで、Title format の欄に、以下のように記述する
※スクリプトは見やすいように適当に改行を入れているが、連続させてもよい

$rgb(44,38,255)
$set_font(源ノ明朝,14,bold;)

[%artist%]
$if(%artist%,$if($or(%title%,%album%,%composer%,%lyricist%),$crlf()$crlf(),),)

$set_font(源ノ角ゴシック,15,bold;)

[%title%]
$if(%title%,$if($or(%album%,%composer%,%lyricist%),$crlf()$crlf(),),)

$rgb(0,0,0)
$set_font(源ノ明朝,13,bold;)

[アルバム:%album%]
$if(%album%,$if($or(%composer%,%lyricist%),$crlf(),),)

[作曲:%composer%]
$if(%composer%,$if(%lyricist%,$crlf(),),)

[作詞:%lyricist%]


item_details_01


3.簡単な説明
  • $rgb(44,38,255)
    文字色は、Generate colour code... というボタンをクリックすれば、色の選択画面が出てくるので、適当に選択すると、ボタンの横に色を設定するためのコードが表示されるので、それをコピーして、Title format の欄に貼り付ける
  • $set_font(源ノ明朝,14,bold;)
    フォントは、Generate font code... というボタンをクリックすれば、フォントの選択画面が出てくるので、適当に選択すると、ボタンの横にフォントを設定するためのコードが表示されるので、それをコピーして、Title format の欄に貼り付ける
  • [%artist%]
    %artist% は、曲のメタデータからアーティスト名の情報を取得するもので、メタデータにアーティスト名が無い場合、通常は ? と表示されるが、ここでは [ ] で囲んでいるので何も表示されない
    $if2(%artist%,) と記述してもよいと思う
  • $if(%artist%,$if($or(%title%,%album%,%composer%,%lyricist%),$crlf()$crlf(),),)
    アーティスト名のデータがあり、以後の他のデータがある場合は、改行を2つ入れて行間を空けるが、アーティスト名や他のデータが無い場合は改行を入れない
    データが無いのに改行が入っていると垂直方向でうまく中央に揃わないことがあるので、このようにした
  • $set_font(源ノ角ゴシック,15,bold;)
    これ以降のフォントを指定
  • [%title%]
    %title% は、曲のメタデータからタイトル名の情報を取得するもので、[ ] で囲んでいるので、データが無ければ何も表示しない
  • $if(%title%,$if($or(%album%,%composer%,%lyricist%),$crlf()$crlf(),),)
    アーティスト名の後の改行と同じ趣旨で記述した
  • $rgb(0,0,0)
    これ以降の文字色を指定
  • $set_font(源ノ明朝,13,bold;)
    これ以降のフォントを指定
  • [アルバム:%album%]
    $if(%album%,$if($or(%composer%,%lyricist%),$crlf(),),)
  • %album% は曲のメタデータからアルバム名の情報を取得するもの
    テキストについては、( ) [ ] $ % ' などのスクリプトを記述するのに使う特殊な文字以外は、そのまま表示される
    [ ] で囲んでいるので、アルバム名のデータが無い場合は、何も表示されない
    アルバム名のデータが無い場合や以後の各データが無い場合は、改行を入れない
  • [作曲:%composer%]
    $if(%composer%,$if(%lyricist%,$crlf(),),)
  • %composer% は曲のメタデータから作曲者名の情報を取得するもので、[ ] で囲んでいるので、作曲者名のデータが無ければ、何も表示されない
    作曲者名のデータが無い場合や以後のデータが無い場合は、改行を入れない
  • [作詞:%lyricist%]
    %lyricist% は曲のメタデータから作詞者名の情報を取得するもので、[ ] で囲んでいるので、作詞者名のデータが無ければ、何も表示されない
4.表示例

※全てのデータがある場合
item_details_02


※作曲者名のデータが無い場合
item_details_03


※ Item Details の背景色は、Preferences >> Display >> Columns UI >> Colours and fonts >> Colours で設定する


以上


追記 2026.03.05

上記の記述例の説明の中で、例えば
$if(%artist%,$if($or(%title%,%album%,%composer%,%lyricist%),$crlf()$crlf(),),)
アーティスト名のデータがあり、以後の他のデータがある場合は、改行を2つ入れて行間を空けるが、アーティスト名や他のデータが無い場合は改行を入れない データが無いのに改行が入っていると垂直方向でうまく中央に揃わないことがあるので、このようにした
と記載した部分は、現在、改めて foobar2000 をいじっていると、どうも不要な気がする。
この記事を記載した当時、どう考えたか、よく思い出せないのであるが、「データが無いのに改行が入っていると垂直方向でうまく中央に揃わないことがある」という状態が再現出来ないので、今はもっとスクリプトを単純に記述したほうが良いのではないかと感じている。

一応、記事を書いた当時とは異なる環境(例えば foobar2000 の 64bit 版を現在は使用しているなど)であることをお断りした上で、現在のスクリプトを以下に示す。

$set_font(%default_font_face%,$add(%default_font_size%,4),)
//これはデフォルトの記述の一部。参考までに残しているが、以下の記述により、このスクリプトは何の影響も無い。このスクリプトの意味はコピーしてググればわかる。

$crlf()
//上に一行分間隔を空ける

$set_font(Noto Serif CJK JP,14,bold;)
//フォントを設定

[%artist%$crlf()$crlf()]
//アーティスト名を表示し、下に一行分空ける

$set_font(Noto Sans JP,14,bold;)
//フォントを設定

[%title%$crlf()]
//曲のタイトルを表示して改行

$crlf()
//一行分間隔を空ける

$set_font(Noto Serif CJK JP,12,bold;)
//フォントを設定

[作曲:%composer%$crlf()]
//作曲者を表示する

[作詞:%lyricist%$crlf()]
//作詞者を表示する

$crlf()
//一行分間隔を空ける

[アルバム:%album%$crlf()]
// アルバムのタイトルを表示する

[ディスクタイトル:%discsubtitle%$crlf()]
//複数枚のディスクで構成されるアルバムまたはボックスセットで、CD毎にタイトルがある場合に表示するためのもの。MusicBrainz Picardで使用されているBasic Tagsの一つ

$crlf()
$crlf()
//二行空ける

[%lyrics%$crlf()$crlf()$crlf()]
//歌詞を表示して、二行空ける

[リリース:%date%$crlf()]
//アルバムのリリース日を表示する

[オリジナル:%originaldate%$crlf()]
//再販などされたものの場合、オリジナルのリリース日を表示するもので、これもMusicBrainz Picardで使用されているBasic Tagsの一つ

[規格品番:%catalognumber%$crlf()]
//これもMusicBrainz Picardで使用されているBasic Tagsの一つ

[%comment%$crlf()]
//コメントを表示する

$crlf()
//下に一行分空ける

以下、このスクリプトによる表示の例である。

foobar2000_item_details_01
ボカシを入れているのは、歌詞の部分で、長いので画像を切り詰めている。「 Label 」の部分は、%comment% の表示。


foobar2000_item_details_02
クラッシックの曲で歌詞が無い。「 Recorded 」以下は、%comment% の表示。


foobar2000_item_details_03
歌詞の下は、%date% だけで、他のメタデータが無い場合。

※歌詞は EAC でリッピングする時に入れており、lyrics のタグで格納されている。現在は、foobar2000 では歌詞の入力はしていない。