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

pulseaudioコントロール
moOde audioのデフォルトはmpd。moOde audioへはhttp://moode/html/pulse.phpにアクセスします。
以下Raspberry Pi ZeroにmoOde audio(8.0.2)新規インストールして確認

moOde audio(8.0.2)


moOde audioをインストールしたらI2SデバイスをSET
当サイトのI2SデバイスPCM5102A,ES9023,TDA1543
Generic-1 I2S(hifiberry-dac)


IPアドレスは固定(STATIC)に設定するのがいいと思います。
取り敢えずはDHCPでも可


設定が正しければラジオ再生可

pulseaudio

参考 過去記事 Raspberry Pi Zero moOde audio 630(PulseAudio)

$ sudo apt update && sudo apt -y install pulseaudio

以下 $ sudo -i  # rootで作業しています

/etc/pulse/default.pa
当サイトのI2SデバイスPCM5102A,ES9023,TDA1543で確認
いずれも汎用のデバイスですが共通設定で使用できます。他のデバイスでは調査する必要があると思います。

末尾に追記(ネットワーク帯は自ネットワーク)

/etc/pulse/default.pa

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24 auth-anonymous=1
set-default-source alsa_output.platform-soc_sound.stereo-fallback.monitor
set-default-sink alsa_output.platform-soc_sound.stereo-fallback

skyblue css

pulseaudioコントロールは操作性の良いskyblue cssを利用。ダウンロード、展開したらディレクトリ名をhtmlに変更してpulseaudio関連のファイルを纏めます。

# cd /var/www
# wget https://github.com/Stanko/skyblue/archive/gh-pages.zip
# unzip gh-pages.zip
# mv skyblue-gh-pages html
# rm gh-pages.zip

www-data

www-dataからpulseaudioをスタートするためにはホームディレクトリが必要になります。

# systemctl stop nginx php7.4-fpm
# mkdir -p /var/www/html/www-data/.config/pulse
# usermod -s /bin/bash www-data -d /var/www/html/www-data
# systemctl start nginx php7.4-fpm

client.conf作成

# vi /var/www/html/www-data/.config/pulse/client.conf
autospawn = no
daemon-binary = /bin/true
auto-connect-localhost = yes

所有者www-data

# chown -R www-data:www-data /var/www/html/www-data

www-dataをaudioグループに追加

# gpasswd -a www-data audio
ユーザ www-data をグループ audio に追加

www-dataをsudersに追加(末尾に追記)

# visudo
www-data ALL=(ALL) NOPASSWD: ALL

pulse.php

pulse.php.20220508

/var/www/html/pulse.php

/var/www/html/killall.sh 作成

#!/bin/sh
sudo killall -q mplayer
sudo killall -q mpv
sudo killall -q ffplay
mpc stop > /dev/null 2>&1

ロゴ画像 /var/www/html/imgにコピー

# mkdir /var/www/html/img

以上でmoOde audio(pulseaudio)の設定は終了 Reboot

client設定

``~/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true
default-server = 192.168.0.144 # moOde audioのIPアドレス

クライアントはpavucontrolをインストール、起動しておきます。(pulseaudioの自動キルを防止)
Raspberry Pi 2 ,Raspberry Pi Zeroで確認。但しZeroでは一瞬音声が詰まり気味になることがあります。moOde audio(730)では特に問題が無かったことからbullseye(pulseaudio)とZeroの間でなにか問題があると思います。Pi 2は特に問題なし(現時点ではPi2以降を使用か!?)