ラズパイ用I2S DACでDSD再生 2. ドライバーのインストール

前回の続きです。

ラズパイ用I2S DACでDSD再生
ラズベリーパイからUSBを使わず、I2S接続でDSD再生するDACの考察。

ラズパイ用I2S DACでDSD再生 2. ドライバーのインストール

Volumio標準ではDSD64までしか対応できません。以下の方法でDSD128およびPCM384kHzに対応できます。

ドライバーのインストール

ES9028Q2Mを採用したI2S DACはドライバーを入れることでVolumioでもDSD128、PCM384Kまで対応できるようです。

以下、やり方を紹介ます。

下記リンクをそのまま実行しただけです。
参考: How-to port ES9028Q2M (i-sabre) driver into Volumio

全てSSHの操作です。
最新のVolumio2.389にて検証しました。

volumio@volumio:~$ apt-get install python build-essential git device-tree-compiler gcc-4.9 g++-4.9
volumio@volumio:~$ volumio kernelsource
このコマンドは時間かかるのでしばらく休憩。

#ソースファイルのリネーム
volumio@volumio:~$ sudo mv /lib/modules/4.14.29-v7+/build /lib/modules/4.14.29-v7+/source
※カーネルのバージョン(ここでは4.14.29-v7+)はタイミングによって変わる可能性があります。
コマンド uname -rv などを使って確認してください。

#ドライバーのダウンロード
volumio@volumio:~$ git clone https://github.com/SatoruKawase/I-Sabre-K2M
#ダウンロードしたフォルダへ移動
volumio@volumio:~$ cd I-Sabre-K2M
volumio@volumio:~/I-Sabre-K2M$ sudo make
volumio@volumio:~/I-Sabre-K2M$ sudo make modules_install
#ソースファイルフォルダを元に戻す
volumio@volumio:~/I-Sabre-K2M$ sudo mv /lib/modules/4.14.29-v7+/source /lib/modules/4.14.29-v7+/build
#ドライバーを適用させる
volumio@volumio:~/I-Sabre-K2M$ sudo make dtbs
volumio@volumio:~/I-Sabre-K2M$ sudo make install_dtbo
#ドライバーの変更
volumio@volumio:~/I-Sabre-K2M$ sudo nano /boot/config.txt

#### Volumio i2s setting below: do not alter ####
dtoverlay=xxx

dtoverlay=i-sabre-k2m
に書き換え

#再起動
volumio@volumio:~/I-Sabre-K2M$ sudo reboot

再起動後

#ドライバーが適用できているか確認
volumio@volumio:~$ cat /proc/asound/cards

0 [ALSA ]: bcm2835_alsa – bcm2835 ALSA
bcm2835 ALSA
1 [DAC ]: I-Sabre_K2M_DAC – I-Sabre K2M DAC
I-Sabre K2M DAC

#alsaミキサーの設定
volumio@volumio:~$ sudo alsamixer -Dhw

F6でI-Sabre_K2M_DACを選択すると、フィルターの設定が可能です。

次に、webブラウザからの設定です。
volumio.localにアクセスし、設定 > プレイバックオプション > DSD Playback ModeをDoPにします。

これで設定は終わりです。

再生できているか確認する方法

当方の環境では本体前面ディスプレイ上にDSDやPCMの周波数が出ますのでそれで確認もできますが、ディスプレイが無い場合は以下のコマンドで確認します。

#DACカード番号の確認
volumio@volumio:~$ cat /proc/asound/cards

0 [ALSA ]: bcm2835_alsa – bcm2835 ALSA
bcm2835 ALSA
1 [DAC ]: I-Sabre_K2M_DAC – I-Sabre K2M DAC
I-Sabre K2M DAC

再生周波数の確認 任意の周波数を再生しながら以下のコマンドを入力

volumio@volumio:~$ cat /proc/asound/card1/pcm0p/sub0/hw_params access: RW_INTERLEAVED

#DSD64の場合
format: S32_LE
subformat: STD
channels: 2
rate: 176400 (176400/1)
period_size: 16384
buffer_size: 65536

#DSD128およびDXD(352.8kHz)の場合
format: S32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 16384
buffer_size: 65536

#DSD256の場合 > PCM384kHzに変換されています
format: S32_LE
subformat: STD
channels: 2
rate: 384000 (384000/1)
period_size: 16384
buffer_size: 65536

ドライバーを入れる前は、DSD128の場合はPCM192kHzに変換されていました。
ただ、デフォルトの場合でもPCM192kHzへ変換されるものの、DSD256でもノイズもなく普通に音が出ていました。

従来のI2S DACの場合は、ラズパイ側のソフトウェア変換のため処理が重くてDSD256は音になりませんでしたが、このES9028Q2Mの場合は何ら問題ありません。
そのため、PCMに変換されてはいますが、普通にDSD128の再生ができていると勘違いするかもしれません。

DSD128にデフォルトで対応という表記もある意味正しいと思います。

また、このDACは従来のPCM44.1kHzとハイレゾ音源の描き分けがしっかりできていて、そのせいでハイレゾファイルの数がどんどん増えています…。

ハイレゾの音が良いかどうかは色々な要素が絡みますので難しいですが、一つの指標として2Lのフリー音源がお勧めです。
参考: HiRes Download – test bench

こんな感じで同一曲のフォーマット違いで音質のチェックを行います。
使用しているDACチップがPCM、DSDどちらにアップサンプリングするとか、音の好み、機器の相性も含めてフォーマットの違いを確認します。
あと、DSDの場合は原理的に高域側にノイズ成分がありますので、実際に高域がノイジーにならないかも1つの指標になります。

2Lのハイレゾ音源は殆どがマスターがDXDです。PCM/DSDどちらで録音されたものなのかも重要です。

おすすめのDSD販売サイト

DSDの入手先として最もお勧めなのはNativeDSD Musicです。
参考: NativeDSD Music

DSD購入時に同一価格で下位フォーマットを全てダウンロードできます。
例えばDSD256のステレオを買った場合、DSD128とDSD64のステレオ音源もダウンロードできます。

通常は最上位フォーマットだけで良いですが、複数のハードウェアを持っていて、1つはDSD256対応、別の機器はDSD64止まりの時とか便利です。


各音源のページにTech Specsという項目があり、詳細な録音情報が確認できます。
マスターはアナログなのか、デジタルの場合DSD256なのかDXDなのか、録音に使ったケーブル、エンジニア等々。

DXDマスターならDSD256じゃなくてDXDでダウンロードしようかな?とか、マスターがDSD64なら無理にDSD256要らないかとか。情報を元にダウンロードするフォーマットを考えることができます。

この部分は国内のハイレゾ配信サイトにも是非見習って欲しいですね。

最後にオマケです。

目当ての音源がハイレゾでリリースされているのか確認するのに便利なサイトです。
参考: Find HD music

コメント