いつもvoyageMPD関連では勉強させていただいています。
今回はmpd + OSSで問題が発生してどなたか経験者にお聞きしたいと書かせていただきました。よろしくお願いします。
【どうしてmpd + OSSにしたのか】
Lynx Studio AES-16をmpdで使うためOSSをmpdに接続しようと思ってUbuntu StudioにOSSを入れました。今は代案として自分で簡単なシェルスクリプトでflac/wav/alacだけはossplayで再生できるよう(osslistplay アルバム・フォルダ/*flac とか)しています。
【システム環境】
Ubuntu Studioは14.04 mpdはapt-getだとmpd 0.18.7くらいです。それ以降で若干他のOSのためにOSSの24bitPackedだかの扱いが変わっているらしいですが。その組み合わせでmpdでやったときの問題点です。PCはCore2Duo Ubuntu Studio/32bit版あるいはCore i3 Ubuntu Studio 64bit版で結果は同じです。
ひょっとして新しい版のmpd 0.18.14ならfixされているかとuildしようとしましたが、何か不足らしくこの2日ではbuildできていません。
【症状】
ossplayでは-d /dev/oss/lynxtwo0/pcm0 192K24bit.wav
とするとDACも24bitデータを認識して出します。
全く同じソースをmpdで指定して出力させるとmpd+OSSでは192Kは出ますが16bit長のデータしか出ません。
これは
/dev/oss/oss_hdaudio0/spdout0
などのマザーボードのSPDIF出力も挙動は同じでossplayでは24bitまでmpd+OSSでは16bitまでです。
わざとformat "192:24:2"とか"192:32:2"としては試したが同じ結果。
どうもOssOutputPluginの近くに何かありそうですが…probeがうまく渡っていないような?
【情報ご存知でしたら教えてください】
mpdでOSSデバイス指定したときのbit長についてきちんとprobeできている方(ちゃんとDAC側で確認できている方)はどのようにされたのか教えてください。私のところではかかりますがデータ長が16bitになって送出されています。
並行してOSSの4 Front Techに質問はしているのですが、彼らから言えばmpdはまさにサードパーティ製品なので鈍い反応です。
情報をお持ちの方、ヒントなりともお知らせいただければ幸いです。
【mpd latest】
やっとmpd-0.18-16を入れました。
以下が--versionの結果です。これでもまだOSSは16bitのみ出力です。いよいよソースをいじらないといけないのか???
それ以前のALSAでオンボードのSPDIFのmpd + ALSA経由では24bit長が出ていたのでやはりmpdのOSS関連の問題のようです。
【mpd --versionで見る】
mpd --version
Music Player Daemon 0.18.16
Copyright (C) 2003-2007 Warren Dukes <warren.dukes@gmail.com>
Copyright (C) 2008-2014 Max Kellermann <max@duempel.org>
This is free software; see the source for copying conditions. There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Decoders plugins:
[dsdiff] dff
[dsf] dsf
[pcm]
Output plugins:
null fifo oss httpd recorder
Encoder plugins:
null wave
Input plugins:
file
Playlist plugins:
extm3u m3u xspf pls asx rss cue embcue
Protocols:
file://
この件ですが、どうも OSS供給元の 4 Front Tech.に聞いても良く分からないのでmpdをハイレゾ再生には使わずにossplay+スクリプトで行くことにしました。CDリッピングの16bit depthでしたら別に何の問題もありません。
Yutaka IIDA さん、情報ありがとうございます。
OSSは音が良いので、僕も使ってみたことがあるのですが、新機能への対応がほとんど駄目で、ちょっと厳しい状況みたいですね。usb非同期転送にも対応していないようなので、旧式の音源と非ハイレソデータでのんびり音楽を聴くという使い方しかできないみたいです。
Yoさん、こん**は。
はい、4 Front Technologyは「2010年v4.2以降はOSSについて特に何もいじっていないし、その予定もない」とのことで新機能の対応は確かに厳しいです。
ただ私が別の要求(LINUXでのアクティブクロスオーバー開発)で使いはじめたLynx Studio AES-16はOSSでないとドライバがないため使っています。
mpdに関連した使い方はいわばサブの使い方です。
音質はサポートされているデバイスとデータ形式を使う限りはなかなか良いです。(例: TE7022などでのUSBデバイスなど)
ハイレゾのデータはossplayでしたら192KHz24bitまで通ります。つまりmpdでのOSSの制御の実装が悪いのだと思われます。
これはMSB TechnologyのDAC-IV Plusでデータ長、サンプルレートが表示され、かつ再現性があるので間違いないと思います。