リモートセッションで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
SuperColliderを起動する
PulseAudio
を使うアプリを起動して、マイク入力を使う状態にする
pavucontrol
の「録音」タブから起動したアプリがJack source
と接続されていることを確認できる
qjackctlの「グラフ」でこのページの最初の図のように
PulseAudio JACK Source
に接続する