リモートセッションでSuperCollider(以下SC)の音をブラウザに渡したい時など、SCの出力を他のアプリの入力として渡したい時の設定方法
最終的にこうする。
この図はqjackctl
で表示できるグラフ。SCの出力をPulseAudio JACK Source
に接続しているところがポイント
PulseAudioはLinuxのaudioサーバーで、ブラウザなどの最近のアプリはだいたいこれを使って音を鳴らしている。SCのようなリアルタイム性が要求されるアプリはPulseAudioではなく、JACK/ALSAを使っている。
PulseAudioのjackモジュールを使うと、jack上でPulseAudioの入出力を扱えるようになる。あとqjackctl
(jackの設定用GUI)とpavucontrol
(pulseaudioの設定用GUI)も入れておくと便利
arch linuxの場合は下記のコマンドで各種アプリ/モジュールをインストールできる
> sudo pacman -S pulseaudio-jack qjackctl pavucontrol
重要なポイントとして、jackを起動するタイミングでPulseAudioは停止していなければならない。pulseaudio -k
で停止させる。
※ PulseAudioを使うアプリがあると、勝手にPulseAudioを起動してしまうので注意
> pulseaudio --check -v
I: [pulseaudio] main.c: Daemon running as PID 2959
> pulseaudio -k
> pulseaudio --check -v
I: [pulseaudio] main.c: Daemon not running
PulseAudioの停止を確認したら、下記の手順で設定する。
-
qjackctl
の「開始」ボタンを押して、jackを起動する -
PulseAudio
のjackモジュールをロードする
pactl load-module module-jack-sink channels=2
pactl load-module module-jack-source
3. SuperColliderを起動する
4. `PulseAudio`を使うアプリを起動して、マイク入力を使う状態にする
`pavucontrol`の「録音」タブから起動したアプリが`Jack source`と接続されていることを確認できる

5. qjackctlの「グラフ」でこのページの最初の図のように`PulseAudio JACK Source`に接続する