Raspberry Pi をデジタルオーディオプレイヤーにする
以前の記事でRaspberry Piとネットワーク越しにオーディオをやりとりする方法を紹介しました。
Raspberry Piをリモートスピーカーのように出力として使用する場合、Raspberry PiのDACを使って出力してもよいのですが、
固定オーディオとしてある程度のクオリティが欲しいとなると、DAC以降アナログ系は専用オーディオ機器(DAC内蔵アンプとか)を使いたくなります。
この場合、USBオーディオデバイスとして見える機器であれば直接Raspberry Piに接続すれば良いのですが、一般的には光または同軸のS/PDIF入力となります。
そこでUSB->S/PDIFコンバータを探したのですが、このあたりに落ち着きました。メーカーもわからん中華デバイスですが、2000円弱で問題なく使用できています。
ルートアール USB to 5.1ch オーディオアダプタ RA-AUD51
- 出版社/メーカー: ルートアール
- メディア: エレクトロニクス
- 購入: 1人 クリック: 7回
- この商品を含むブログ (1件) を見る
[ 3.512557] usb 1-1.3: new full-speed USB device number 5 using dwc_otg [ 3.645807] usb 1-1.3: New USB device found, idVendor=0d8c, idProduct=0102 [ 3.662375] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 3.671767] usb 1-1.3: Product: USB Sound Device [ 3.695980] input: USB Sound Device as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.3/input/input0 [ 3.732808] hid-generic 0003:0D8C:0102.0001: input,hidraw0: USB HID v1.00 Device [USB Sound Device ] on usb-bcm2708_usb-1.3/input3
alsamixerを起動してF6で"USB Sound Device"を選択すると各入出力のレベル調整ができますが、S/PDIF Outの項目はありません。
要するに常時Onの垂れ流しのようです。
pulseaudioを使用している場合は、デフォルトの出力先をUSBにしておきます。
まず pactl list sinks で出力デバイスのリストを表示します。
% pactl list sinks Sink #0 State: SUSPENDED Name: alsa_output.usb-0d8c_USB_Sound_Device-00-Device.analog-stereo Description: CM106 Like Sound Device Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 44100Hz Channel Map: front-left,front-right : Sink #1 State: SUSPENDED Name: alsa_output.platform-bcm2835_AUD0.0.analog-stereo Description: bcm2835 ALSA Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 44100Hz Channel Map: front-left,front-right :
この中で、USBオーディオをデフォルトsinkとして設定します。
pacmd set-default-sink 0
USBオーディオからデジタルアンプに光ケーブルを接続し、aplayかpaplayあたりで音楽を再生して音が出ればOKです。
aplay xxx.wav