「Media Library Tree」を更に簡易化する

DLNAでのややこしいメディアライブラリー一覧が嫌いな自分は、foobar2000でのDMS導入時に一覧内容をカスタマイズしシンプルな表示に変更しました。が、まだシンプル化が足りていないことが判明。

fb2k-dms-009
そんな細かい分類は必要無いんじゃよ・・・・

foobar2000のUPnP Browserから「Albums」を選択した後が、いわゆる「Album/Artist表示」になっていました。だいたい、アルバム毎に聞きたいのに、そこからさらにアーティスト毎に分けて聞きたいとは思わないわけですよ。というわけで、今回も「foo_upnp_ml_tree.xml」を編集して改善します。

変更前
<MediaLibraryTree>
<SubTree label="Folders" type="filesystem"/>
<SubTree label="Albums">
<spec type="object.container.album.musicAlbum">%album%[ ‘[‘%album artist%’]’]</spec>
</SubTree>
<SubTree label="Genres">
<spec type="object.container.genre.musicGenre">%&lt;genre&gt;%</spec>
<spec type="object.container.album.musicAlbum">[%album artist% – ]%album%</spec>
</SubTree>
<SubTree label="Codecs">
<spec>%codec%</spec>
<spec type="object.container.album.musicAlbum">[%album artist% – ]%album%</spec>
</SubTree>
</MediaLibraryTree>

変更後
<MediaLibraryTree>
<SubTree label="Folders" type="filesystem"/>
<SubTree label="Albums">
<spec type="object.container.album.musicAlbum">%album%</spec>
</SubTree>
<SubTree label="Genres">
<spec type="object.container.genre.musicGenre">%&lt;genre&gt;%</spec>
<spec type="object.container.album.musicAlbum">%album%</spec>
</SubTree>
<SubTree label="Codecs">
<spec>%codec%</spec>
<spec type="object.container.album.musicAlbum">%album%</spec>
</SubTree>
</MediaLibraryTree>

ついでなので「[%album artist%]」関係を全てのサブツリーで削除しました。これで単純にアルバム毎に選べるようになり快適です。

追記:しかし、この後Album/Artist表示の利点(特定のアーティストの曲だけ聴きたいとか)を見つけてしまい、他のUPnPサーバー使用時にはAlbum/Artist表示は削除しないで使用しています。

広告

foobar2000 UPnPコンポーネント「Decoding to PCM」設定を見直し

foobar2000をDigital Media Server(DMS)として使うのエントリー内で、「Decoding to PCM」設定について「N-50は2年前の製品とはいえファームウェアアップのおかげもあって対応フォーマットは多いため「Never」にしています」と記述しましたが、この内容が間違いであることが判明しました(元記事は修正してあります)。

fb2k-DtP-000

 

「Decoding to PCM」設定の部分は右にある「Except」フィールドを考慮しつつ設定する必要がある項目で、以下のような挙動になります。

(ここでの「ストリーム」はWAVEやAAC、FLAC、ALACといった圧縮・非圧縮形式の事を指します)

・always – wav:Exceptフィールドに記入した拡張子はソースファイルのストリームのままDMRへ送出し、登録外拡張子の場合はWAVEに変換しDMRへ送出する。
・always – lpcm:Exceptフィールドに記入した拡張子はソースファイルのストリームのままDMRへ送出し、登録外拡張子の場合はリニアPCMに変換しDMRへ送出する。
・never – wav:Exceptフィールドに記入した拡張子関係なく、全てWAVEに変換しDMRへ送出する。
・never – lpcm:Exceptフィールドに記入した拡張子関係なく、全てリニアPCMに変換しDMRへ送出する。

以上の動きから考えると、N-50にとって一番良い選択は「always – wav」となります。N-50はDSD以外のファイル形式はほぼ対応で、WAVEであれば192kHz/24bitまで再生可能なためです(リニアPCMの場合は48kHz/16bitまで。USB-DACモードでは192kHz/32bitまで入る)。

この挙動に気がついたのは、AAC圧縮したファイルを再生しているときでもN-50側の液晶画面に「WAV 44.1/16」と表示されていたためです。N-50はAACストリームも再生できるので、DMSからなるべくファイルオリジナルのストリームで流れてくるように設定したはずなのに・・・と、前回記載したURLを見ていたところ、URLの末尾が「convert=wav」となっており、「Decoding to PCM」設定を変更しながらURLを確認したところ、上記の結果が判明しました。

 

AACストリームをWAVE送出していた(never – wav)場合のN-50の液晶画面とfoobar2000上のプロパティ。プロパティ内の「File path」末尾に「convert=wav」の文字が見える。File SizeもAACストリームにしては大きい。

リニアPCM送出に設定(never – lpcm)した場合のN-50の液晶画面とfoobar2000上のプロパティ。プロパティ内の「File path」末尾が「convert=lpcm」に変化する。ちなみに、N-50はリニアPCMストリームを受信したときはストリーム形式は何も表示されない。

 

ソースファイルのストリームで送出するように設定(always – wav)した場合のN-50の液晶画面とfoobar2000上のプロパティ。プロパティ内の「File path」は拡張子m4aのままとなり「codec」はAACとなっている。

「Decoding to PCM」設定がややこしいのは、「Exceptフィールドに登録した拡張子以外に対して」alwayなのかneverなのかを選択する設定のためかと思います。私も最初は登録拡張子のフィールドのことを深く考えずにエントリーを作成したため、間違いを書いてしまいました。

なお、今回のエントリーを作成する際に、Exceptフィールドに登録する拡張子も見直しして、N-50で再生できるストリームの拡張子を追加登録しました。

>mp3,mp4,wma,aac,m4a,wav,flac,aif,aiff,pcm,lpcm

これで、上記の拡張子は変換することなくDMRであるN-50に送出されるようになり、DMS役のfoobar2000を動かしているPCの負担は更に減る形となりました。

foobar2000をDigital Media Server(DMS)として使う

さて、DMCは用意できましたが、DMS(Digital Media Server)がまだありません。UPnPではWindowsのファイル共有は見つけてくれませんので、何らかのUPnP対応メディアサーバーを動かさないといけないのですが、ここでもfoobar2000が活躍します。

今回は24時間動かしたままの自宅TV録画サーバーにfoobar2000を入れて、DMSだけを行うように設定しました。
設定はfoobar2000内の「Preferences」から行います。

まずは、foobar2000が音楽ファイル格納場所として認識するフォルダを登録します。

fb2k-dms-001

 

ウチの環境ではネットワークドライブ(Mドライブ)に、WindowsServer2008上の共有フォルダを設定しており、ネットワークドライブ中の「Music」フォルダを登録しました。登録後はfoobar2000によって自動ファイルスキャンが行われ、foobar2000のアルバムリストにファイルが登録されていきます。

次に「Tools→UPnP→Server→Basic Setting」にて、稼働させるサーバー(DMS&DMR)を設定します。

fb2k-dms-003

 

今回はMedia Server(DMS)だけ「Server is started」状態にし、サーバー名を変更しました。

「Always use the Default streaming profile for all devices」はチェックを入れています。このチェックは、DMSに接続してくるDMRの能力に合わせて設定プロファイルを切替える機能を有効にするかどうかだと思うのですが、その機能は使わないためです(下記参照)。

次は「Content」を設定します。ここはデフォルトのままでも良い感じですが、自分には必要の無いビュー項目があったので幾つか外しています。
(画面を見て頂くとわかりますが、DMSを選んだ後に出るアルバムやプレイリストビューといった表示項目を設定しています)

 

fb2k-dms-004

この画面の下部に「Customize Media Library Tree」ボタンがありますが、ここも変更しています。デフォルトで登録されている「アルバム・アーティスト」や「アーティスト」といったビューは使っていないので、表示されたファイルの元ファイルを(XML)をテキストエディタで削除し、一番使う「Folder」ビューを一番上に持ってきてあります。

fb2k-dms-005次に「Straming Profiles」を設定。ここではDMRへ送り出すストリームの設定を行いますが、使っているDMRの性能に合わせて設定を行わないと、適切なフォーマットが送信されなくなってしまいます。N-50はネットワーク経由でも192/24データを受けてくれるので「Renderer Capabilities」はsamplerate rangeを44100~192000、Max bit depthを24へ変更しました。

次の「trancecoding to MP3」は特定のフォーマット(拡張子で判定)をMP3に変換して送出する機能のようですが、使わないため「never」にしています。

その下の「Decoding to PCM」は登録した拡張子以外のフォーマットを、PCMに変換して送出するかどうかの設定かと思われます。更にそのフォーマットをWAVE互換にするのが、リニアPCMで送るかといった設定かなと。これもDMRが対応していないフォーマットをフォローするための機能の一つで、N-50は2年前の製品とはいえファームウェアアップのおかげもあって対応フォーマットは多いため「Never」にしています。「Always」にしています。「Decoding to PCM」部分について間違いがありましたので、訂正も兼ねて別エントリーを作成しました(2014/4/19追記)。

ここまで設定したら完了で、OKをクリックし設定画面を閉じ、foobar2000を再起動します。再起動するのはライブラリ内容がDMS部分に反映されないためです。本来は自動更新なのだろうと思いますが、自分の環境ではその連携が上手くいきませんので、手動再起動しています。

設定が完了した後はハイレゾファイルなどを再生して、オリジナルファイルのフォーマットのまま再生されているか確認します。N-50は本体側に液晶画面があるので、この点はラクです。

なお、DMSとしてのfoobar2000は起動させたままですが、CPUパワーとメモリは殆ど使っておらず、本来のTV録画には全く支障がありません。

fb2k-dms-007fb2k-dms-008

 

 

 

フォーマット変換機能を使用した場合は不明ですが、素のまま送出している限りは「そよ風」レベルでした。