mpdにちょっとしたバグがあるので
ツイッターの方でちらっと投稿しましたが、MPDのDoP出力まわりにバグがあります。
DSDを再生したとき、様子がおかしい。。。 DoPマーカーが付いていないじゃないか!
現在最新のvolumio2もmoodeでも同様で、dop "yes" と指定していてもPCM変換されてしまいます。
<< DoPではなくPCMが出力されている >>
先日の記事のとおり /etc/mpd.confに以下の1行を追記すると
audio_output_format "*:32:*"
CDからリッピングしたWAV/FLACのI2S信号は16bitモードではなく32bitモードで出力されるようになります。
ここまでは正しい動作です。
mpd.confに32bit出力を指定するとDoP出力できない
DSDを再生したときにDoPではなく、PCM変換が働くようになっていました。
ためしに、audio_output_format "*:32:*" を削除すると
<< DoPマーカー付きでDSDがI2Sに出力されている >>
このようにDoPが出力されます。
MPDの不具合? mpd.confで対処できない
静止したオシロ波形では8bitのマーカーの判別はちょっと分かりにくいですが、2.8MHzDSDを再生したDoP出力は176kHzが正解です。一番上の写真では384kHzになっていますね。
再生しているfsを見るだけなら下記のコマンドでも確認可能です。(正確に判断するにはマーカーの有無をちゃんとみないといけない。)
$ cat /proc/asound/card0/pcm0p/sub0/hw_params
(環境によりcard1の場合もある)
MPDオプションを調べて色々試してみたのですが、どうもダメなようです。これはバグですね。
2.8MHzDSDをDoP出力すると fs=176.4kHz になります。
dsd2pcmでPCM変換されると2.8MHzの1/8(=352.8kHz)になります。DACが352kHzに対応できないときはDACの最高fsに変換されます。
2つの対策案
正攻法として、
1.MPDのバグを修正する。
でも、手軽なのは、
2.PCM5122ドライバを改変して16bitサポートを切る。
※ PCM5122は16bitもサポートしているけど、このときのSB32+PROは32bitのみ対応だったので、16bit-I2S信号をだすと倍速再生してしまいました。
PCM5122ドライバを改変
MPDをコンパイルするのは、わりと大変なのでドライバをサクっと改変してみました。
ドライバソースpcm512x.c の snd_soc_dai_driver pcm512x_dai の中の
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
赤文字の部分を削除すると16bit対応がなくなり32bitモードで出てきます。 24bitはRPiが対応していないので、残った32bitモードだけになるからです。
これで完璧です。mpd.confに32bit出力を指定しなくても32bit-i2sで出るしDSDを再生するとDoPマーカーがちゃんと付きます。
ですが、せっかく専用ドライバが無くなるのに、またドライバが必要なのか?という残念なことになてしまいますね。
第3の案
ES9218Pデータシートをよく見るとマスター時に16bitをサポートできることが判明いたしました。(スレーブでは従来から16bit対応できてます)。 MCLKとデバイダーの関係もシステムクロックをちょっと工夫することで対応可能っぽい。
ということで、第3の対策案です。
最初からちゃんと読め!ってことなんですけども SB32+PRO DoPのファームウェアを変えてテストしてみました。
完成したファームウェアは、PCM5122との互換性が高まり、mpd.confも触らずにすむようになりました。
めでたしめでたし ということで出荷準備に入ろうと思います。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« SB32+PRO DoP 初期ロット納入 | トップページ | SB32+PRO DoPの専用ページつくりました »
「SB32+PRO DoP」カテゴリの記事
- ラズパイオーディオお手軽インストーラー[MUTE](2022.07.08)
- ラズパイをUSB-DACとしてスマホに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.10.16)
- ラズパイをUSB-DACとしてSoundgenic-NAS、Linuxに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.09.24)
- ラズパイをUSB-DACとしてWindows10に認識させる方法 gadget mode(OTG Mode)(2020.09.22)
- SB32+PRO DoP売り切れてました。(2020.03.12)
コメント
« SB32+PRO DoP 初期ロット納入 | トップページ | SB32+PRO DoPの専用ページつくりました »
対応お疲れ様です
読む分には見つかって、結果これで行けます
みたいに見えますが
すごく大変だったのでは?
僕ら側は、買って使わせてもらう
それしか出来ませんが
頑張ってください
新基盤通販で買うつもりですが
時期が合えば大阪に買いに行く予定です
楽しみにしています
投稿: クドウ | 2019年2月 9日 (土) 20時21分
クドウさん
ですね。 mpdの設定でどうにかできないか? など調査とトライ・アンド・エラーを繰り返して3日間。PCM5122ドライバ改変で1日。
PICのファームウェア改変で1日。 デバッグ2日間。
などなど、時間はかかりましたが、結果的に何も気にしないで動くようになったので良かったです。
投稿: たかじん | 2019年2月11日 (月) 19時59分