Music Player Daemon でインターネットラジオ
Raspberry PiにUSB DACとアクティブスピーカーで小型のインターネット・ラジオを作ってみたくなった。 omxplayer で SKY.FM の URL を指定するだけと考えていたのだが、omxplayer が Alsa に対応していないようで、 USB DACを使うには少々面倒だ。
そこで、MPDを入れてついでに音楽サーバー化してしまうことにした。
1. mpc idle コマンドは、曲が入れ替わるなどのイベントまで待つので、以下の様なスクリプトで 再生中のインターネットラジオの曲を表示するようなことができる。 これを小型のLCDに表示すればおもしろいかもしれない。
#!/bin/sh
mpc current
while :
do
mpc idle >/dev/null
mpc current
done
インプレスの USB DAC (DVK-UDA01) をつないでみた。
otsuka@raspb2 ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 006: ID 08bb:2704 Texas Instruments Japan Bus 001 Device 005: ID 056e:1014 Elecom Co., Ltd otsuka@raspb2 ~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 8/8 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: DAC [USB Audio DAC], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
/etc/mpd.conf に以下の2つを設定すれば、HDMIとUSB DACの切り替え、あるいは両方で音を出すことができる。
audio_output {
type "alsa"
name "HDMI"
device "hw:0,0" # optional
format "44100:16:2" # optional
}
audio_output {
type "alsa"
name "USB DAC"
device "hw:1,0" # optional
format "44100:16:2" # optional
}
再生中に以下のような大量の警告がsyslogに出る。/var/log/{debug,kern.log} が肥大化する。
Sep 14 17:49:12 raspb2 kernel: [ 2444.870807] delay: estimated 0, actual 133
Raspberry PiをMPD(Music Player Daemon)サーバにするを参考に、
/etc/modprobe.d/alsa-base.conf: options snd-usb-audio nrpacks=1
を加えれば出なくなった。
bind_to_address "any" zeroconf_enabled "yes" zeroconf_name "Raspi MPD"
#amazon_associate(B00CBWMXVE)