RoonBridge していた Raspberry Pi 3 に、Shairport Sync もいれて iPhone から Apple Music でも Google Music でもなんでも AirPlay で受けられるようになって、Chord の Poly みたいな Raspberry Pi 3 になった( Chord Poly になったとは言ってない
音楽を聴くのが好きなひとの間で好評の Roon なのですが、実際素晴らしいです。イヤホン沼、ヘッドホン沼、DAP沼、ケーブル沼とかにハマってる人、その中の5万円くらいを生涯ライセンスに捧げよくらいのクオリティです。
うちでは、紆余曲折ありましたけど、Raspberry Pi 3 に USB のサウンドデバイスさして、起動時に追加した USB 経由の無線 LAN で電源入ると宅内のAP捕まえて Roon も捕まえて、NAS が Roon Server に都合なっている曲を好き放題聴くことができるようにしていました。
紆余曲折はこのあたり
- Roon のライセンスをもっていて、USB DAC が余ってたりすると、Raspberry Pi 3 で楽しい事ができる - くるえるはてなくしょん
- Raspberry Pi 3 B で RoonBridge すると、有線だと安定だけど、Wi-Fi の無線でちょっと不安定で、どうも Power Management off がよいみたい - くるえるはてなくしょん
- Raspberry Pi 3 を RoonBridge して使ってるわけですが、Raspberry Pi 3 の内蔵 Wi-Fi は結局貧弱貧弱なのでアンテナ付きUSBドングル買った - くるえるはてなくしょん
- Roon のライセンスと、Raspberry Pi 3 ( NAS がいけてる場合に限る ) - くるえるはてなくしょん
それで、良かったんですけど、Google Music も Apple Music も使えて、なんでも AirPlay できて Roon Remote にもなる iPhone (画面割れてるけど)もあります。じゃあ、Raspberry Pi 3 に AirPlay できる機能をちょい足ししたら、自分で音源持ってる曲は Roon で、そうでない曲は Google Music なり Apple Music なりでも聞けて、なんなら Amazon Music なんかもできる.. みたいになると思われて、フリーソフトありそうだよな... と思ったら、ありました...。ハッカーすごい。Shairport Syncというプログラムがあって、これを適切に設定すると、iOS 機器や Mac の AirPlay (音声のみ)の対象に Raspberry Pi 3 や めぼしい LInux ディストリビューションなんかでも対象にすることができると思います。
参考にさせていただいたサイトが、
- ALSA使用時のデフォルトサウンドカード設定法のまとめ(&同時再生問題の解決法) - Varg (サウンド関連)
- ShairportからShairport Syncに乗り換える | count0.org (Shairport Sync 関連)
上記になります。ありがとうございます。
まず、サウンド設定
Raspberry Pi 3 は、bcm2835 の基盤についてくるサウンドがあって、それ以外でだいたい usb のサウンドデバイスをつないで使っているケースがおおいと思います。USB のバスパワーのスピーカーのOlasonicとか、あるいは、Chord Mojo とか、ifi-audio の iDSD とか、あるいは、Massdrop の Grace Design のやつとかですね。
それで、サウンドですけど、 USB の機器をふたつもみっつもさしても Roon ではへっちゃらだったのですが、システム的にはめんどくさいので、ひとつだけとりあえずつなぎます。
そうすると、
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: DAC [Explorer² USB DAC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: 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: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
こんな風になります。この場合は、card 1 がデフォルトの基盤のbcm2835で、card 0: DAC [Explorer² USB DAC] が、USB DAC です。MERIDIAN !! フジヤエービックさんでバーゲンでした。
それで、
$ cat /proc/asound/modules
0 snd_usb_audio
1 snd_bcm2835
となってるので、
$ cat /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
となるように、/etc/modprobe.d/alsa-base.conf を編集します。
これで、システムが最初にみるサウンドの最初が usb のサウンドデバイスになります。
このあたりで、上記の ALSA使用時のデフォルトサウンドカード設定法のまとめ(&同時再生問題の解決法) - Varg にお世話になってました。
つぎに、Shairport Sync に必要なライブラリのインストール
ここからは、ShairportからShairport Syncに乗り換える | count0.org のお世話になります。
まず、Shairport Sync に必要なライブラリをたーっといれます。
$ sudo apt-get update
$ sudo apt-get upgrade
はお約束。
ついで、make するのに必要なライブラリ、
$ sudo apt-get install autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev libsoxr-dev libssl-dev
あと、私のところでは以下も必要でした。
$ sudo apt-get install libavahi-client-dev
これがないと、configure 通らなかった。
あとは、まあ git
$ sudo apt-get install git
ここまでで、パッケージの準備は完了。
ここから、Shairport Sync
$ git clone https://github.com/mikebrady/shairport-sync.git
まず、もらってきます。
$ cd shairport-sync
ディレクトリに入ります。
$ autoreconf -i -f
$ ./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
$ make
作ってみる。だいたいうまくいくはずですが...。私はここで、avahi の client がないとか言われましたけど、そこくらいでした。
うまくいったら
$ getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
$ getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null
守り神になってもらう準備を。
それからインストール
$ sudo make install
このあとで、Shairport sync が起動して貰えばよいのですが、その時に avahi-daemon の再起動したほうが良さげでした。
自動起動の登録をします。
$ sudo systemctl enable shairport-sync
avahi-daamon install のくだりは人によっては不要です。
$ sudo apt-get install avahi-daamon
$ sudo systemctl enable avahi-deamon
あとは、設定ファイルが /usr/local/etc/shairport-sync.conf にあるので、こちらを編集します。
general =
{
name = "RasAir";
interpolation = "soxr";
(略)
として、名前と、あとせっかくなので soxr 使います。ちょっと音が良い気がします。
それから、再起動。
$ sudo systemctl restart avahi-daemon
$ sudo systemctl restart shairport-sync
私はこれでめでたしめでたしでした。
こんな風に AirPlay 先に見えてれば大丈夫。再生の最初だけ遅いですけど、再生しだしてからは安定走行でした。
これで、Roon も AirPlay も、みたいな、最強宅内デジタルトランスポートネットワークプレイヤーができた!!
なお、Chord から Poly が出る模様...。
DLNA まわりはまたちょっと違いますけど、Raspberry Pi 3 で人力でなんちゃって Poly みたいにはできてハッピーではあります。持ち出すようではなくて、あくまで宅内ですけれど。ただ、宅内だと モバイルバッテリーでもいけます。モバイルルータもってたら... Roon は無理にせよ... えっと話があやしくなってきました。
では、良い人生を。
LOTOO 【ハイレゾ音源対応】ポータブルオーディオプレーヤー PAW5000
- 出版社/メーカー: Beijing Infomedia Digital Technology
- メディア: エレクトロニクス
- この商品を含むブログを見る