【ファイル再生の基礎知識】「アルバムの曲順がおかしい」という問題について

【2017/11/15追記】

 Twonky Serverはバージョン8.5からWAVのタグが機能するようになった。
 この記事の内容もいずれ過去の遺物になっていくだろう。

【追記終わり】

 ディスクベースの時代、アルバムの曲順が狂う余地などなかった。
 アルバムの曲順はCDというメディアに刻み込まれており、再生ボタンを押せば曲順通りに音楽が流れる。ただそれだけだった。

 ところが……

 音源がディスクからデジタルファイルになった結果、不意に「曲順」という問題が現れたのは知っての通りである。
 時と場合によって曲順が狂う、本来あるべき順序で曲が再生されない、というものだ。

 ベスト盤など、曲順がさして重要ではないアルバムならばそれほど問題にはならないかもしれない。
 しかし、例えば複数の楽章から成る交響曲など、アルバムの曲順に明快な意味があるとすれば話は別だ。序曲が終わった途端に終演後の拍手が鳴り出したり、楽章の順序があべこべになったりするのでは、音楽そのものが崩壊しかねない。

 デジタルファイル音源時代の「曲順」という問題は早くから認識されていた。
 そして同時に、現在進行形の問題でもある。
 現に、「ネットワークオーディオ 曲順 おかしい」とか「WAV アルバム通りに再生されない」とか「サーバー トラック順 並ばない」とか、この手の検索ワードでこのブログにやってくる人も相当数いるようだ。

 この問題に対する解答を今まで記事にしてこなかったことを反省せねばなるまい。
 「FLACを使ってまじめにタグベースで音源の管理運用をしていればそんな問題出やしないよ!」と言っておしまいにしたいのはやまやまなのだが、解答が用意されるに越したことはない。

 というわけで、この記事では以下の2点を追求する。

何が原因で曲順が狂うのか

・解決策はあるのか

 まずは復習を兼ねて下の記事から。

『タグ』とは何か?

WS000002

 曲順曲順と言うものの、「この曲がアルバムの中で何曲目なのか」という情報は、それ自体「トラックナンバー」あるいは単に「トラック」というタグに他ならない。
 CDであればまったく気にする必要のない曲順という情報ですら、個々のデジタルファイル音源にタグとして保存される必要があるのである。

 とはいえ、別に心配しなくてもいい。
 よほどとんでもないリッピングソフトをよほどとんでもない設定で使っていない限り、まず間違いなくリッピングの際に正確なトラックナンバーが付加される。これはWAVでリッピングしようがFLACでリッピングしようが変わらない。
 リッピングではなくダウンロードした音源にだって、いくらなんでもトラックナンバーくらいは付加されている。え、入ってない? いや、まさか、さすがにそんなことは……

 つまり、CDのリッピングだろうが配信音源だろうが、タグにおいて正しい曲順が保証されている。

 一方で、数えきれないほど繰り返している通り、タグとファイル名は別物である。
 さらに、肝心のタグが機能するかどうかはソフトによって異なる

 さて、単なる私の勘違いでなければ、PCオーディオよりもネットワークオーディオの文脈において曲順の問題が出ているように思う。

 ネットワークオーディオにおいて、「曲順が狂っている」という現象を実際に目にするのはコントロールアプリの画面だが、コントロールアプリは単にサーバーが寄越す情報を表示しているに過ぎない。曲順がおかしい原因はコントロールアプリにはない。
 勘違いしてはいけない。
 で、ナビゲーションツリーを含むサーバーの機能を担うのはサーバーソフトである。
 「○○というNASを買ったら上手くいった・いかなかった」というのは正確ではない。重要なのはそのNASの中で動いているサーバーソフトである。

 サーバーソフトといえば……

 ユーザーがオーディオ用途にNASを買う時、多くの場合、そのNASの中ではあるサーバーソフトが動いている。
 そう、Twonky Serverである。

 必ずしも必要ではないとはいえ、現実的にネットワークオーディオを始めるユーザーの多くはNASを導入しているように思う。
 そして黎明期から今に到るまでネットワークオーディオを支えるQNAPは言うに及ばず、Buffalo製品をはじめとする多くのNAS、今を時めくDELAのサーバーも、中身はずばりTwonky Server。
 望むと望まざるとにかかわらず、さらにその存在を意識するかしないかにもかかわらず、ネットワークオーディオの門戸を叩く多くのユーザーが最初に出会うサーバーソフトはTwonky Serverなのではなかろうか。

 調べる手段がないので厳密なところはわからないが、「ネットワークオーディオに使用しているNAS」の中身のサーバーソフトを調べれば、Twonky Serverが相当な割合を占めている気がする。感覚的には7~8割くらい。かつての私のように事情を知らないユーザーからすれば、Twonky Serverというものの意味すら把握しないまま「ネットワークオーディオのサーバー=Twonky Server」という認識になりかねない。Twonky Serverそのものに何らかの問題があれば、それは容易にネットワークオーディオ全体のイメージに波及してしまう。

 特にネットワークオーディオの文脈で「曲順がおかしい」という問題が多く生じる原因は、広く使われているTwonky Serverにあるのではないか?

 Twonky Serverの曲順に関する挙動を検証することで、「なぜ曲順が狂うのか」という問題を解決できるのではないか?

 検証に入る。
 要はTwonky Serverがどんな挙動を示すか、である。

 今回検証に使用する音源はコレ。
アルバムthe well

 肝心な曲順はこの通り。
20150423曲順

 タグを完璧にしたうえで、例によってFLACとWAVで音源を用意した。
 さらにファイル名による差を確認すべく、先頭に付記するトラックナンバーが「0から始まる二桁でスタート」と「1からスタート」でそれぞれ音源を用意した。

 WAVはこの記事でリッピングしたもの、FLACはそこからこの記事で変換したものをベースにしている。

 この四アルバムで検証する。
20150423PC01

 それぞれの詳細は以下の通り。

 
 FLAC・0あり
20150423PC02
20150423PC03

 FLAC・0なし
20150423PC04
20150423PC05

 WAV・0あり
20150423PC06
20150423PC07

 WAV・0なし
20150423PC08
20150423PC09

 
 分かりやすくするためにアルバム名をいじっている以外、タグはすべて共通。
 あとはコーデックの違いとファイル名の違いのみ。

 これらの音源をTwonky Serverで配信する。
 ちなみにコントロールアプリは例によってLUMIN Appを使う。

 まずはタグベース。

 まあ、いつものザマである。
20150423ipad01

 各アルバムはこの通り。
20150423ipad02
20150423ipad03
20150423ipad04

 FLACの二種はどちらも問題なし。
 言うまでもなく、これはファイル名ではなくタグのトラックナンバーを参照しているからである。

 で、WAVの二種。
 相変わらずTwonky ServerではWAVのタグがまったく機能しないため、「不明」の中にまとめて突っ込まれている。
 そして中身を見れば、この時点で答えの一端が見えているのだが……あえてスルー。

 次にフォルダ掘り。

 まあ、いつも通りである。
20150423ipad05

 各アルバムはこの通り……

 ん?
20150423ipad06
20150423ipad07
20150423ipad08
20150423ipad09

 FLACの曲順がどちらも崩壊している。
 よくよく見ればトラックナンバーそのものは表示されているにもかかわらず、曲順が崩壊している。

 そしてこの時、正しい曲順が保持されているのは「0スタート二桁のトラックナンバーをファイル名の先頭に付記した」WAVのみである。

 なるほど。

 事の真相はこうだ。

 Twonky ServerにおいてWAVのタグはまったく機能しない。
 そのため、タグベースのナビゲーションツリーにおいて、WAVの曲名は純粋にファイル名が参照される。
 そしてトラックナンバーが機能しない以上、アルバム内の曲は「A→B→C→……」、あるいは「1→11→12→13→14→2→3→……」というように、純粋に文字・数字順で並ぶしかなくなる。なお、「1→2→……→9→10→11→……」とはならない。
 よって、「ファイル名の先頭にトラックナンバーが付記されていない」、あるいは「アルバムの曲数が10曲以上、かつファイル名の先頭に付記されるトラックナンバーが1から始まっている」という場合、曲順が崩壊する

 一方で、Twonky Serverではフォルダ掘りをする際、可能な限り曲名はタグを参照するようになっている。
 FLACはタグが機能するので、曲名はタグが参照される。
 しかし、トラックナンバーは表示するだけで機能はさせない
 結果的に、アルバム内の曲は「A→B→C→……」で並び、曲順が崩壊する
 

 タグの重要性を理解するからこそFLACの使用を選択し、まじめにタグの管理編集を頑張ってきたユーザーには頭を抱えさせ、それでいて、WAVの場合はそもそもタグがまったく機能しないことで逆に問題にならないという、この、この……

 このクs……謎仕様はいったいどういうことだ。

 フォルダ掘りさえしなければ済む話と言われればそうなのだが(私も基本的にフォルダ掘りなんてまったくしない)、その選択肢を用意している以上、こんな仕様は余計な混乱と誤解を生むだけだ。許し難い。

 さすがに長い年月を経てTwonky Serverもこの問題を自覚したのか、最近のバージョンではフォルダ掘りの際の設定を変更できるようになっている。

 デフォルトの設定では、「フォルダ掘りの場合でも可能なら曲名はメタデータ=タグを参照するよ」となっている。
20150423PC10

 それは問題ではない。
 問題は、曲名はタグを参照するくせしてトラックナンバーを機能させないということだ。
 その結果、独り歩きした曲名がアルファベット順に並び、本来の曲順が崩壊する。

 このチェックは「フォルダ掘りの場合、問答無用で曲名はファイル名を参照する」という設定で、要はFLACでもWAVと同じような挙動をさせる、ということ。
20150423PC11

 こうすること、こんな具合になる。
20150423ipad11
20150423ipad12

 「0スタート二桁のトラックナンバーをファイル名の先頭に付記」することで、フォルダ掘りかつFLACの場合でも正しい曲順が(辛うじて)保持されるようになる。
 どのみちトラックナンバーが機能しないことに変わりはない。

 なんたる仕様。

 トンキー病といい……これといい……まったく……

 もっとしゃんとしてくれよ!

 非常に腹立たしいので、(少なくともタグの扱いに関しては)まともなサーバーソフトの一例としてMinimServerに登場してもらった。

 タグベースでも、
20150423ipad15
20150423ipad17
20150423ipad18
20150423ipad16
20150423ipad19

 フォルダベースでも、
20150423ipad20
20150423ipad21
20150423ipad22
20150423ipad23
20150423ipad24

 FLAC・WAVともにタグが機能しており、もちろん曲順も保持される。
 タグベースでWAVのアルバムタイトルが文字化けを起こしているが、この際そんなものは些末な問題だ。

 ここまでTwonky ServerとMinimServer、つまるところサーバーソフトの振る舞いを見てきたが、結局はPCオーディオの領域でも話は同じ。

 どれだけタグを完璧に管理してもそれを機能させるのがソフトである以上、どのように曲順が扱われるかも結局はソフト次第ということになる。
 なお、ここでいう「ソフト」とは、再生ソフトやサーバーソフトだけでなく、DAPやファイル再生機能を持つ単体オーディオ機器の内的なソフトウェアも含んでいる。

 さすがにTwonky Serverのような頓珍漢な挙動をする再生ソフトがあるとも思えないが……

 現にfoobar2000でもMediaMonkeyでも、WAV・FLACともに正しい曲順は死守されている。
20150423PC13
20150423PC12

 やはりTwonky Serverの一人負けと言うほかない。

 というわけで結論といこう。

 何が原因で曲順が狂うのか。

 タグとしてトラックナンバーが付加されていない。(これはまずあり得ないが)
 そもそも付加されているトラックナンバーが正しくない。(これもまずあり得ないが)

 Twonky Serverを使う場合、謎仕様に伴い以下の原因が加わる。
 ファイル名の先頭にトラックナンバーが付記されていない。
 アルバムの曲数が10曲以上、かつファイル名の先頭に付記されるトラックナンバーが「1」から始まっている。
 
 タグやファイル名に問題がなければ、最終的にはソフトの仕様に行き着く

 そして、Twonky Server以外にも頓珍漢な挙動をするソフトがないとは限らない

 解決策は。

 まず、タグの管理を完璧にする。
 そうすれば、まともなソフトであればWAVでもFLACでも正しい曲順は保たれる。
 FLACを使い、タグベースのナビゲーションツリーを活用する限り、曲順の問題は基本的に生じ得ない。
 
 そして、WAV・FLACともにファイル名の先頭に「01」「02」……と0から始まる二桁のトラックナンバーを付記する。
 こうすることで、Twonky Serverでも、(辛うじて)曲順が保持されるようになる。
 FLACを使い、さらにフォルダ掘りもしたいという場合は設定を変更すればいい。
 NASの中身がTwonky Serverで、他のサーバーソフトを走らせる余地がなく、なおかつ「WAVを使わないと死んじゃう病」にかかっていても、これで何とかなる。

 もっとも、リッピングの際のファイル命名規則でトラックナンバーも付記するようにしておけば、これもさして心配することはない。
 配信音源の場合はファイル名にも注意が必要。
 タグベースとフォルダ/ファイル名ベース、両面からライブラリを磨き上げよう。

 既に実践編でそこはかとなく言っていることだったりするが。

 タグの曲名そのものに「01」「02」……と打ち込むという方法もないわけではない。
 が、少数のまともではないソフトのために、そうまでして音源を歪める必要などない。

 ……サーバーが寄越す曲順が滅茶苦茶なままでも、プレイリスト周りの挙動が優れたコントロールアプリならば、アプリの側でプレイリストに登録する際に正しい曲順に並べ替えることは容易と言えば容易である。
 が、何が悲しくてそんなことをしなければならないのだ。

 すべてのコーデックとすべてのソフトに適用し得る究極の解決策はない。
 ユーザーが自分で見極めるしかない。

 ……やっぱり、「FLACを使ってまじめにタグベースで音源の管理運用をしていれば、曲順なんて問題は出ない」

 これに尽きる。

【音源管理の精髄】 目次 【ネットワークオーディオTips】

【レビュー】 視た・聴いた・使った・紹介した機器のまとめ 【インプレッション】

【Roon】関連記事まとめ

よくある質問と検索ワードへの回答