foobar2000 v2を設定する
2024/02/11
やっぱりfoobar2000
Columns UI: 画面レイアウト変更に必須
  • Columns UIのポイントは「Layout設定を理解すること」に尽きます。設定を何もしていないfoobar2000は下記のような画面からスタートするため、何らかの設定は必須です。


  • Figure 1: インストール直後の画面(クリックで拡大します)

  • いくつか用意された出来合い設定を使うのも良いですが、自由にPanel(ガジェット)を配置したければ、どうしてもLayoutの攻略が必要です。下記はLayout設定記述と、結果画面の例です。


  • Figure 2: Columns UI Layout設定例(左)と結果(右)(クリックで拡大します)

  • 恐らく、このページへ辿り着いた方の多くは、カスタマイズしたいと考えつつも上記のようなLayout設定記述を見て「えっ...これ...どうなってるの?」と思ったことでしょう(*2)。それをここで説明します。

Columns UI: パネル(Panel)とスプリッタ(Splitter)とは
  • いろいろなPanel...画面に配置する小道具ですね。そしてSplitterは中にPanelを複数置くことができるPanelです。
    • Panel ... 画面に配置する小道具
    • Splitter ... Panelを中に置けるPanel ... フレームと考えた方が自然

  • SplitterにはVerticalとHorizontalの2種類があり、「複数」Panelの追加配置方向(垂直/水平)を決めています。
    • Vertical splitter: Panelが垂直方向に追加配置されるフレームPanel
    • Horizontal splitter: Panelが水平方向に追加配置されるフレームPanel

  • Layout記述例とSplitter内のPanel配置をFigure3に示します。

  •  
    Figure 3: Vertical splitter と Horizontal splitter

  • そしてSplitterもPanelの一つなので、Splitterの中にSplitter(Sub-splitter)を置くことができます。これをうまく使うことでいろいろなPanelを自由に配置するわけです。

  • Figure 3b: Splitterの中にSplitter(Sub-splitter)を置く

Columns UI: スプリッタ(Splitter)を組み合わせたLayout記述例
  • ではFigure 2に示したLayout記述例を改めて見返してみましょう。下記でしたね(少し補助追加)。
  • Vertical splitter ...................... ベース: 垂直(↓)フレーム
     |
     |- Horizontal Splitter ................ ベース-上段: 水平(→)フレーム
     |   |- Playlist switcher  # Panel(1)
     |   |- Filter             # Panel(2)
     |   |- Filter             # Panel(3)
     |   `- Filter             # Panel(4)
     |
     |- Playlist view          # Panel(5) .. ベース-中段: パネル(Playlist viewは比較的大きなPanel)
     |
     `- Horizontal splitter ................ ベース-下段: 水平(→)フレーム
         |- Artwork view       # Panel(6)
         |
         |- Vertical splitter .............. ベース-下段-中央: 垂直(↓)フレーム
         |   |- Item details   # Panel(7)
         |   |
         |   `- Horizontal splitter ........ ベース-下段-中央-下段: 水平(→)フレーム
         |       |- Peak Meter # Panel(8)
         |       `- VU Meter   # Panel(9)
         |
         `- Spectrum Analyzer  # Panel(10)
    

  • SplitterによってPanel配置が決まっていく例としてFigure 4を見て下さい。Splitter以外のPanelは「Panel(*)」と表記して白枠にしています。

  • Figure 4: SplitterによるLayout(Panel配置)の決定例

  • こうやって配置を決めれば、後はPanel相当部に好きなガジェットを突っ込むだけになります。最初、Panelの大きさは適当にパッキング(Packing)される(*3)ので、あとは好みに応じてPanelボーダーをマウスで動かして調整すればOKです。

m-TAGS: ネットラジオにアートワークを付けたい...が...できない...その原因
  • 話は変わりますが、普段聴く音楽のソースとして、自分の持つローカルライブラリだけではなく、音楽専門のネットラジオを利用することも多いです。SHOUTcastInternetRadio からネットラジオ局を探し、そのURLをInternet Radioに入れれば、foobar2000でいつでも呼び出せるようになります。


  • Figure 5: Internet Radio登録の手順(クリックで拡大)

  • しかし何かが微妙に物足りない...そう、Artwrokが無いんです。デフォルトの音符マークになっています。下記のような画像をArtwrokとして出してみたいんですけどね。


  • ならばプレイリストのPropertiesから、ArtworkのFront Coverに画像ファイルを登録でき...る...あれ? やってみるとわかりますが、うまくいきません。画像登録を保持できません。ストリームに異常が生じることもあります。


  • Figure 6: ネットラジオではPropertiesでFront Cover登録できない(クリックで拡大)

  • flacやmp3等の音楽ファイルにはArtwrok登録できるのに、ネットラジオなどのストリームでは登録できない理由ですが...「書く場所が無いから」というシンプルなものです。

  • mp3やflac等の音楽データファイルはタグ情報を保持する領域を持っています。そしてProperties編集後の「OK又はApply」操作は、外部ファイルのタグ情報領域にデータをWriteすることです。なので、無ければ当然書けない...外部ファイルだったとしてもタグ情報領域を持たないwavファイル(*4)でも同じが問題が出ます。

  • ネットラジオ等のストリームデータ再生では、URLからストリーム接続後、foobar2000内部のPropertiesデータを一時的に作成(*5)し、そこにストリームから取得したArtistやTitle情報を置いて、表示に利用していると思われます。なので一時的に文字列データを書く程度のことはできても、画像データ等のバイナリを保持する領域はありません


  • Figure 7: ネットラジオにはタグ情報を書き戻せない...ストリームだから

  • しかし、この原因がわかれば対策も思いつきます。Write対象のファイル/領域が無いというだけの話なので、タグ情報だけのファイルを外に作っちゃえば良いのです。それを実現するコンポーネントが m-TAGS です。

m-TAGS: タグ情報を外部ファイル化して自由に操作
  • ようやくm-TAGS自身の説明に移ります。m-TAGSはネットラジオにArtwrokを入れるコンポーネントではなく、m-TAGSのタグデータ外部ファイル化の機能を利用してネットラジオにArtworkを入れようとしているので、背景/原因理解がどうしても必要でした。前置き長くてごめんなさい。

  • さて、m-TAGSコンポーネントをインストールすると、Properties の Tagging に Create m-TAGS file が追加されます。


  • Figure 8: メニューにCreate m-TAGS file追加(クリックで拡大)

  • メニューをクリックするとファイルダイアログが現れます。都合の良い場所に保存すれば良いですが、ここでtagsファイル名をネットラジオのステーション名と同じにして下さい。

  • Figure 9: tagsファイル名はネットラジオのステーション名と同じにする

  • tagsファイル作成後、現在のplaylistをクリアして、先程作成したtagsファイルをplaylistに入れます。入れたのはtagsファイルなので今度は編集可能になっています。いつものようのPropertiesから、Coverの画像データを登録すれば良いです。


  • Figure 10: tagsファイルなら画像登録できる

  • 画像登録すると、tagsファイルと同じフォルダにbinファイルができます。frontカバーなら tagsファイル名.front.bin です。

  • Figure 11: tagsファイルとペアで作成されるbinファイル

  • 編集したtagsファイルは、playlistに登録するも良し、楽曲データファイルと同じようにライブラリとして認識させても良しです。好みに合わせて扱って下さい。

  • ただし、tagsファイルをネットラジオで使うにはもう少しだけ注意が必要です。Artist NameとTrack Titleをストリームから取得するため、該当Propertyを空けておかなければいけません。埋まっていると変更されません。


  • Figure 12: ネットラジオではArtist NameとTrack TitleのPropertyを空けておくこと

  • するとネットラジオ局のステーション名をどこに入れるかですが、先程「tagsファイル名をネットラジオのステーション名と同じにして下さい」と書いたのはこれが理由です。ストリームと接続されずTrack Titleが空のときはファイル名が表示されます。これでステーション名がわかるわけです。

  • こんな感じで好みのネットラジオ局をtagsファイルで登録し、都合に合わせて擬似的なアルバム名などで整理した結果が下記になります。このあたりも自分の好みで決めれば良いでしょう。


  • Figure 13: ネットラジオにArtwork登録できました(クリックで拡大)

カスタマイズできるツールは楽しい
  • 今回foobar2000 Verupのついでに放ったらかしていた設定をある程度理解しつつ行いました。カスタマイズできるツールは、何度も「やっては直し」の繰り返しにはなりますが、それ自身が遊びなのと、できあがった後の満足感も良いです。

  • また面白そうな何かを見つけたらfoobar2000で遊ぼうかと思います。
Notes
  • 私の場合 iPod manager と m-TAGSが64bit版未対応でした。iPodはランニングのお供として10年以上使ってますね。
  • 私も「まぁ出来合いで良いかな」と思っていたクチですが、今回は自分で設定したくなりました。
  • Panel毎に最低限の大きさを確保したら、あとは均等割付です。
  • wavはサイズが大きい上にタグ情報を書けないからflacにするのです。
  • この構造体データ集合にSQLでアクセスすることができるようです。SQLite
2024-02-17: Figure 3b追加
2024-02-11: 初版
Copyright(C) 2024 Altmo
本HPについて