外部クロックでラズベリー パイからデータを出力してみる

shapeimage_1-42

Raspberry pi3でミュージックプレーヤー3

前回は、OS(カーネル)を弄って周波数補正を止めることで強制的に時間軸の揺らぎなくしてみました。
これはとても効果抜群だったのですが、 周波数の補正が効かないため再生速度とピッチが正確ではなくなるという副作用があります。
(録音時点のピッチがどれだけ正確かは別問題として、ファイルフォーマットとして指定されたサンプリング周波数から少しずれた周波数で再生されるということです。)

クロックタイミングの揺らぎを排除し、かつピッチ/時間ズレも排除するにはどうするか。。
タイミングの揺らぎもピッチシフトも無いクロックを外部に用意して、そのクロックに合わせてデータを出力できれば良いのですが。。

はい。

ラズパイはファイルのサンプリング周波数を外部に通知しそれに合わせて入力される外部クロックに合わせてデータを出力するスレーブ動作が可能なんです。
(ラズパイのLRCK、BCKのポートは出力だけでなく入力にもなります。)
また、それに対応した制御機能とクロックを搭載したDACボードも販売されています。

ここまで来たら、ラズパイから直接出力されるタイミング補正なしクロックと、外部クロックのどちらが好みのサウンドになるのかということを確認したい。
ということで、今回はこの「外部クロックでラズパイのスレーブ動作」を試してみましょう。

ラズパイをスレーブで動作させるDACボードが販売されているとは言っても種類は少なく、2016年8月現在2種類しか見当たりませんでした。(他にもあったら教えてください)

ひとつはスイス製の HiFiBerry DAC+ Pro
https://www.hifiberry.com/product/hifiberry-dac-pro/
もうひとつは日本製の SabreBerry32
https://www.switch-science.com/catalog/2812/
です。

HiFiBerry DAC+ ProはDACがTiのPCM5122でクロックはFox ElectronicsのXpressO、
SabreBerry32はDACがESSのSABRE9018Q2Cでクロックは日本電波工業のNZ2520を使用しています。

2017.3.14追記
HiFiBerryDAC+Pro互換のmsBerryDACというのもあるようです。
https://bispa.co.jp/1698
PCM5122でクロックはMEMS、電源は負電源含めて低ノイズレギュレータで構成という意欲的な仕様です。
追記ここまで

性能的にも回路構成やボードのアートワーク的にもSabreBerry32はとても魅力的なのですが、¥19kという価格は予算オーバーなのと、入手性が芳しくない(個人製作のボードで、頒布されると瞬殺で在庫切れになるほどの商品です)ので、HiFiBerry DAC+ Pro($44.90)とNDKのNZ2520($8x3個)を注文しました。
(HiFiBerryにはもうひとつ魅力がありますがそれはのちほど)

まずはラズパイにHiFiBerry DAC+ Proだけをつないで単体テストします。
shapeimage_2-20

MPDは、LightMPD1.0.2とVolumio2が、HiFiBerry DAC+ Proとの組み合わせによるラズパイのスレーブ動作に対応していますので両方を試してみます。

LightMPD1.0.2(オリジナルカーネル)で確認したところ音は出るのですが、なんか変です。
ぐにゃぐにゃフワフワな音でどうにも落ち着きません。
しかも曲の途中で不意に左右が入れ替わったりします。
なんじゃこりゃ?
Volumio2はちょうどRC2 Hotfixがリリースされていたのでそちらでチェックしたところ、こちらはフワフワせずに音が出ます。

いろいろ調べたら、44.1kHz/16bitデータを再生していると発生する不具合があるようで、ラズパイ3とスレーブ動作の組み合わせ特有の症状のようです。(またまたラズパイ3にした弊害が。。)
原因はカーネルのバグ(割り込みの競合)とのことで、4月のある時点以降のカーネルでは直っている模様。
Volumio2 RC2 Hotfixは7月リリース、LightMPDは3月リリースですので、多分コレで症状が出たりなかったりの違いが出ていたんですね。
LightMPDでも「例の」改造カーネルは5月時点のソースを使ってコンパイルしていますのでこちらを使って確認したところ、バッチリOKでした。

さて、外部クロックによるスレーブ動作はしましたが、このままでは周波数補正停止クロックと外部クロックの違いについて比較しようにもDACそのものが違うので比較になりません。

ここで、HiFiBerry DAC+ Proを選択したもうひとつの理由(魅力)が効いてきます。
HiFiBerry DAC+ Proには、追加でGPIOとI2S出力ヘッダピンを立てるランドがあります。
そこからさらに外部のDACに信号を供給できるんです。
しかも、MCKも出力されます。(マスタークロックを積んでるのですから当たり前ですね。)
こちらの信号をES9023に供給してあげれば、ラズパイの補正停止クロックと外部クロックの比較が可能になります。
早速半田付け&結線して確認です。

そのサウンドですが。。
私の好みとしてはラズパイの周波数補正停止クロックの圧勝です。(苦笑)
外部クロックはそれ単体ではとてもいい感じに聞こえるのですが、比較すると空間感や定位感がずいぶん違い、補正停止クロックの方がすっきりさわやかです。

しかし、外部クロックが負けっぱなしでは折角の追加出費が無駄になります。(そこかよ!)
ここでHiFiBerry DAC+ Proに搭載しているクロックをNDKのNZ2520に交換。
併せてES9023のクロックもNZ2520の80MHzに交換して再度比較してみます。
img_4559

をを!!
外部クロックもいいじゃないですか。
ラズパイの補正停止クロックとほとんど違いが判りません。
ここまで来たら、ラズパイの出力にMCKがあれば、同期MCK同士での比較も可能になりますので、少し考えてみたいと思います。
 
 
冒頭の写真はPCM5122と、44.1k系、48k系クロック搭載のHiFiBerry DAC + PRO
クロックにうっすらとXpressOとあるのが読めます。