moOde audio 8.0.2(mpdとpulseaudio)

ちょっとサボっている間にmoOde audioのリビジョンも7(buster base)から8(bullseye base)に上がっています。

moOde audio 8.0.2


moOde7インストールの要領で8.0.2の新規インストールを実行したのですがmpdが起動していません(音が出ない)
/var/lib/mpd/databaseが無いよと言っています。

/var/lib/mpd/(/var/lib/mpd/database)の所有者を見るとpulse:audioになっています。
pulseaudioをインストールしたことでbullseyeはmpdの出力はpulseaudio経由と判断するようです。

所有者を変更して再起動

# chown mpd:audio /var/lib/mpd
# chown mpd:audio /var/lib/mpd/database

moOde player(8.0.2)


moOde playerは当サイトの環境では特に大きな変更は無いように思います。
mpdは非常に軽いmusic playerでPi zeroでも難なく動作します。基本はクライアントのウェブブラウザからmoOde audioにアクセス、moOde playerから基本設定、アルバム、ラジオなどを選択

mpdとpulseaudio

当サイトのmoOde audioはpulseaudioをインストール、設定をしています。過去記事にもpulseaudioについて触れていますがここでざっくばらんにmoOde audioにおけるmpdとpulseaudioの関係について考慮してみたいと思います。
debian系のmpdパッケージはmpdの出力をpulseaudio経由で再生する設定もあります。pulseaudio形式に変換することで音質の劣化を招く恐れがあるためmoOde audioにおいては独自にコンパイル、pulseaudioには非対応にしているものと思われます。アルバム、ラジオ局再生としてのmoOde playerも使い勝手がよくハイエンドオーディオを目指す形としては当然ながらひとつの方法と思います。
但し基本ラジオ生活を送っている当サイトとしてはmoOde audioにpulseaudioをインストール、接続しているアンプ、スピーカーを利用、日本のラジオサイト、動画の音声などを再生することでさらに利用価値が上がります。

pulseaudioコントロール (pulse.php)

mpdとpulseaudioの切り替えはpulseaudioをスタートすることでpulseaudioモード pulseaudioキルでmpdモード
実際のプログラムは/var/www/html以下に関係するファイルを全て置いてコントロールしています。クライアント(Pi4)からはsurfブラウザからアクセス、devilspie2でサイズ調整、タイトルバー非表示、全ワークスペース配置など設定
pulseaudioはroot権限ではスタート出来ません。通常はユーザーがログインしてpulseaudioをスタートさせることになりますが代わりにwww-dataにホームディレクトリを設定ブラウザを介してpulseaudioをスタートします(pulse.php)

pulseaudio mode
音量変更は%表示に変更。デフォルト音量値は深夜早朝でもうるさくない程度に


mpd mode
mpdモード時も音量値表示するように変更
デフォルト値設定(mpc volume)

上記のpulseaudioコントロールだけの場合(要設定)はmpdとpulseaudioの切り替え及びpulseaudioは外部からの接続のみとなります。
クライアントのPi4はデフォルトでpulseaudioはインストールされています。ユーザーは~/.config/pulse/client.confのdefault-server(IPアドレス)をmoOdeに向けることで音声はmoOdeに接続されたアンプ、スピーカーから出力します。例えば物理的な音声デバイスの無いSBCでもネットワーク、そしてpulseaudioをインストールできる環境であればpulseaudioを介して音声を出力できる可能性があります。(当サイトで試したSBCは可)
Pi4 + firefoxでYouTube視聴例 映像はPi4 音声はpulseaudioでmoOde audioから再生

TigerVNCサーバー

作成したサイマルラジオやラジコプレーヤーはXアプリケーションのためvnc serverを立ち上げます。
起動時もpulseaudioがスタートしていることがあるのでここで明示的にkillallしています。
vncbootで起動したvncserverを持続させるため最後の/usr/local/bin/dwmは”&”を付けないで実行します。ここらは従来の挙動とは若干違っていると思います。
必要なアプリケーションは起動後スクリプトまたは個別に起動

~/.vnc/xstartup

#!/bin/sh
xrdb $HOME/.Xresources
date.sh & # 時計
~/.fehbg  # 壁紙
xbindkeys &
uim-xim &
sleep 1
xterm -e ranger ~/ &
sleep 1
sudo killall -q pulseaudio
sleep 1
/usr/local/bin/dwm

残念ながらJCBAサイマルラジオはRadimo(レディモ)が導入されたせいかURLも変更となり4月中旬以降mpdからは再生不可となりました。使用する頻度は少ないのですが代わりにmoOde audioのラジオ局を登録しています。(よく聞くラジオ局はクイックに選局可)
登録しているラジオサイトはmpd,pulseaudioを自動で切り替えます。moOde playerを直接再生する場合のみpulseaudioコントロールからmpdモードに切り替えます。
pavucontrolは以前と比べると起動が遅い感じがします。(あまり支障が無い)

pulseaudioコントロール(pulse.php)やサイマルラジオのプログラムは順次次回の記事で紹介したいと思います。