Music Player Daemon でインターネットラジオ


概要

Raspberry PiにUSB DACとアクティブスピーカーで小型のインターネット・ラジオを作ってみたくなった。 omxplayer で SKY.FM の URL を指定するだけと考えていたのだが、omxplayer が Alsa に対応していないようで、 USB DACを使うには少々面倒だ。

そこで、MPDを入れてついでに音楽サーバー化してしまうことにした。

Tips

1. mpc idle コマンドは、曲が入れ替わるなどのイベントまで待つので、以下の様なスクリプトで 再生中のインターネットラジオの曲を表示するようなことができる。 これを小型のLCDに表示すればおもしろいかもしれない。

#!/bin/sh
mpc current
while :
do
    mpc idle >/dev/null
    mpc current
done

USB DAC

インプレスの 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

を加えれば出なくなった。

MPoD

  1. iPhone に MPoD を入れる。
  2. Raspbian に avahi-daemon を入れる。
  3. /etc/mpd.conf の以下の箇所を修正。
    bind_to_address         "any"
    zeroconf_enabled               "yes"
    zeroconf_name                  "Raspi MPD"
  4. sudo service mpd restart
  5. MPoDの設定でサーバー一覧に "Raspi MPD" が表示されるので接続すれば、リモコン操作できるようになる。

課題

  1. AirPlayをoutputで指定できれば、リビングにある AppleTV + HDMI Audio を同時に鳴らせる

リンク

参考

#amazon_associate(B00CBWMXVE)


トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS