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

diytechrpilinux


これまで 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 以外のディストリビュージョンで動かす場合には、もう少し手順が必要になるだろう。