MoOde 4.0(Beta12) Pulse Audioを設定する

当サイトのオーディオ環境は基本MoOde Audioに集約しています。

MoOde AudioにPulse Audioを設定しておけば他のPi(raspbian)からもリモートスピーカーとして利用できてごきげんな環境になります。(基本Pulse Audioが走る環境であれば利用可能と思いますがほかのOS,環境は試していません)

但し、MoOde AudioのMPDはPulse Audioに対応していないのでMoOde PlayerとPulse Audioの同時使用はできません。(Pulse Audio使用の際はMoOde Playerを停止)

Pulse Audioの基本はユーザー単位で起動することになります。システムデーモンとして起動する解説もあります(具体的な設定方法は試してないのでわかりません)がMoOde AudioではPulse起動中はPlayerから音が出なくなるため不可になります。

Pulse Audioは設定次第で多様な使い方ができますがMoOde Audioをリモートスピーカーとして利用するには以下の点だけチェックしておけば簡単に利用できます。
1.MoOde Player再生中ならば停止
2.MoOde AudioにsshログインしてPulse Audioスタート ($ pulseaudio –start)
3.クライアントはpavucontrolを起動しておく
4.アプリケーションはpulseaudioスタート確認後起動

設定

ここでは便宜上MoOde Audioをpluseサーバー、リモートスピーカーを利用する側をpulseクライアントとしておきます。

pluseサーバーの設定(MoOde Audio)

pulseaudioのインストール

# apt install pulseaudio

pulseaudioを起動して利用可能なカードを調べます。

$ pulseaudio --start

入力ソース
$ pacmd list-sources | grep -e device.string -e 'name:'
        name: <alsa_output.usb-Apple_Computer__Inc._Speakers_p4000-00.analog-stereo.monitor>
                device.string = "1"
        name: <alsa_output.platform-soc_sound.analog-stereo.monitor>
                device.string = "0"

出力ソース
$ pacmd list-sinks | grep -e 'name:' -e 'index'
    index: 0
        name: <alsa_output.usb-Apple_Computer__Inc._Speakers_p4000-00.analog-stereo>
  * index: 1
        name: <alsa_output.platform-soc_sound.analog-stereo>

$ pulseaudio --kill

当サイトでは2枚のカードが刺してあります。i2sカードも認識しています。Osで認識しているカードはpulseaudioでも認識しているはずです。

ユーザーのホームディレクトリに.config/pulseができているので新たに設定ファイルを作成
~/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true

default.paには許可するネットワークとデフォルトのカードを記載(ネットワーク帯は自環境に合わせて)
デフォルトのカードはどちらを指定しても動作は変わらないようですがi2sカード(ES9023 DAC)を記載しておきました。
~/.config/pulse/default.pa

.include /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.analog-stereo.monitor
set-default-sink alsa_output.platform-soc_sound.analog-stereo

pluseクライアントの設定(Pi3)

Pi3のstretchではpulseaudioはデフォルトでインストールされています。
ホームディレクトリには.config/pulseがあるはずです。
client.confを新たに作成、default-serverにMoOdeのアドレスを指定
~/.config/pulse/client.conf

autospawn = no
daemon-binary = /bin/true
default-server = 192.168.0.111

pavucontrolのインストール

# apt install pavucontrol

設定は以上で完了ですがカードにi2sデバイスを使用している場合はインプット、アウトプットボリュームが最初は100%に設定されているはずです。
必ずアンプの電源を切っておくかボリュームを絞って置くようにしておきます。

接続してみる

クライアントのPi3はpavucontrol(PulseAudio 音量調節)を起動しておきます。
moodeにログインして$ pulseaudio –startを実行

こんな画面になっていれば接続成功

ここでアウトプットボリュームが100%なっていれば適正なところまで下げておきます


再生タブはアプリケーションの音量調整ができます。再生を開始してから現れます
こちらも100%なっていれば下げておきます。以降この値は記憶されます
このようにミキシングも可能ですが複数のアプリケーションを立ち上げるとPiのスペック上音が途切れがちになりますね
pulseaudioは大抵のアプリケーションが対応していると思います。stretchのmplayerも特にao pulseを指定しなくてもpulseサーバーが検出できれば自動で接続、できなければ自マシンのalsaに振り分けられます。
またmoode自身もpulseクライアントとして実行可能です。


カードが複数あれば出力先を切り替えることができます。

pulseaudioは再生中またはこのpavucontrolが起動している間は起動していますが再生終了、またはpavucontrolを閉じた時にはpulseaudioをkillします。
またpulseaudio –killは実行したユーザーのみが有効です。root権限で強制終了するにはkillall pulseaudioを実行します。

以上のようにpulseaudioを起動するのにログインしてpulseaudio –startしなければいけないのが難点ですがi2sカードでもradikoが再生できます。
MPDはpulseaudioを経由しないので音質に影響を与えません。もちろんmoode player再生時はpulseaudioはkillですね。

当サイトもpulseaudio導入以前はカード2枚を物理的に切り替えていました。(^▽^;)
まあこれはこれでいろいろ応用が効くので良しということにしておきます。

参考サイト
PulseAudio – ArchWiki
PulseAudio/サンプル – ArchWiki