Album listにおけるby directory structureのカスタマイズ

久々に何も予定のない休日だったので、部屋の掃除もほどほどにfoobar2000をカスタマイズしました。

外観はこんな感じ。WUXGAの幅1920を活かせるように3列のレイアウトにしてみました。
スペアナのデザインがお気に入り。
あと、アルバムの一覧をiTunesのようなレイアウトで表示できるのも良い感じ。

まあこれだけなら5分で作れるんですが、今回一番手こずったのはAlbum listのソート部分。
僕は普段からView->by directory structureにして使っていたのですが、この設定だとAlbum listからフォルダを選択したときにファイル名でソートされてしまう問題が。

僕はリッピングする際に

[トラック番号] - [曲名].m4a

というフォーマットで名前を付けているため、ディスク数が2枚以上になると名前順でソートした際に

01 - ディスク1の1曲目.m4a
01 - ディスク2の1曲名.m4a
02 - ディスク1の2曲目.m4a
02 - ディスク2の2曲目.m4a
     ・
     ・
     ・

のようになってしまいます。

ちゃんとファイル名にもディスク番号を書けよと言われればそれまでなんですが、さすがに1万曲以上の名前を付け直す気も起きません。
ということで、Viewsにディレクトリ通りに表示しつつ[アーティスト、ディスク番号、トラック番号]でソートできるようにしました。
Viewsに追加したコマンドは以下の通り。

$puts(tree,$replace($replace(%path%,%filename_ext%,),\,|))$replace($get(tree),D:|music|,)[ '['%album artist%']']|[[%discnumber%.]%tracknumber%. ][%track artist% - ]%title%

ディレクトリのフルパスとファイル名を除外しつつ、後ろのほうでソートを行うようにしています。
これも完璧ではなくて、ツリービューを開いていくと拡張子でソートされていたりするのですが、使用上困ることがないのでとりあえずこれで満足。
%filename%ではなく%filename_ext%(拡張子込み)にしたらいけました。