Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
世の中には色んな事を考える人が居ますね。Raspberry Pi 5の使い方として、ちょっとご紹介したいプロジェクトを見つけました。「ProjectMオーディオレシーバー」です。
Redditをブラウンジングしていたら見つけました。GithubのReadmeの通りに導入できます。導入方法はよくまとまっていて、よく分からなくてもコピペで実現できるので、Pi 5を始めたばかりの方にもオススメです。
ビジュアライザー?
Winampはご存じですか? 昔に流行ったミュージックプレイヤーです。現在もリリースされていて、記事執筆時点でWinamp 5.9.2が最新でした。
当時Winampが人気を博したのは、スキンで見た目をカスタマイズできたからです。ユーザーがたくさんのデザインを公開していましたね。加えてビジュアライザーなるプラグイン的な機能があり、音楽に合わせて幾何学模様やグラフ、3Dっぽいものまで色鮮やかに楽しめます。
そのビュジュアライザーの部分だけをRaspberry Pi 5に担わせてしまうのが、この「ProjectMオーディオレシーバー」です。
GitHub
GitHub - kholbrook1303/RPI5-Bookworm-ProjectM-Audio-Receiver: Audio manager for the Raspberry Pi 5 s… Audio manager for the Raspberry Pi 5 supporting projectM visualizations. - kholbrook1303/RPI5-Bookworm-ProjectM-Audio-Receiver
他のOS(Windows/Mac/Linux/Android)へは既に実現されていて、それがProjectM - 最先端のオープンソース音楽ビジュアライザーです。
Raspberry Pi 5のスペックが上がったことで、今回ご紹介するRPI5-Bookworm-ProjectM-Audio-Receiverでラズパイでも動作させられました。
デモ動画が分かりやすいですね。
オーディオレシーバー?
このプロジェクトでは、オーディオレシーバーとなっています。
これはRaspberry Pi 5で音楽を再生してビジュアライザーとして動作させるのではなく、例えばレコードプレイヤーなど外部のデバイスからライン入力させ、Pi 5に繋いだHDMIのモニターにシンクしたビジュアライザーを表示するものです。
Pi 5にはライン入力もマイク入力端子もありません。USB接続の外部サウンドカードを使用する必要があります。
もう1つ、AirPlay2レシーバーとBluetoothオーディオレシーバーにも対応しています。
今回はAirPlay2がお手軽だったので試したところ、iPhoneのミュージック再生をPi5へ飛ばしてビジュアライザーとして問題無く動作しました。

デフォルト


インストールと設定はGithubページの通り
Githubページにある説明がよく出来ているので、上から順に実行していくだけで済みました。導入は途中のコンパイルなどで時間はかかります。特にエラーもなくスムーズに試せました。
あと、プリセットとテクスチャの導入の記述が足りていませんから、Raspberry Pi 5のプリセットとテクスチャから、ダウンロードしたファイルをコマンドでコピーすることをしました。
sudo nano /opt/ProjectMSDL/projectMSDL.properties
パスを記載する部分が中頃にあります。ここでは/etc/にしています。
### projectM settings
# Default path where projectMSDL will search for presets and textures. The directory will be searched recursively.
# To add additional preset paths, add them as shown in the examples below.
projectM.presetPath = /usr/local/etc/presets
#projectM.presetPath.1 = /another/preset/path
#projectM.presetPath.2 = /yet/another/preset/path
# Default path where projectMSDL will search for additional textures. The directory will be searched recursively.
# To add additional texture paths, add them as shown in the examples below.
projectM.texturePath = /usr/local/etc/textures
#projectM.texturePath.1 = /another/texture/path
#projectM.texturePath.2 = /yet/another/texture/path
指定した場所にコピー。
cd ~
git clone https://github.com/mickabrig7/projectM-presets-rpi5
sudo cp -r ~/projectM-presets-rpi5/presets /usr/local/etc/
sudo cp -r ~/projectM-presets-rpi5/textures /usr/local/etc/
Bluetoothレシーバーは使わないので実行していません。
設定ファイル
設定は/opt/ProjectMSDL/projectMAR.confと、/opt/ProjectMSDL/projectMSDL.propertiesの値を修正することになります。
sudo nano /opt/ProjectMSDL/projectMSDL.properties
sudo nano /opt/ProjectMSDL/projectMAR.conf
AirPlay2とBluetooth経由だとバグがあるとあるように、基本はライン入力みたいですね。
ProjectMオーディオレシーバーの自動起動
現行のWayland環境ではwayfire.iniファイルに自動起動エントリとして追加することで実現できます。
sudo nano ~/.config/wayfire.ini
[autostart]
par = /opt/ProjectMSDL/env/bin/python3 /opt/ProjectMSDL/projectMAR.py
shairport-syncの有効化
shairport-syncサービスを有効(enable)にする。
sudo systemctl enable shairport-sync
sudo systemctl start shairport-sync
ps aux | grep shairpで2つ表示されていたら、sudo systemctl status shairport-syncでエラーになっているハズです。
shairport-sync[4316]: fatal error: could not establish a service on port 7000 -- program terminating. Is another instance of Shairport Sync running on this device?
■Pi 5は8GBモデルがオススメ
繋がらない時はWiFiの省電力をオフ
AirPlay2に繋がったのに今度は繋がらないなどは、もしかしたら、Wi-Fiの低電力モードでAirPlay2が機能しないからかも知れません。Wi-Fiのパワーセーブをオフにしておくと原因が掴めます。
オフにするなら次のコマンド。
sudo iw dev wlan0 set power_save off
終了方法
SDLが全画面で表示されます。デフォルトでフルスクリーンで1280x720がデフォルトです。終了するのにはキーボードで Alt + F4 なのですが、2回実行してターミナルを終了させることで終了できました。
コマンドでKillするのを何かに割り当てた方が良いと思いました。
エラーに遭遇して音が出ない?!
エラーが出て音がでなくなり、原因を調べたら別の方法で回避できました。shairport-syncのサービスは有効にせず、PipWireのバックエンドを利用した方法です。shairport-syncは起動時に実行する形です。
今回のProjectMオーディオレシーバーと連携させるなら、次の記事のパターン2を試してみてください。
Pi 5にAirPlay 2のインストール方法2つ - ラズパイダ ラズパイでAirPlay2を実現するためには、Shairport SyncとNQPTPをインストールします。古い環境(AirPlay1)ではNQPTPは必要ありませんでした。ここではAirPlay2の導入方法…
メニューもあるけど・・・
ProjectMオーディオレシーバーの実行画面では、ESCキーで上部メニューが出ます。

setting menu
これで何やらイジっていたら、おかしくなりました。設定ファイルから変更した方が無難です。

使えるなと思ったのは、前後のプリセットへ変更したり、プリセットを固定ロックするなどのショートカットキーです。

Alt + Nなどで効きます。
ランダムだと結構変わるのが早いので、固定化して手動で次々とプリセットを楽しみました。
Windowモードは使いづらい
あまりデスクトップの解像度を上げると、処理が遅くなります。なので、フルHDサイズくらいまででしょうか。推奨されていたのは1280x720でした。
解像度などは、先述した2つある設定ファイル(conf)で変更します。
Windowモードだとこんな感じ。

使うならフルスクリーンですね。
導入しておいてもいいかも
このプロジェクトは、Raspberry Pi 5を専用で用意しなくてもいいので、普段使っているPi 5のRaspberry Pi OSにインストールしました。
ディスプレイの解像度は設定したスケールに変更されますが、4Kディスプレイで試しました。終了しても解像度は元に戻らず、一旦ブランク画面になると戻っていました。ウィンドウ形式もオプションにありましたが挙動は同じです。
デスクトップPC利用しているPi 5に導入しておいても特に支障はありません。ProjectM Audio Receiverを起動しなければ良いからです。 → まともに動かないアプリも出てくるかもしれないため、専用で用意すると安心でした。
あと、AirPlayのShairpoint-syncは、NQPTP経由で動作するんですね。久しぶりにインストールしたので知りませんでした。
まだ細かく触っていませんが結構楽しめそうです。
はてな?


