• 対象とするUbuntu Studioのバージョン

    • 11.04 Natty Narwhal
    • 10.10 Maverick Meercat
    • 10.04 Lucid Lynx

Ubuntuの標準であるPulseAudioサウンドサーバと、Ubuntu Studioに標準でインストールされているJACKサウンドサーバは、標準状態では併用することができません。ここでは、それらを併用するための方法を解説します。

PulseAudioのJACKモジュールの導入

PulseAudioは様々なモジュールで機能を拡張することができます。そのモジュールの中には、JACKの入力/出力をPulseAudioのSink/Sourceにするモジュールがあります。「pulseaudio-jack-sink」モジュールと「pulseaudio-jack-source」モジュールです。

これらモジュールは、パッケージ名「pulseaudio-module-jack」で提供されています。まず、Synapticパッケージマネジャーやapt-getを使って、このパッケージをインストールします。

Synapticパッケージマネジャーでのpulseaudio-module-jack

これらモジュールはJACKが起動している場合に限り、以下のコマンドでPulseAudioにロードしたり、アンロードしたりできます。細かなオプションは、PulseAudioのJACK Connectivity > Loadable Modulesを参照して下さい。また、pacmdについて詳しく知りたい方は、「$ pacmd help」でヘルプを参照して下さい。

$ pacmd load-module module-jack-sink;
$ pacmd load-module module-jack-source;
$ pacmd unload-module <module-jack-sinkのID>;
$ pacmd unload-module <module-jack-sourceのID>;

qjackctlの設定

次に必要なのは、qjackctlを起動してjackdをスタートした後、PulseAudioにこの2つのモジュールを読み込ませる設定です。具体的には、qjackctlのGUIのSetupで設定画面を開き、「Options」タブを選択。「Execute script after Startup:」項目にチェックを入れて、右のテキストボックスに以下を入力します。

pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

qjackctlでのOptions設定

オプションにchannels=2を設定しているのは、ステレオ出力のためです。このオプションをつけない場合は、JACKが接続しているデバイスの入力数/出力数が反映されます。

これで設定は終了です。

起動方法

まず先に、PulseAudioでSinkやSourceとClientを自由に接続できるユーティリティである、PulseAudio Volume Controlを導入しておきます。パッケージ名は「pavucontrol」です。

JACKとPulseAudioを併用するには、qjackctlを起動し、JACKサウンドサーバをスタートさせるだけとなります。そうするとqjackctlのConnectに、「PulseAudio JACK Sink」ポートと「PulseAudio JACK Source」ポートが出現します。

qjackctlでのConnection

また、pavucontrolには「Jack sink (PulseAudio JACK Sink)」と「Jack source (PulseAudio JACK Source)」が出現します。

PulseAudio Volume ControlでのPlayback PulseAudio Volume ControlでのRecording

通常どおり、パッチベイでポートを接続することで、必要なルートを作ることができます。

こうして、JACKをバックエンドとする強力なアプリケーションと、ウェブ配信で利用されるFlashなどのバックグラウンドであるPulseAudioの連携をすることができました。ストリーミング配信などでJACKを利用していくと、楽しみがより一層広がりそうです。

UbuntuJapaneseWiki: UbuntuStudioTips/Application/JACK-PulseAudio (最終更新日時 2012-01-10 11:49:21 更新者 匿名)