raspberry piでハイレゾ音源を鳴らそう
TRANSCRIPT
Raspberry Pi でハイレゾ音源を鳴らそうみやはら とおる
@tmiyahar
2
そもそもの動機• いい音で聴きたいな〜と思って少し前に
USB DAC 「 iFi nano iDSD 」を買った
3
そしてヘッドフォン買い替え• iPhone 用インナーイヤーヘッドフォンを
nano iDSD に繋いだら左側の音が出ない?– 少し強く押し込むと音は出る
• マイク、コントロール用の 4 極プラグと相性が悪いらしい• いいや、ヘッドフォン買い替えちゃえ!
4
SONY XBA-300 購入
すごくいいけど、もう少し音に迫力が欲しいなぁ・・
5
SONY MDR-1A 購入
6
バランス接続したくなり…PHA-3 購入!
7
まさにオーディオ沼…
8
nano iDSD を再活用したいな〜• オフィス環境は PHA-3 の一択で固定された• 自宅で使っていたけど、いまいち使いにくい• ネットワークオーディオ化してリビングのスピーカーで聴きたいそうだ、ラズパイでハイレゾだ!
9
ハイレゾとは1. 録音フォーマット :FLAC or WAV の 96kHz/24bit以上が可能であること2. 入出力インターフェイス :96kHz/24bit 以上が可能であること3. ファイル再生 :FLAC/WAV の 96kHz/24bit に対応可能であること ( 自己録再機は FLAC 、または
WAV のどちらかのみで可とする )4. 信号処理 :96kHz/24bit 以上の信号処理性能が可能であること5. デジタル・アナログ変換 :96kHz/24bit 以上が可能であること6. 生産若しくは販売責任において聴感評価が確実に行なわれていること。各社の評価基準に基づき、聴感評価を行ない、ハイレゾに相応しい商品と最終判断されていること
10
ラズパイでハイレゾするには• 「 Volumio 」というオーディオプレイヤーソフトがラズパイ用イメージで配布されている– 内部的には Raspbian+MPD+ 独自 Web アプリ• MPD:Music Player Daemon• クライアントサーバー型でクライアント多数
よし、試すぞ!
11
試してみた• Raspberry Pi 3 モデル B を購入!– Amazon で 6980 円– 本体( element14 版)+透明ケース+ヒートシンク– ケースは Raspberry Pi 2 用に買った木製ケースと交換(干渉する部分はバシバシっとカット!)
• microSD カードに Volumio 2 RC1 をイメージ書き込み– RasPi 3 で Volumio 1.x 系は動作しません!
12
Volumio 2 の感想• FLAC ( 96kHz/24bit )、 WAV ( 96kHz/
32bit )も問題なく再生できた• WebUI はまぁまぁ使いやすい• /var/lib/mpd/music に対する SMB ファイル共有が作られておりファイルコピーしやすい• USB メモリを挿すだけでその中の音楽ファイルを再生できる しかし大きな課題も…
13
Volumio 2 で DSD が再生できない• 正確には「再生できるが PCM 変換される」– CPU 負荷が高くてプツプツ切れる
• Volumio 2 から DoP ( DSD over PCM )のOn/Off 設定が無くなった
• ネットで調べてみると再生できている人もいる– そもそも RC 版なので報告例が少なすぎて・・よし、切り分けだ!
14
DSD ( Direct Stream Digital )とは• ΔΣ 変調を利用したサンプリング方式• 1bit で表す• DSD64 ( 2.8MHz )、 DSD12
8 ( 5.6MHz )、 DSD256 ( 11.2MHz )など– 数字は CD の何倍、という意味
• DSD 再生に対応したオーディオインターフェースが必要
15
DoP による DSD 再生方式• DSD データを DAC に如何に送り込むか?• ネイティブ DSD 再生サポートした DAC は少ない• PCM のフリをして送り込む DoP ( DSD
Audio over PCM Frames )が主流
PCM 再生の 24bit のうち、先頭 8bit をマーカー、後ろ 16 ビットを DSD データとして扱う
16
行った切り分けA. Raspberry Pi 2 で Volumio 1.55 を動かしてみるB. 自分で MPD を入れてみる– Raspbian を microSD カードにイメージ書き込み– $ sudo apt-get install mpd mpc– /etc/mpd.conf で HW 設定変更と dop "yes" を設定どっちも DSD 鳴るじゃん!?でも、実際には試行錯誤が…
17
DoP で必要なデータ転送レートDSD種別 DSD DoP
DSD64 2.8224MHz/1bit 176.4kHz/16bitDSD128 5.6448MHz/1bit
6.1440MHz/1bit352.8kHz/16bit384kHz/16bit?
DSD256 11.2896MHz/1bit14.1120MHz/1bit
705.6KHz/16bit768kHz/16bit?
DSD512 22.5792MHz/1bit 1,411.2KHz/16bit
データ転送量の計算例( 2,822.4kHz×1bit ) ÷16bit= 176.4kHz※実際には 24bit転送
18
DSD128 再生状況の確認$ cat /proc/asound/card1/pcm0p/sub0/hw_params A. 正常に DoP で再生できている場合 – access: RW_INTERLEAVED – format: S32_LE – subformat: STD – channels: 2 – rate: 352800 (352800/1) ←352.8kHz で DAC に送信
B. PCM 変換されている場合– rate: 384000 (384000/1) ←DAC の仕様の最大値
19
DSD64 、 DSD256 再生状況の確認$ cat /proc/asound/card1/pcm0p/sub0/hw_params • DSD64– rate: 176400 (176400/1) ←176.4kHz で DAC に送信
• DSD256– rate: 705600 (705600/1) ←705.6kHz で DAC に送信– 1回目再生した時に
20
まとめ• DSD を使わないなら、普通に使う分には
Volumio 2 で問題なし–早く正式版が出るといいね
• マニアックにやるなら、自分でゴリゴリと MPD を入れてクライアント入れてやるべし–色んなクライアントがあります