delimiter

RaspberryPi で Spotify を中継して、オプティカルでアンプと繋ぐ。

これまで Spotify をオーディオアンプで再生するために Volumio を使っていた。Volumio は途中まで良かったが、バージョンアップで微妙になってしまったので、代わりに raspotify を使うことにした。


raspotify


raspotify (それから Volumio や Google Home など)は、 Spotify Connect と呼ばれる API を使っている。これは、 Spotifyアプリで音楽を再生するのではなく、Connectデバイスで音楽ストリーミングを受けて再生するための仕組みだ。 一方の Bluetooth や AirPlay は、まずアプリ端末でSpotifyからのストリーミングを終端して、それから、Bluetooth や AirPlay に送信するという二段構えになってしまう。しかも Bluetooth も AirPlay も、コーデックで圧縮・展開してしまう。だから、無駄なことをしている感じが嫌だし、音質がロストすることも嫌なのだ。トレードオフとして、Raspberry Pi をこのために待機させておくコストがかかることになる。


デバイス


  • Raspberry Pi 2 Model B
  • HiFiBerry Digi + Pro
  • オプティカル・オーディオ・ケーブル
  • オプティカル・オーディオ入力があるいい感じのオーディオ機器

セットアップ


まず、Raspberry Pi OS を準備しておく。 raspotify はイメージ配布ではなく、後からインストールできるので、他のシステムと同居することも容易い。


raspotify


公式サイトにあるワンライナーで raspotify をインストールする。


https://dtcooper.github.io/raspotify/


うまくいくと、 systemd に登録されるので、動いていることを確認する。


sudo systemctl status raspotify

HiFiBerry


HiFiBerry は RaspberryPi にいろいろなオーディオ出力を追加するためのシールドで、いろいろなバリエーションがある。僕が持っているのは、だいぶ昔に購入した、RCA端子とオプティカル端子がついているモデルだ。


HiFiBerry Digi+ Pro – our most advanced digital audio interface


RaspberryPi OS には標準で HiFiBerryのデバイスドライバが含まれているので、ドライバのインストールが不要なのはありがたい。 以下のページを参考にして、ボードの設定を変更して、HiFiBerry以外のオーディオ出力を無効にすることにした。


CONFIGURING LINUX 4.X OR HIGHER


再起動して、 aplay -l でオーディオデバイスを一覧する


pi@audio:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_digi], device 0: HiFiBerry Digi+ Pro HiFi wm8804-spdif-0 [HiFiBerry Digi+ Pro HiFi wm8804-spdif-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

HiFiBerry の1デバイスのみになっていることがわかる。よさそう。


おわり


デバイスドライバがはじめからOSに入っていることが本当にありがたい・・・。驚くほどすんなり動く。もし RaspberryPi OS 以外のディストリビュージョンで動かす場合には、もう少し手順が必要になるだろう。