狠狠撸

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

More Related Content

Raspberry Piでハイレゾ音源を鳴らそう