ラズパイオーディオに入門した

いい音で音楽を聴きたい。そう思っていたが金がかかるので先送りにしていた。 ラズパイオーディオとは小型LinuxマシンRaspberry piを使ったオーディオ環境のことを指す。これの利点は量販店で機器を揃えるよりも安く済み、かつカスタマイズ性が高いということだと思う。

私が使っていたのはポータブルスピーカーJBL Xtreme 2。これにPCをBluetooth接続していた。 なんとなく買ったものだけどまぁまぁ満足はしていて、狭いワンルームに住んでいる分には十分だと思う。持ち運びもできるし。 ただ、アウトドアも想定しているからか、パワフルな音でイヤホンで聴く場合と比べると広がりが微妙。 何より最近引っ越して部屋が広くなり増えた部屋にもスピーカー置きたいな、という欲求がでてきた。しかしオーディオを一式を揃えるのはけっこう金がかかる。

私はオーディオ初心者だ。いい音で音楽を聴きたいが、お金はあんまりかけたくない。というわけでラズパイオーディオをやってみることにした。 部屋にRaspberry pi 3 Bが転がっていたのでこれを使うことにした。このラズパイにはデフォルトオーディオ出力が付いているけど性能はいまいち。 これはデジタルで配信する音源(mp4とかストリーミングとか)をアナログの音信号に変換する機構(Digital Analog Converter, DAC)がしょぼいからだ。 なので良い外付けのDACを接続する。とりあえずラズパイに相性が良さそうなIQaudio DAC Proをポチった。3300円。

接続はI2Sでラズパイから生えているピンに刺すだけ。ディストリビューションraspberry pi OS。ドライバのインストールなども不要で、特になんの設定もなくオーディオカードとして認識された。

せっかくなのでスピーカーも新しいものを買うことにした。買ったのはiLoud Micro Monitor。アンプ不要なタイプのモニタースピーカーで音のバランスが良い割に安いらしい。知人が使っていてオススメされたのでこれにした。

音源はRaspotifyを使う。これはラズパイ上でSpotifyのクライアイントとして振る舞うソフトウェアで、実行して同じネットワーク内にいればスマホやPCなどの他のSpotifyクライアントからリモートで操作でき、好きなように音楽が再生できるようになる。Raspberry pi OSでのインストールは

curl -sL https://dtcooper.github.io/raspotify/install.sh | sh

で終わり。このままだと音が出なかったのでサウンドカードの設定を少し書き換えた。

pi@raspberrypi:~ $ cat /usr/lib/systemd/system/raspotify.service
[Unit]
Description=Raspotify
After=network.target

[Service]
User=raspotify
Group=raspotify
Restart=always
RestartSec=10
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -m 0755 -p /var/cache/raspotify ; /bin/chown raspotify:raspotify /var/cache/raspotify
Environment="DEVICE_NAME=raspotify (%H)"
Environment="BITRATE=160"
Environment="CACHE_ARGS=--disable-audio-cache"
Environment="VOLUME_ARGS=--enable-volume-normalisation --volume-ctrl linear --initial-volume 100"
Environment="BACKEND_ARGS=--backend alsa"
Environment="DEVICE_TYPE=speaker"
EnvironmentFile=-/etc/default/raspotify
ExecStart=/usr/bin/librespot --name ${DEVICE_NAME} --device-type ${DEVICE_TYPE} $BACKEND_ARGS --bitrate ${BITRATE} $CACHE_ARGS $VOLUME_ARGS $OPTIONS --device hw:1,0

[Install]
WantedBy=multi-user.target

raspotifyはsystemctlで管理できるので適宜daemon-reloadやrestartをする。設定の内で重要なのはDACのデバイス番号で、--deviceで指定する名前。/proc/asound/cardsとかを見ればわかると思う。speaker-testコマンドもあるので音信号の流れがどこで途切れているかチェックしながら進めればスムーズ。

今回構築したラズパイオーディオは:raspotify -> raspberry pi 3 B -> DAC(IQaudio DAC Pro) -> スピーカー [iLoud Micro Monitor]。前に比べてシンバルや弦楽器の細かい音がわかるようになった。サンプリングをしている曲を聴いてみたら以前はわからなかったサンプルの途切れ目までわかってしまった。とりあえずは満足している。これで少し様子をみて必要ならパーツを変えていこう。