今年で67になる母は、つい先日までイナカの実家で一人暮らしをしていました。
そんな67の母は私のすすめで2015年9月にDENONのネットワークオーディオRCD-N9を購入。
CDとラジオ、そして海外のネットラジオを楽しんでいました。
(購入当初はらくスマのdヒッツをBluetooth経由で聞いていましたが、Bluetoothが面倒なのか、dヒッツが高かったのか、聞くのをやめてしまいました。)
そこで、よかれと思いRaspberry Pi 2 Model Bを調達し、OpenMediaValueをインストールして、手持ちのCDを全てリッピングして保存、リッピングのやり方も解説して置いていきましたが、こちらも使われずにいたようです。
CDで聞けるなら、CDを入れ替えた方がいいようです。
そこで、弟夫婦との同居を機に、Raspberry Piを引き上げてきました。
そのRasoberry Piに第二の人生を送ってもらおうと、寝室のメディアレンダーとして活躍してもらうこととしました。
忘れないうちにインストール記録です。
OSはRaspbian Stretch Liteを、NOOBSを使わずに、イメージを直接SDに焼いて起動し、有線イーサを使ってdhcpcd.confで固定IPにすること、自分の持っている秘密鍵でSSH接続できるようにすること、デフォルトのpiユーザーをsudo出来ないようにすること、sudoにパスワードが必要になるようにすること、自分がrootにsu(Switch User)できるように設定しました。
このあたりは難しくないので他に譲ります。
そして、sudoは面倒なので、rootで作業してしまいます。(よい子はまねしちゃだめ)
ケースから出しているので、こんな感じです。
Raspberry Piのデフォルトアナログ音声出力は音の悪さに定評がありますので(笑)、USB Audioに変えます。
たまたま以前まで使っていたBEHRINGER UCA202 U-CONTROLが手元にあったので、こちらを使います。
中身はTI PCM 2902のようです。たいへん素直なデバイスです。
せっかくデジタルOPT出力があるので、MARANTZのNA7004に入力して音出しを試みます。
NA7004って既にレンダラーじゃん!っていうツッコミはなしでお願いします。
完成したら別の部屋で使いますので・・・。
まずはAirPlayのレンダラーになっていただきます。
shairportの後継、shairport-syncを使います。(後継と言っても派生のようですが)
さて、githubからshairport-syncをgitしてautoconfしてmake・・・とおもったら、stretchはもうパッケージが準備されています。
さすが最新OS!
root@raspberrypi:# apt-get install shairport-sync
さて、設定しましょう。
たぶん、shairport-syncを動かすためのユーザーが必要でしょうから、作ります。
root@raspberrypi:# groupadd -r shairport-sync
root@raspberrypi:# useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync
デフォルトのアナログやHDMI出力から音を出すわけではないので、出力先を確認しておきましょう。
再生ソフトaplayの機能を借りて、再生デバイスの一覧を出してもらいます。
root@raspberrypi:~# aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
サブデバイス: 8/8
サブデバイス #0: subdevice #0
サブデバイス #1: subdevice #1
サブデバイス #2: subdevice #2
サブデバイス #3: subdevice #3
サブデバイス #4: subdevice #4
サブデバイス #5: subdevice #5
サブデバイス #6: subdevice #6
サブデバイス #7: subdevice #7
カード 0: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: CODEC [USB Audio CODEC], デバイス 0: USB Audio [USB Audio]
サブデバイス: 0/1
サブデバイス #0: subdevice #0
USBはカード1のサブデバイス0なので、hw:1,0かplughw:1,0のどちらかを指定することとなります。
shairport-syncのコンフィグはお行儀悪く、/etcの直下にshairport-sync.confがあります。
root@raspberrypi:~# nano /etc/shairport-sync.conf
general =
{
で始まる項目を設定していきます。
コメント多過ぎですね(笑)
まずは、AirPlayデバイス名を決めるので、name =の前のコメントアウト//を消して、ホスト名をデバイス名にします。
name = "%H"; // This means "Hostname" -- see below. This is the name the service will advertise to iTunes.
soxrを使うと音が良くなると聞いたので、// interpolation = "basic"を下記のように変えます。
interpolation = "soxr"; // aka "stuffing". Default is "basic", alternative is "soxr". Use "soxr" only if you have a reasonably fast processor.
ALSAドライバーを使うので、一応明示しておきます。
output_backend = "alsa";
なんか音が小さいな、と思ったら、ボリュームコントロールが有効でした。無効にします。
ignore_volume_control = "yes";
続いて
alsa =
{
で始まる項目を設定していきます。
USB Audioにアウトプットするので、
output_device = "hw:1,0";
mixer_control_name = "PCM";
mixer_device = "default";
に変更します。("hw:1,0"は"plughw:1,0"でもOK。)
では、nanoを閉じましょう。ctrl + xでyですね。
次に、デーモンを自動起動する設定と、実際に起動するところです。
まずは、raspbian起動時に自動起動するように設定。
root@raspberrypi:~# systemctl enable shairport-sync
では、最後、祈るように起動しましょう。
root@raspberrypi:~# systemctl start shairport-sync
なにかいろいろ(最初にgithub版をmakeしたものをインストールしたので、アンインストールしてパッケージをapt-getしたため)やっているうちに、"Failed to attach mixer"と出てきました。
Raspbian自体を再起動するとしっかりと直りました。
このFailed to attach mixer
は、ユーザーshairport-syncをグループaudioに入れていないことによって、ミキサーが操作できないために起こるエラーです。
さて、iPadから再生してみましょう。
ちゃんと選べて再生できるようになりました!!