Ubuntu Weekly Recipe

第106回 PulseAudioでリモートスピーカを使う

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

PulseAudioは,Ubuntu 8.04から標準採用されている「音を扱うための仕組み」で,それまで使われていたものに比べて非常に高度なことができるようになっています(注1)。

今回のレシピでは,PulseAudioの基本的な機能から,ネットワーク経由で音を配信する機能までを紹介します。

注1
しかしPulseAudioへの移行期に,音が出ないなどのトラブルに見舞われる場合があったため,「音関係でトラブルに遭遇したらとりあえずPulseAudioを削除しろ」という扱いを受けたこともありました。

アプリケーションごとの再生音量の変更

Ubuntu 9.10では,画面右上の通知領域に表示されているスピーカのアイコンを右クリックして[サウンドの設定]を選択するか,[システム]-[設定]-[サウンド]でPulseAudioに関する設定ができます。

PulseAudioの機能として挙げられる代表的なものが,[サウンドの設定]の[アプリケーション]タブで,アプリケーションごとの音量をPulseAudio側で一元的に管理できることです(図1)。

筆者は,Flash Playerを使用した音楽ストリーミングサービスをPrismで常時利用していますが,そのサービスの音量調節のインターフェースが使いにくいため,PulseAudio側で音量調整しています。

図1 アプリケーションごとに,音量,ミュートを一元的に管理

図1 アプリケーションごとに,音量,ミュートを一元的に管理

ここで設定した音量は保存され、アプリケーションの次回起動時には、同じ音量で再生が開始されます。この保存されている設定を一括でリセットするには、ホームディレクトリの[.pulse]という隠しディレクトリに保存されているファイル["ランダムな英数字"-stream-volumes.tdb]を削除して、ログアウトするかPulseAudioをリスタートさせます。

LAN内の別のマシンに音を飛ばす

筆者は,最近ノートPCを購入し,こたつで作業をすることが多くなりました。しかし,ノートPCの小さなスピーカで音楽を再生するのは寂しく,同一LAN内のデスクトップ機に接続しているスピーカを使えないかと考えました(注2)。

注2
喫茶店にノートPCを持ち込んで作業しているときに,天井に設置されているスピーカからBGMが流れてくるイメージです。このイメージを自宅に持ち込み,筆者は「今居るのはこたつ喫茶だ」と思うことにしました。

そこで、PulseAudioのネットワーク機能を使って、デスクトップ機に接続されているスピーカを、あたかもノートPCに直接接続されているかのように使うことにしました(注3)。この方法では、ノートPC側で音楽ファイルがデコードされ、生の音のデータがルータを経由してデスクトップ機まで転送され、デスクトップ機に接続されたスピーカから音が出ます(図2)。

図2 筆者の環境での再生の流れ

図2 筆者の環境での再生の流れ

※図中のアイコンはTango Desktop Projectのものを使用しています。

注3
Apple製品のAirMac Express(国外での名称はAirPort Express)が備えているAirTunes機能のような使い方です。余談ですが,Ubuntu側からAirMac Expressに接続するための「pulseaudio-module-raop」というパッケージがあります。ですが筆者はAirMac Expressを所有していないため検証できていません。

ではさっそく設定していきます。

まずは,接続する方,される方ともに,「PulseAudio Preferences」(パッケージ名: paprefs)をインストールします。

[システム]-[設定]-[PulseAudio Preferences]を開き,接続される方(筆者の環境ではデスクトップ)は,[Network Server]タブで図3のように,3つの項目にチェックを入れます(注4)。

図3 接続される側の設定。
「Enable netwok acess to local sound devices」
「Allow other machines on the LAN to discover local sound devices」
「Don't require authentication」にチェックを入れる

図3 接続される側の設定。「Enable netwok acess to local sound devices」「Allow other machines on the LAN to discover local sound devices」「Don't require authentication」にチェックを入れる

注4
「Don't require authentication」にチェックを入れると,同一LAN内から認証なしで接続できてしまいます。認証を必要とする場合は,接続される側のCookie(~/.pulse-cookie)を接続する側にコピーして,チェックを外します。Cookieが一致しないユーザは接続できなくなります。

接続する側(筆者の環境ではノートPC)は,[Network Access]タブで図4のようにチェックを入れます。

図4 接続する側の設定。
「Make discoverable PulseAudio network sound devices available locally」にチェックを入れる

図4 接続する側の設定。「Make discoverable PulseAudio network sound devices available locally」にチェックを入れる

たったこれだけの設定で,接続する側の[サウンドの設定]の[出力]タブに,接続される側のサウンドデバイスが表示されます(図5)。

ノートPCからデスクトップ側のデバイスを選択すると,ノートPCで再生するすべての音がデスクトップに接続されたスピーカから出力されるようになります。手元のノートPCでDVDを再生しながら,音声部分をデスクトップに接続した5.1chオーディオで,といった使い方もできます。2chのオーディオで約1.6Mbps,5.1chで約6Mbpsの帯域を使っていますが,無線LAN経由でも気づくほどの遅延なく再生できています。

図5 デスクトップに接続されているUSBスピーカをノートPCから使えるように

図5 デスクトップに接続されているUSBスピーカをノートPCから使えるように

著者プロフィール

村田信人(むらたのぶと)

Ubuntu Japanese Teamメンバー。Ubuntuオフラインミーティングに参加するうちにUbuntu Japanese Teamの活動に興味を持ち,2009年8月に加入。

コメント

コメントの記入