SlideShare 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

What's hot

Logitech
LogitechLogitech
Logitech
guest6f2fed
 
カンパイペッパー
カンパイペッパーカンパイペッパー
カンパイペッパー
Yusuke Matsushita
 
Raspberry Piで音楽を楽しもう!
Raspberry Piで音楽を楽しもう!Raspberry Piで音楽を楽しもう!
Raspberry Piで音楽を楽しもう!
Takeshi Matsumoto
 
5分間ラズパイオーディオLT-東海道らぐ編-
5分間ラズパイオーディオLT-東海道らぐ編-5分間ラズパイオーディオLT-東海道らぐ編-
5分間ラズパイオーディオLT-東海道らぐ編-
Takeshi Matsumoto
 
20141115 fx os-codereading
20141115 fx os-codereading20141115 fx os-codereading
20141115 fx os-codereading
Noritada Shimizu
 
20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ss20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ss
Ayachika Kitazaki
 

What's hot (6)

Logitech
LogitechLogitech
Logitech
 
カンパイペッパー
カンパイペッパーカンパイペッパー
カンパイペッパー
 
Raspberry Piで音楽を楽しもう!
Raspberry Piで音楽を楽しもう!Raspberry Piで音楽を楽しもう!
Raspberry Piで音楽を楽しもう!
 
5分間ラズパイオーディオLT-東海道らぐ編-
5分間ラズパイオーディオLT-東海道らぐ編-5分間ラズパイオーディオLT-東海道らぐ編-
5分間ラズパイオーディオLT-東海道らぐ編-
 
20141115 fx os-codereading
20141115 fx os-codereading20141115 fx os-codereading
20141115 fx os-codereading
 
20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ss20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ss
 

More from Toru Miyahara

エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
Toru Miyahara
 
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
Toru Miyahara
 
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
Toru Miyahara
 
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
Toru Miyahara
 
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
Toru Miyahara
 
SSH超入門
SSH超入門SSH超入門
SSH超入門
Toru Miyahara
 
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
Toru Miyahara
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
Toru Miyahara
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門
Toru Miyahara
 
これから始めるDevOps
これから始めるDevOpsこれから始めるDevOps
これから始めるDevOps
Toru Miyahara
 
今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門
Toru Miyahara
 
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミングやってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
Toru Miyahara
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
Toru Miyahara
 
『仮想化』ってなに?
『仮想化』ってなに?『仮想化』ってなに?
『仮想化』ってなに?
Toru Miyahara
 
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
Toru Miyahara
 
How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜
Toru Miyahara
 

More from Toru Miyahara (19)

エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
 
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
DB性能の基礎 DB性能高速化入門 〜基礎から列指向、GPU活用まで〜 宮原 徹
 
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
2024/03/02 『Linuxサーバー構築標準教科書』V4をリリースしました
 
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
2024/03/01 今さら聞けない人のためのDevOps超入門 OSC2024 Online/Spring
 
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
2024/03/01 爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
 
SSH超入門
SSH超入門SSH超入門
SSH超入門
 
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
DevOps超入門 〜DevSecOps実現に向けたはじめの一歩〜
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門
 
これから始めるDevOps
これから始めるDevOpsこれから始めるDevOps
これから始めるDevOps
 
今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門今さら聞けない人のためのバックアップ超入門
今さら聞けない人のためのバックアップ超入門
 
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミングやってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
やってみよう!Pi-Stopで学ぶRaspberry Pi+Pythonプログラミング
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
『仮想化』ってなに?
『仮想化』ってなに?『仮想化』ってなに?
『仮想化』ってなに?
 
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
オープンソースカンファレンスのご紹介@クラウド合同セミナー in 金沢
 
How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜How To Make Open Source Conference 〜OSCの作り方〜
How To Make Open Source Conference 〜OSCの作り方〜
 

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