ラズパイは美味しいか!?(その3):
続けてラズパイ試食中の話。一応Raspbian-LiteベースでMPD再生の基本的なところは出来たのだが、さてこれで満足という訳にはいかない。次のステップに向けての学習を続けようと思う。
基本的な構想としては、GPIOベースのI2S/SPDIF基板にチャレンジしたいのだが、そこに至る前にDSD音源の対応について確認を取っておかねばならないと思う。S/PDIF出力を前提とすると、当方の環境構成ではDSD音源はDSDtoPCMを行ってあげる必要がある。この部分については、VoyageMPDの時代からJPLAY FEMTOに至る現在まで試行錯誤の連続であったが、一応自分なりの方法論は確立できているようにも思う。
MPDの場合、DSDtoPCMを行わせようとすると、出力のサンプルレートをFLAC音源も含めて一義的にサンプルレートを固定(176.4K/24bit)しなければならない。この前提はかなり不都合ではあるがこれは仕様なのでやむを得ない(lightMPDはこの点を独自に改善しているのだが)。またサンプルレートコンバータとしては「SoX」を使うことが音質的に優位であることも経験上把握している。従って、今般のラズパイ上の新MPD環境でも本来的にはあまり問題にはならないはず。その上で、新しいMPDは「resampler」のプラグインとしてSoXを定義できるだけではなく、マルチコアCPUに対応した「OpenMP」というマルチスレッドオプション設定を持っている。ラズパイ3B+はQuad Coreなので、それを活かせればさらに良い結果となるかな、と考えた。これができれば、I2S/SPDIF構成に向けたステップとして一歩前進となる、、、
(注記)VoyageMPD環境下のMPDでは「resampler plugin」の指定はまだできないバージョンであったため、「samplerate_converter」での設定となりマルチスレッドのオプションは指定できない。従って、OpenMPは未だ試したことがないのだ。
Raspbian-Lite上の環境設定のための操作としては、
1.SoXをインストールする。
2.mpd.confを編集して
(1)format "176400:24:2" とALSAに固定出力を追加して記述する
(2) resampler pluginを記述する(詳細は下記)
ということでOKのはず。SoXをインストール、mpd.confを書き換えてMPDをリスタート。再起動時にもエラーは出ないので、これでオッケー、オッケーと単純に考えた。が、、、、MPadを起動させると挙動がおかしい。再生リスト上に「Nothing Playing」というエラーメッセージ?が点滅表示され、実際に選曲も再生も不可。
どこか間違えたかな? ということで再度確認、誤設定をしているところは無いようにも思える。となると、基本的にどこか間違っている? あるいは何らかの制約で実行不能なことをさせようとしている? 頭の中を整理してみるが、思い当たるフシはない。何か勘違いしているか?
じたばたしても仕方ないので情報収集を行ってみるが、あまり参考となる情報はヒットしない。まぁ、こんなことをしようとする人間はあんまりいないだろうし、、、lightMPD関連ではこの手の情報は情報はあるのだが、現状はRaspbian-Liteベースなので全く同じ訳ではなく頭の整理にはなるが、決定打はない。またlightMPDを参考としても当方の理解や設定に間違っている部分は無いようにも思える。さて、困った。
このような場合は地道に原因の切り分けを行っていくしかない。そこで一旦設定を戻してひとつひとつ確認していく。そこで判明したのは「resampler plugin」の設定を入れると駄目ということ。えっ? という感じである。そこで、旧来型の指定である「samplerate_converter "soxr very high"」としてみる。あらら、全然問題なくDSDtoPCM(DSF音源の176.4KHz/24ibtへのダウンコンバート)が出来てしまうではないか!? ということは「resampler plugin」が未だサポートされていないバージョンなのか!? いや、これは全く迂闊であった。改めて考えてみると、mpdのバージョンを確認していなかった。でも、それならば何故エラーにならずmpdが起動してしまうのだ? ここでまた振り出しに戻る。そもそもresamplerがサポートされているバージョンになったのはもう相当前だし。このままでは納得がいかないな~。MPDのバージョン確認を「mpd --version」コマンドで改めて行うと、何とお答えはMPD 0.19.0、がっくり!! resampler pluginがサポートされたのは2017年1月リリースのMPD 0.20.0からなのだ。あまりにも古い(MPD 0.19.0は2014年10月リリース)MPDのバージョンに嘆息してしまう、、、まぁALIX3D2上のMPDに比せば新しいとは云えるのだが。
もちろん、DSDtoPCMだけを考えれば、旧来型の指定でも良いのだが、せっかくのQuad Coreを活かすOpenMPの指定が出来ないのだ。是非ともマルチスレッドを試したいと思っていただけにちょっと落胆が無くはない、、、これでもダウンコンバート自体は出来るので実際上はOKなのだが。
一方で、もしかしたらこれはRaspbian-Liteのディストリビューション自体が古い状態で更新されていない? ということで、ここはRaspbianの方で為念確認しておく必要があるだろう。幸いにもRaspbian-Liteは先にインストールしたRaspbianとは別のマイクロSDカードに入れてあるので、ここはマイクロSDカードの差し替えを行えば確認できるのだ。
Raspbianの方も確認してみたがMPDのバージョンは同じ0.19.0であった(落胆!)。ダウンロードページ上はどちらも2019年4月リリースのバージョンとなっているのだが、含まれているMPDは何とも古いもの。それにしても、、、、何でこんなに古いのを使っているのか。為念「apt upgrade mpd」を行ってみるが変わらず。まぁ、ディストリビューン作成時のパッケージの指定なので、upgradeをかけても普通更新されるようなことはないのだが、一縷の望みで。
なるほど、MPDなどは「音が出ればいいじゃんね」ということなのかもしれず、当方のような感覚がそもそも一般的ではないような気もしてくる。さて、どうするかな~ということで前方には曇った空。MPDを新しいバージョンにするにはコンパイルからの作業が必要になるはずなのであまり自信がない。あるいはMPD0 0.20.0以降が含まれているディストリビューションを改めて探すか。SoXのマルチスレッド処理、やっぱりさせてみたいし。ということで今日のラズパイはちょっと苦いかな、、、
(参考)resampler pluginの指定:
#
#resampler {
# plugin "soxr"
# quality "very high"
# threads "0"
# }
#
(threds=0がOpenMPによるマルチスレッドの指定、デフォルトは1で使用しない)
(追記)
考えられる選択肢として、lightMPDもあるので為念詳細を確認したが、ラズパイ用にはMPD 0.19台のバージョンのものしかない。まだ大分前に更新は停止してしまいっているようだ、残念。
4way構成の設定備忘録(2019年4月25日更新)SONY SUP-T11暫定設定値
項目 |
帯域 |
備考 |
Low |
Mid-Low |
Mid-High |
High |
使用スピーカー ユニット |
- |
Sony SUP-L11 |
FPS 2030M3P1R |
Sony SUP-T11 |
Scan Speak D2908 |
- |
スピーカーの 能率(相対差) |
dB |
97 (+7) |
90 (0) |
110 (+20) |
93 (+3) |
|
DF-65の 出力設定 |
dB |
+2.4 |
+0.7 |
-9.5* |
+4.8 |
|
マスターボリューム アッテネーション |
dB |
-3.0 |
-0.0 |
-0.0 |
-0.0 |
|
パワーアンプでの GAIN調整 |
dB |
0.0 |
0.0 |
-6.0 |
-6.0 |
|
スピーカーの 想定出力レベル |
dB |
96.4 |
90.7 |
94.5 |
91.8 |
|
クロスオーバー 周波数 |
Hz |
pass ~ 200 |
200 ~ 1000 |
1000 ~ 2500 |
3550 ~ pass |
Low Pass ~ High Pass |
スロープ特性 設定 |
dB/oct |
flat-24 |
48-48 |
48-12 |
24-flat |
Low Pass High Pass |
DF-55 DELAY 設定 |
cm |
-37.0 |
-0.0 |
-58.5 |
+0.0 |
相対位置と 測定ベース |
極性 |
- |
Norm |
Norm |
Norm |
Rev |
JPLAY FEMTO 環境下 |
DF-55 DELAY COMP (Delay自動補正) |
- |
ON |
自動補正する |
DF-55デジタル出力 (Full Level保護) |
- |
OFF |
保護しない |
|