Volumio3 Bluetoothプラグイン

2021年12月8日水曜日

Volumio

t f B! P L

Volumio3の公式リリースに合わせてVolumio3対応のBluetooth Managerプラグインの導入について整理しました

Volumio3のBluetoothプラグイン

Volumio3 Bluetooth Managerプラグインの改善点

Volumio2のBluetooth ManagerプラグインをVolumio3に対応するにあたっての改善した点は以下のとおりです。

  • Bluetooth Devices選択時のデバイス名表示の改善
  • Volumio GUIのボリューム反映 (SoftwareVolume)
  • AVRCP対応の一部改善

1番目の項目については、Volumio2対応のプラグインではBluetooth Devicesとして "TxPower is nil" などのデバイス名ではない情報が大量に表示されることがあったので、デバイス名のみが表示されるようにしました。

2番目の項目については、Volumio2対応のプラグインではGUI側のボリューム値に関係なく常にBluetoothレシーバには100%の音量が出力される仕様であったため、音量はBluetoothレシーバ側で絞る必要がありました。Volumio3対応のプラグインではGUI側のボリューム値が反映されます。ただしSoftwareVolumeとして機能しますので、GUI側のボリューム値が100%のときのみ16bitフルビットの出力となりボリューム値を絞ると精度は落ちていきます。またBluetoothレシーバ側のボリューム制御とは連動しないので、GUI側のボリュームで設定した音量に対してBluetoothレシーバ側のボリュームがさらに機能する形となる点に注意が必要です。

3番目のAVRCP (Bluetoothレシーバからのボタン操作) ですが、デバイス側のボタンの種類によりますが、Volumio2対応のプラグインと同様に再生/一時停止/トラックの前後スキップに対応します。ただし一部のデバイスで一時停止はできても再生ができない場合がありましたので、Volumio側の再生状態に応じて再生/一時停止となるように対応しました。

インストール手順

はじめに

Volumio2のBluetooth Managerプラグインの際の注意点と同様に、Bluetoothプラグインのインストール過程で強引にビルド環境を導入したりする部分があるので、対象となるVolumio3については初期イメージからの導入を強く推奨します。プラグインのインストール過程で既存環境が動作しなくなったとしても当方では環境に応じた対処方法がわかりかねますので、クリーンなイメージではない環境へインストールされる際は、現在の環境を別のmicrosdに丸ごと複製しておくなどのバックアップ対策をされてから導入をトライするようにして下さい。

動作を確認済みのVolumio3のバージョンは、VERSION 3.165です。(右クリックから名前を付けて保存)

Volumio Free Planにて使用可能です。

また動作確認済みのハードウェアはRaspberry Pi 3 Model B+ と Raspberry Pi 4 Model B です。

プラグイン関連ファイルのダウンロード

Bluetoothプラグイン関連ファイルとして以下の4つをダウンロードします。

以前のVolumio2対応プラグイン用のファイルとVolumio3対応プラグイン用のファイルは内容が異なるのでご注意ください。

イメージのmicrosdへの書き込み

Volumio3イメージのmicrosdへの書き込みには様々なツールが使用できますが、ここではRaspberry Pi Imagerを使用する方法を記載します。CHOOSE OSの部分で一番下のUse Customを選択してVolumio3のimg.zip形式のファイルを展開して取り出した後のimg形式のファイルを指定して対象となるmicrosdカードに書き込めば終了です

Raspberry Pi Imager カスタムイメージの書き込み

SSHの有効化

Volumio3が起動してローカルのhttp://volumioから初期設定(言語設定、WiFi設定等)を一通り終えたら、http://volumio/dev/にアクセスしてSSHを有効化します。

SSH有効化

UIファイル群のアップロードと展開

次にUIファイル群 (www.zip, www3.zip, www4.zip) をVolumio3側にアップロードします。このwww.zip, www3.zip, www4.zipはBluetooth Managerのインストールと動作が可能なようにUIをカスタマイズするためのものです。

まず、Volumio3側にSSH接続するためにローカルのPC側にSSHクライアントが必要となります。ここではGit Bash使用しますので、SSHが動作するターミナルソフトがPC環境にない場合はインストールします。

ターミナルを起動したらまずscpコマンドでファイルを転送してから、SSH接続でVolumio3にログインします。念のため、Volumio3のユーザの初期パスワードはvolumioです。

$ scp www.zip www3.zip www4.zip volumio@volumio:~/
The authenticity of host 'volumio (192.168.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:--------------------------------------------
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'volumio,192.168.xx.xx' (ECDSA) to the list of known hosts.
volumio@volumio's password:
www.zip                                       100% 4606KB   1.9MB/s   00:02
www3.zip                                      100% 7082KB   2.8MB/s   00:02
www4.zip                                      100% 7043KB   2.5MB/s   00:02
$ ssh volumio@volumio
volumio@volumio's password:

ここからはSSHでユーザーvolumioとしてログインした後のコマンドとなります。

volumio@volumio:~$ cd /volumio/http
volumio@volumio:~$ sudo mv www www_bak
volumio@volumio:~$ sudo mv www3 www3_bak
volumio@volumio:~$ sudo mv www4 www4_bak
volumio@volumio:~$ mkdir www && cd www
volumio@volumio:~$ miniunzip ~/www.zip
volumio@volumio:~$ cd ..
volumio@volumio:~$ mkdir www3 && cd www3
volumio@volumio:~$ miniunzip ~/www3.zip
volumio@volumio:~$ cd ..
volumio@volumio:~$ mkdir www4 && cd www4
volumio@volumio:~$ miniunzip ~/www4.zip

UIの変更

Volumio3の初期状態ではContemporaryタイプのWeb UIがデフォルトになっていますが、Bluetooth ManagerプラグインをインストールするためにはClassicタイプのUIに一旦戻す必要があります。

設定→外観→一番下のUser Interface Layout Designから"Classic"を選択して保存します。

UIのClassicへの変更 (変更前)

すると以下のようにUIタイプが変更されます。

UIのClassicへの変更 (変更後)

プラグインのインストール

次に、右上の歯車マークをクリック→プラグイン をクリックすると「プラグインのアップロード」タブがあるはずなので、ここに最初にダウンロードしておいたbluetooth_controller.zipをドラッグ&ドロップするとインストールが始まります。

「プラグインのアップロード」タブ
プラグインインストール開始直後

インストールの進行は開始直後に70%になって以降しばらくそのままの状態となりますが、インストール終了までかなり時間がかかるので待ちます。おおよそRaspberry Pi 3 Model B+, Raspberry Pi 4 Model B で30分程度でインストールが終了すると以下の画面になります。

インストール終了状態

ここでEnable Pluginボタンを2回押します。すると手前のインストール画面が消えて、「インストール済みのプラグイン」タブに切り替わって Bluetooth Managerプラグインがインストールされたことが確認できます。ただし、ここではまだプラグインの状態は「非アクティブ」になっています。

Bluetooth Managerインストール直後の状態 (非アクティブ)

ここで一旦Volumio3をリブートします。UIメニューをConpemporaryに戻してから再起動を押すとリブートします。

Volumio3 リブート

プラグインの正常起動確認

これ以降はVolumio3のUIはClassic / Contemporary / Manifestタイプのどれでも構いません。ここでは便宜上、画面の例はContemporaryタイプで進めます。

http://volumioにアクセスして、左側のメニュー→プラグインをクリックすると今度は「インストール済みのプラグイン」タブ上にBluetooth Managerプラグインがアクティブ状態で表示されるはずです。

Bluetooth Manager アクティブ確認

Bluetoothデバイスの選択

次に接続したいBluetoothレシーバをペアリングモードにして立ち上げます。

その状態で左側のメニュー→プラグイン→インストール済みのプラグイン→Bluetooth Manager→Settingsをクリックしてください。Bluetooth Devices以下のリストに接続したいデバイス名が表示されたら右横のConnectをクリックします。

Bluetoothデバイスの表示

Connectをクリックした後、下のRefreshボタンを何度か押しているうちに、接続したいデバイス右横のConnect表示がDisconnect表示に変化したら接続成功です。

接続成功した状態

動作確認

ここまで出来たらあとは通常通りオーディオトラックを再生するだけでBluetoothレシーバデバイスからオーディオ出力されるはすです。GUI側のボリューム操作が音量に反映されることを確認してください。またAVRCPによるボタン操作が効かない状態になった場合は、一旦Bluetoothレシーバデバイスを切断(Disconnect)したのち再接続(Connect)すると、ボタン操作が効くようになると思います。


以上、Volumio3のBluetooth Managerプラグインのインストール手順の説明でした。

自己紹介

自分の写真
電子工作&プログラミング、オーディオ・音楽

注目の投稿

Raspberry Pi Pico Wで電波時計を合わせる (JJY標準電波エミュレータ)

Raspberry Pi Pico Wのアプリケーションとして 最少の周辺部品で電波時計むけJJYエミュレータ(時刻合わせ用)を製作しました。 ※2023年6月6日: ソースコード修正の内容を反映させました。 時刻合わせ風景 概要 電波時計は電波が届くところで使...

QooQ