UbuntuJapaneseWiki

Linuxのサウンド関連で、以下の名前をよく目にすると思います。

サウンドシステムに関して様々な技術が入り乱れていて一見してよくわからず、サウンドを巡るトラブルを解決しようとしても、どれに関して調べればよいのかわからず、途方に暮れてしまうことがあります。

この文書では、Ubuntuとその派生ディストリビューション、およびUbuntu Studioに関して、サウンドに関する標準状態について概説します。大まかな関係を把握することで、トラブルの解決の一助になれば幸いです。

Ubuntuの標準状態(インストールしたての状態)

PulseAudio Inkscape用SVGファイル soundStructure-PulseAudio.svg

基本的に、すべての音声ストリームはすべてPulseAudioに集まります。その後、ALSAのカーネルモジュールを経由して1サウンドデバイスに送られ、発音されます。

ALSAにとってPulseAudioは仮想のデフォルト・サウンドデバイスに設定されている2ので、ALSAをバックエンドに使うフロントエンドで生成した音声ストリームも、PulseAudioに集まります。

  1. PulseAudio側ではALSAカーネルモジュール用モジュールとして「alsa-module-cards」がロードされる。 (1)

  2. /usr/share/alsa/pulse-alsa.conf を参照のこと。PulseAudio側では、ALSAライブラリ用モジュールとして「alsa-module-sink」「alsa-module-source」がロードされる。 (2)

特殊なパッケージを導入したり1、設定ファイルを変更すると、フロントエンドで利用するバックエンドを変更したり、バックエンド同士の連携ができます。例えばパッケージ「phonon-backend-gstreamer」を導入すると、phononのバックエンドとしてGstreamerを指定することができる2ようになります。

  1. 例えばパッケージ「vlc-plugin-jack」を導入することで、VLC Media PlayerをJACKバックエンドで利用できる。パッケージ「libsdl1.2debian-pulseaudio」を導入すると、SDLアプリケーションをPulseAudioバックエンドで利用できる。 (1)

  2. 「phonon-backend-mplayer」や「phonon-backend-vlc」はまだパッケージになっていない。 (2)

Ubuntu Studioの標準状態(インストールしたての状態)

Ubuntuの標準状態に加え、以下が標準でインストールされます。正確に言うと、パッケージ「ubuntustudio-audio」でJACK関連パッケージとオーディオ編集ソフトウェアが、「ubuntustudio-audio-plugins」でプラグイン関連がインストールされます。

FFADO

IEEE1394 (Firewire) 接続のサウンドデバイスのための、サウンドドライバとサウンドミキサー。FreeBOBの後継。FirewireドライバにカーネルのFirewireモジュールを使う。

Jack Audio Connection Kit

低レイテンシを実現するサウンドサーバ。トランスポート機能を持ち、対応アプリケーション間の音声、MIDIデータのやりとりを仲介。

LADSPAプラグイン

Linuxのためのオーディオ・プラグイン規格であるLinux Audio Developers Simple Plugin APを採用したプラグイン。

DSSIプラグイン

LADSPAを拡張した規格であるDisposable Soft Synth Interfaceを採用したプラグインで、主にソフトウェア音源に使われる。

LV2プラグイン

LADSPAを拡張した後継規格であるLV2を採用したプラグイン。Ubuntu 10.04からリポジトリに含まれた。

Lucid以前は、JACKを起動するとPulseAudioに対して「pasuspender」を実行し、PulseAudioを休止状態にしていましたが、Maverick以降ではこれがなくなりました。そのため、サウンドデバイスとJACKを接続する際に、あらかじめそのサウンドデバイス経由でPulseAudioが音声を出力していないようにする必要があります。サウンドデバイスの競合が発生してしまうからです。

加えて、GstreamerやXine、Phononなど、デスクトップ環境が利用しているバックエンドは、標準設定ではJACKを使えません。

JACK] Inkscape用SVGファイル soundStructure-JACK.svg

Firewire(IEEE1394)のカーネルモジュールは新旧があるため、1394系として記述してあります。1

  1. 詳しい情報は、https://ieee1394.wiki.kernel.org/ を参照のこと。 (1)

Old Firewire Stacks
 * ieee1394
 * ohci1394
 * sbp2
 * eth1394
 * dv1394
 * raw1394
 * video1394

New Firewire Stacks
 * firewire-core
 * firewire-ohci
 * firewire-sbp2
 * firewire-net

JACKの特徴

主要なバックエンドと代表的なアプリケーション

代表的なアプリケーションとその主要なバックエンドの関係リストを下に示します。SDLやPortAudioアプリケーションは各アプリケーションでバックエンドを指定する事ができます。また、独自に複数のバックエンドを切り替える事が可能なアプリケーションも相当数あります。加えて、バックエンド自体がそのバックエンドを変更することもできます。

PulseAudioアプリケーション

Gstreamerアプリケーション

ALSAアプリケーション

SDLアプリケーション

PortAudioアプリケーション

JACK Audio Connection Kitアプリケーション

UbuntuJapaneseWiki: UbuntuStudioTips/Setup/UbuntuSoundSystem (最終更新日時 2012-01-10 11:49:13 更新者 匿名)