Debian jessie 上で JACK と pulseaudio を共存する
<目的>
Debian jessie 上で JACK と pulseaudio を共存し
JACK 経由でサウンドを再生しながらブラウザなどの音声は pulseaudio 経由で再生する。
JACK と QjackCtkl をインストールする。
QjackCtl の設定->オプション->スクリプトのスタートアップ/シャットダウン、前/後それぞれ4つに
以下のスクリプトを作成し指定する。
スタートアップ時に実行
~/.jack/pulse_before_start.sh
#!/bin/bash
pulseaudio --start
pacmd suspend true
スタートアップ後に実行
~/.jack/pulse_after_start.sh
#!/bin/bash
pactl load-module module-jack-sink channels=2
pactl load-module module-jack-source channels=2
pacmd set-default-sink jack_out
シャットダウン時に実行
~/.jack/pulse_before_stop.sh
#!/bin/bash
SINKID=$(pactl list | grep -B 1 "Name: module-jack-sink" | grep Module | sed 's/[^0-9]//g')
SOURCEID=$(pactl list | grep -B 1 "Name: module-jack-source" | grep Module | sed 's/[^0-9]//g')
pactl unload-module $SINKID
pactl unload-module $SOURCEID
sleep 5
シャットダウン後に実行
~/.jack/pulse_after_stop.sh
#!/bin/bash
pacmd suspend false
以上の設定をすることで QjackCtl を起動し開始するだけで
目的の動作がされる模様。
QjackCtl 起動時に読み込むように指定したため
/etc/pulse/default.pa に以下を追記する必要はない。
また、最近のバージョンでは D-bus 経由で自動的に読み込むらしいので
スタートアップ時のスクリプトにも書く必要ないかも?
load-module module-jack-sink
load-module module-jack-source