moOde audio player 8でAACコーデックを使用

moOde audio player 8のbluez-alsaパッケージをリビルドしてBluetooth接続時にAACコーデックを使用可能にする。

自宅リビングではRaspberry Pi 3BにI2C DACを載せてBluetoothレシーバーとし、Bose Wave music systemをスピーカー代わりにして音楽を楽しんでいる。以前は音楽プレイヤーにVolumioを使用していたが、Spotify connectの安定性などからmoOde audio playerに切り替えた。ところが、moOdeはデフォルトでAACコーデックが使用できず、SBCとなってしまう。そこで、bluez-alsaパッケージにAACコーデックを組み込んでリビルドした。

まず、リビルドに必要なソースパッケージをダウンロードできるようにraspi.listファイルを編集する。

$ sudo mv /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.orig
$ sudo cp /etc/apt/sources.list.d/raspi.list.orig /etc/apt/sources.list.d/raspi.list
$ sudo vi /etc/apt/sources.list.d/raspi.list
$ diff /etc/apt/sources.list.d/raspi.list.orig /etc/apt/sources.list.d/raspi.list
3c3
< #deb-src http://archive.raspberrypi.org/debian/ bullseye main
---
> deb-src http://archive.raspberrypi.org/debian/ bullseye main

また、ビルドに必要なパッケージもインストールする。

$ sudo apt install devscripts
$ sudo apt install libfdk-aac-dev
$ mkdir bluez-alsa && cd bluez-alsa
$ sudo apt build-dep bluez-alsa-utils
// 依存パッケージが自動ダウンロードされないので、手動で指定する
$ sudo apt install debhelper-compat dh-exec \
libasound2-dev libbluetooth-dev libdbus-1-dev libglib2.0-dev \
libsbc-dev libldacbt-enc-dev libldacbt-abr-dev pandoc

rulesファイルを編集してからリビルド。

$ mv bluez-alsa-3.0.0/debian/rules bluez-alsa-3.0.0/debian/rules.orig
$ cp bluez-alsa-3.0.0/debian/rules.orig bluez-alsa-3.0.0/debian/rules
$ vi bluez-alsa-3.0.0/debian/rules
$ diff bluez-alsa-3.0.0/debian/rules.orig bluez-alsa-3.0.0/debian/rules
13,15c13,14
<       --enable-debug
< # fdk-aac (libfdk-aac-dev) is in non-free
< #     --enable-aac
---
>       --enable-debug \
>       --enable-aac
$ cd bluez-alsa-3.0.0/
$ debuild -uc -us -b

終了したら、ビルドしたパッケージをインストールしておしまい。

$ cd ..
$ sudo apt install ./bluez-alsa-utils_3.0.0-2moode1_arm64.deb

Amazon MusicはUltra HDでも多くが24 bit、44.1 KHzどまりなので、AACで十分と思われる。なお、LDACはライセンスフリーのエンコーダーは入っているが要ライセンスのデコーダーは入っていないため、レシーバー(sink)としては使えない。

コメント

タイトルとURLをコピーしました