いつモノコト
ラズパイで無限Spotify再生マシンを作ってみた
2024年1月6日 09:30
テレワークで家にいる間、小さな音でBGMをかける時間が増えました。そこで、Spotifyをひたすら再生するマシンを「Raspberry Pi」(ラズベリーパイ)で作ってみました。使い始めてから半年ほど経過していますが、毎日便利に使っているので紹介してみたいと思います。
全体の概要は、Raspberry Piとデジタル音声出力ボードを組み合わせ、Spotifyを再生できるソフトウェアをインストールするというというものです。Raspberry Piはネットワークとオーディオシステムに接続します。ほかのPCやスマホのSpotifyから再生デバイスとしてRaspberry Piを指定すると、遠隔操作を受けてRaspberry Pi単体でSpotifyの音楽を再生できます。
なぜラズパイ?
同じようなことができる、もっと多機能で小型の“完成品”のネットワークプレーヤーは世に存在していますが、私は「ラズパイオーディオ」というジャンルが黎明期だった頃からいろんな製品展開を見てきたこともあり、ラズパイを使ってあれこれ作る界隈全体に興味がありました。
もっとも、以前の私であれば、強力なI2S接続を使い、高性能なボードを追加、ハイレゾ音源ファイルの再生に対応させて、「Roon」をサポートしたようなマシンに仕立てたかもしれません。
しかし最近は、Spotifyの利用頻度が急速に高まったこと、またコロナ禍や半導体不足で品切れが続いていた「Raspberry Pi 4」が入手しやすくなったことも手伝って、Raspberry Piを入手して標準的なセットアップに挑戦しつつ、Spotify専用マシンを作るというテーマにして、自分好みの仕様に厳選したシンプルなマシンを仕立ててみようと思い立った、というのが経緯です。
あとは、もし飽きて使わなくなっても、音声出力ボードを外し、普通の「Raspberry Pi 4」として別の目的に使えるし……なんていう皮算用もありました。いずれにしても、プラモや電子工作みたいなノリで、プチ自作マシンを作ってみたかったというモチベーションですね。
ラズパイにデジタル音声出力ボードをセット
ハードウェアとして用意したのは、シングルボードコンピューターの「Raspberry Pi 4 Model B 4GB」と、デジタル音声出力ボード「HiFiBerry」です。HiFiBerryにはいくつか種類があり、Raspberry PiのGPIOピンに挿して使うDDCボード「HiFiBerry Digi+ Standard」を選びました。この2つをセットで収納できるHiFiBerry製のスチールケースも用意したのと、ラズベリーパイにはヒートシンクも買って取り付けました。
購入価格は、「Raspberry Pi 4 Model B 4GB」は12,800円、ノーブランドのヒートシンクが300円、「HiFiBerry Digi+ Standard」が5,697円、HifiBerry製ラズパイ用ケース(4B-HC-DG)は4,213円です。HiFiBerry関連は、自作スピーカーで有名な秋葉原のコイズミ無線で揃えました。
Raspberry Piには標準でアナログ音声出力として3.5mmのステレオミニジャックが用意されていますが、HiFiBerryのデジタル音声出力ボードを取り付ければ、光端子や同軸端子で、高音質なデジタル出力が可能になり、すでに部屋にあるオーディオシステムにデジタルで入力するといった連携が行ないやすくなります。私の環境では、メインのオーディオシステム側に余っている入力端子が同軸デジタルだったので、「HiFiBerry Digi+ Standard」の同軸デジタル出力を使っています。
OSセットアップ、ドライバはOSにプリインストール
OSは、Raspberry Pi純正の書き込みツール「Raspberry Pi Imager」を使って、「Raspberry Pi OS(64bit)」をインストールし、言語やアップデートなど一通りのセットアップをしました。
最終的にはディスプレイもないヘッドレス運用になるので、Raspberry Piの設定で「VNC」をオン、メインPCに「RealVNC Viewer」をセットアップして、Raspberry PiのローカルIPアドレスを固定、PCからRaspberry Piにリモートアクセスできる環境にしました。Raspberry Piにはヘッドレス運用向けの設定もあります。VNCはRaspberry Pi自体のソフトウェア更新など、OSの管理に使います。ちなみに我が家では有線LANでの運用です。
追加のデジタル音声出力ボードとして「HiFiBerry Digi+ Standard」を装着しているので、HiFiBerryが公式サイトで案内している内容に従って、コンフィグ関連のテキストファイルを追記・修正しました。このボードを認識・駆動させるドライバファイル自体はあらかじめOSに含まれているのですが、有効にするため、いくつかの部分を修正します。
Googleなどで検索するといろいろとセットアップに関する(過去の)日本語の情報が出てくるのですが、結論から言うと、このHiFiBerry公式サイトの最新の情報を反映するだけで十分で、それが最も確実でした。設定ガイドは英語ですがクセのある文章ではないので、翻訳サービスを利用すれば問題なく理解できると思います。
ちなみに、Raspberry Pi上でテキストを編集する際のテキストエディタは「vi」が指定されていることも多いですが、これはLinuxに親しんでいる人向けです。私は、Windowsユーザーでも比較的操作方法が分かりやすい「nano」を使いました。プリインストールされているので、コマンドでviが出てくる場面でnanoに置き換えるだけです。
一連の設定が成功すると、OSのGUIの画面右上、音声出力のメニューで「デジタルステレオ出力」が選べるようになります。
Raspotifyをセットアップ
Spotifyを再生するソフトウェアは「Raspotify」を選びました。サードパーティ製ソフトウェアで、Spotifyが提供する「Spotify Connect」の仕組みを利用します。「Spotify Connect」は、特定のデバイスから他のデバイスの再生を遠隔操作できるというものです。
なお、「Spotify Connect」を利用するには、ユーザーのアカウントがSpotify Premiumである必要があります。
Raspberry Pi向けには、音楽再生専用OSなどさまざまなソフトウェアが登場していますが、私が作りたかったのはSpotify専用でディスプレイも接続しないヘッドレス運用のマシンなので、標準OSと、バックグラウンドで動くRaspotifyのみ、というシンプルな構成にしました。
Raspotifyをセットアップすると、PCのSpotifyやスマホアプリのSpotifyを起動した際に、再生デバイスとしてRaspotify(=Raspberry Pi)を選択できるようになります。曲を選ぶなどの操作は、いつものPCやスマホアプリのSpotifyで行ない、実際に音が出るデバイスはRaspberry Piになる、という形です。
Raspotifyはヘッドレス環境での運用を想定した設計で、GUIであれこれ操作や設定する画面がないソフトウェアです。そのため、再生ビットレートやノーマライズといった再生に関する設定は、あらかじめRaspotifyの設定ファイルをテキストディタで編集して済ませておきます。
Raspotifyが公開されているGitHub上のページでは、インストール時のコマンドや初期セットアップガイドが公開されているので、こちらも忠実になぞっていくことで、問題なくセットアップが終わりました。
HiFiBerry、Raspotifyのどちらも、私は、情報として古くなっていた日本語の情報を参照して何度も失敗しました。特にHiFiBerryはブランドとして10周年を迎えるなど長く提供されているため、今となってはうまく動かない・無意味になってしまっているTIPSがネット上には数多く残っています。まずは公式の、最新の情報を参照してセットアップすることを強くおすすめします。
無限Spotify再生マシンの完成
完成すると、Raspberry PiとHiFiBerryが入った2階建てのケースに、電源のUSB-Cケーブル、デジタル同軸ケーブル、LANケーブルの3つだけがつながった状態になります。
PCのSpotifyやスマホのSpotifyアプリを開くと、右下の「デバイスに接続」というメニューから、再生デバイスとして「raspotify」が選べるようになっています。これで再生デバイスとしてRaspberry Piを指定でき、PCではなく、Raspberry Pi(HiFiBerry)を接続しているメインのオーディオシステムからSpotifyの音楽を再生できるようになります。
使ってみて便利だなと思ったポイントは、Raspotify(Raspberry Pi)は独立したマシンとして稼働しているので、PCでSpotifyのアプリを閉じたり、PCをシャットダウンしたりしても、RaspotifyによるSpotifyの再生は影響を受けず、再生を続けられるという点です。またPCの遠隔操作で再生を始めた後でも、スマホアプリを立ち上げれば再生デバイスとして「raspotify」が選択され、遠隔操作ができるなど、柔軟な運用が可能です。
Spotifyには無数のプレイリストが用意されており、ジャンルやムードだけで絞って揃えたものもたくさんあります。有線放送のように、小さくBGMを流しておきたい時に便利に使っています。また、Raspotifyは独立した再生ハードウェアとして稼働しているので、遠隔操作するPCの音関連の設定とは切り離して管理できるのも、使ってみると便利なポイントでした。
一連のセットアップにはRaspberry Pi上のターミナルでコマンドやテキストエディタを使うといった、Raspberry Pi/Linux関連の初歩的なスキルが必要ですが、動き始めると安定して稼働しますし、Spotifyのヘビーユーザーとして毎日便利に使っています。