SlideShare uma empresa Scribd logo
1 de 20
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

Mais conteúdo relacionado

Mais procurados

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-codereadingNoritada Shimizu
 
20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ss20191129 node red-ug_kitazaki_ss
20191129 node red-ug_kitazaki_ssAyachika Kitazaki
 

Mais procurados (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
 

Mais de 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/SpringToru 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
 
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
これから始めるDevOpsToru 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
 

Mais de Toru Miyahara (14)

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でハイレゾ音源を鳴らそう