あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

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 に都合なっている曲を好き放題聴くことができるようにしていました。
紆余曲折はこのあたり

それで、良かったんですけど、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 ディストリビューションなんかでも対象にすることができると思います。

参考にさせていただいたサイトが、

上記になります。ありがとうございます。

まず、サウンド設定

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

LOTOO 【ハイレゾ音源対応】ポータブルオーディオプレーヤー PAW5000

ちなみに、最近、お外では、AK70 とかじゃなくて、Lotoo の PAW 5000 を使っています。これについてもまたそのうち。