オルタナティブ・ブログ > 路の上で >

日頃考えていることをぽちぽち書きます。

Raspberry PiをAirPlayレシーバーにする

»

先週書いたようにMacBook Pro 2017タッチバー無しのUSBポートが少なくて面倒なので、iTunesをワイヤレスで再生することを考えました。もともと高解像度音声で再生するためにUSB接続したのですが、最近は面倒で普通に聞いていたので、もはやこの点でも意味がありません。

少し調べると、AirPlayのOSS実装があることがわかりました。Raspberry Piでも動作するそうなので、本宅とのVPNに使用しているRaspberry Pi 3に入れることにしました。

まず、Raspberry Piに入れているOS、RaspbianがUSB接続したアンプを認識していることを確認した後、/usr/share/alsa/alsa.confを編集して、それを優先にします。
Raspbianの標準パッケージにshairplayと言うAirPlay実装があったので、インストールしたら、簡単に動作してしまいました。
これで目的達成ですが、shairplayはしばらく更新されていないですし、今はShairport Syncが主流のようなので、こちらに取り組みます。

上記リンク先のドキュメントにRaspbian含めた詳細な手順があり、ビルドに必要なパッケージのインストールまで書かれています。その通りにやって行き、インストールまで完了。ビルド時の選択でALSA、Avahi、OpenSSL、SoX Resampler Library、systemdを使うようにしました。
悩んだのは、設定。Linuxのサウンド環境を理解していないため、とりあえず適当です。それでもまともな音は出て、SoX Resampler LibraryのためかCPU使用率は30%程度。

この週末はほとんど別宅に引きこもっていたので、1日ほど再生している時間がありましたが、MacBook ProからもiPhoneからも無事に再生できました。今の問題は、一つ目はMacBook ProのiTunesから接続すると、たまにノイズ混じりになること。何度かレシーバーとの切断/再接続をすると正常になります。二つ目は特定の曲でノイズが入ること。MacやiPhone単体では問題ないので、ALACデコーダーの可能性をうたがい、Apple製に入れ替えましたが、ノイズが変わっただけ。SoX Resamplerを外しても変化無し。
他の課題は、ちゃんとLinuxのサウンド環境を理解して設定することと、Raspbian起動時にアンプの電源を入れておかないとUSB音源として認識されないこと。後者は有効な音源を動的に検出して、その時の優先度に応じて自動選択したいですが、おそらくサウンド環境(ALSA?)を理解できれば解決できると期待しています。

早く、LinuxもしくはDebian (Raspbianの元)のサウンド環境を体系的に説明したドキュメントを見つけないと。ALSAとかPulseAudioとか個々のパッケージの情報がバラバラにあって、全体が未だ分からないので。オーディオ再生に特化したディストリビューション、例えばVolumioがあることは、これを書いている時に気づきました。その方が楽なのは明らかですが、しばらく頑張ることにします。

Comment(0)