Ubuntu Weekly Recipe

第177回 サウンドシステムの使いこなし

この記事を読むのに必要な時間:およそ 4 分

サウンドサーバー間の連携

PulseAudioとJACKはそのままではオーディオデータを互いにやりとりすることができません。そこで利用されるのがPulseAudioのプラグイン拡張です。具体的にはパッケージ「pulseaudio-module-jack」に含まれるモジュール「module-jack-sink」「module-jack-source」です。PulseAudio側でこのモジュールを有効にすると,起動しているJACKをあたかもひとつのサウンドデバイスのように扱うことができるようになります。

ロードするには端末(gnome-terminal)で以下のコマンドを実行します。この場合はPulseAudioとJACKをつなぐ入出力ポートが2つずつ開かれますが,マルチチャネルで接続したい場合は3(=Left+Right+Center出力)や5(5ch出力)や7(7ch出力)を指定することになるでしょう。

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

ポートが開かれたら,JACK側はQjackctlやPatchageで,PulseAudio側はPulseAudio Volume Controlでポートを接続します。

図4 PatchageとPulseAudio Volume Control。連携時には両方をつなぐSink/Sourceとplayback/captureが利用可能となる

図4 PatchageとPulseAudio Volume Control。連携時には両方をつなぐSink/Sourceとplayback/captureが利用可能となる

ALSAライブラリーとPulseAudioの音声入出力については,本連載の第144回で少し触れている通り,Ubuntu環境の標準ではPulseAudioが「ALSAデバイスのふりをするもの」として追加され,標準の入出力先として設定されています。この設定はファイル「/usr/share/alsa/pulse.conf」に記述されています。⁠/usr/share/alsa/alsa.conf」を編集することでpulse.confをロードするエントリを削除すれば,ALSAライブラリーを利用するソフトウェアから直接,ALSAカーネルモジュールに出力するようになります。しかしUbuntuで利用する多くのソフトウェアはPulseAudioに対して直接音声入出力を行うようになっているため,影響を受けるのはALSAデバイスを直接指定しているソフトウェアだけです注2)⁠一般的なデスクトップ環境では,ウェブブラウザ上で動画再生やゲームを実装するAdobe Flash Playerに限定されるでしょう。

注2
アプリケーションによっては任意に出力先を指定できるものがあります。

JACKのネットワーク機能

PulseAudioと同じように,JACKもLAN内の別なコンピューターと連携することができます。これは,Ubuntu 10.10以降で利用可能なJACKのパッケージ「jackd2」が備える機能となります。

設定に先立ち,サウンドデバイスに接続して実際に音声を出力するコンピューターをマスター,マスターにネットワーク接続してオーディオデータを転送するコンピューターをスレーブと呼ぶことにします。JACKのネットワーク機能は以下の手順で起動します。

  1. マスター側でQjackctlを使い,通常通りサウンドデバイスを利用するようにJACKを起動
  2. スレーブ側でQjackctlのDriverを「netone」に設定してJACKを起動。この際,端末でifconfigなどを実行してスレーブのIPアドレスを調べておく
  3. マスター側で端末を開き,コマンド「$ jack_netsource -H (IPアドレス);」を実行

筆者のUbuntu Studioではうまくいかなかったのですが,Avahiを適切に設定しているUbuntu同士であれば,IPアドレスの代わりにホスト名も使うことができるでしょう。

JACKのネットワーク機能が立ち上がると,スレーブのplayback/captureポートがマスターのcapture/playbackポートとして認識されますので,Patchageなどでマスター/クライアントポートを接続することでオーディオデータを転送することができるようになります。

図5 Patchageでスレーブ側のポートを表示

図5 Patchageでスレーブ側のポートを表示

図6 Patchageでマスター側のポートを表示

図6 Patchageでマスター側のポートを表示

なお,コマンド「$ man jack_netsource;」を実行することでマニュアルを参照することができます。音切れが気になる場合は,コマンドラインから起動オプションのネットワークパケットのサイズを調整することで対応します。

著者プロフィール

坂本貴史(さかもとたかし)

Ubuntuのマルチメディア編集環境であるUbuntu Studioのユーザ。主にUbuntu日本コミュニティとUbuntu Studioコミュニティで活動。いつかユーザ同士で合作するのが夢。