#title Ubuntuのサウンドシステムについて * '''対象とするUbuntu Studioのバージョン''' * 7.04 Feisty Fawn以降のすべてのリリース Linuxのサウンド関連で、以下の名前をよく目にすると思います。 * Advanced Linux Sound Architecture (ALSA) * Open Sound System (OSS) * FFADO * Pulse``Audio * Enlighten Sound Daemon (ESD) * Jack Audio Connection Kit (JACK) * Gstreamer * Xine * Phonon * analog Real time synthesizer (aRTs) サウンドシステムに関して様々な技術が入り乱れていて一見してよくわからず、サウンドを巡るトラブルを解決しようとしても、どれに関して調べればよいのかわからず、途方に暮れてしまうことがあります。 この文書では、Ubuntuとその派生ディストリビューション、およびUbuntu Studioに関して、サウンドに関する標準状態について概説します。大まかな関係を把握することで、トラブルの解決の一助になれば幸いです。 == Ubuntuの標準状態(インストールしたての状態) == [[attachment:soundStructure-PulseAudio.png|{{attachment:soundStructure-PulseAudio.png|PulseAudio|width=520, height=390}}]] Inkscape用SVGファイル [[attachment:soundStructure-PulseAudio.svg]] 基本的に、すべての音声ストリームはすべてPulse``Audioに集まります。その後、ALSAのカーネルモジュールを経由して<>サウンドデバイスに送られ、発音されます。 ALSAにとってPulse``Audioは仮想のデフォルト・サウンドデバイスに設定されている<>ので、ALSAをバックエンドに使うフロントエンドで生成した音声ストリームも、Pulse``Audioに集まります。 ||<>|| 特殊なパッケージを導入したり<>、設定ファイルを変更すると、フロントエンドで利用するバックエンドを変更したり、バックエンド同士の連携ができます。例えばパッケージ「phonon-backend-gstreamer」を導入すると、phononのバックエンドとしてGstreamerを指定することができる<>ようになります。 ||<>|| == Ubuntu Studioの標準状態(インストールしたての状態) == Ubuntuの標準状態に加え、以下が標準でインストールされます。正確に言うと、パッケージ「ubuntustudio-audio」でJACK関連パッケージとオーディオ編集ソフトウェアが、「ubuntustudio-audio-plugins」でプラグイン関連がインストールされます。 ||FFADO||IEEE1394 (Firewire) 接続のサウンドデバイスのための、サウンドドライバとサウンドミキサー。Free``BOBの後継。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を起動するとPulse``Audioに対して「pasuspender」を実行し、Pulse``Audioを休止状態にしていましたが、Maverick以降ではこれがなくなりました。そのため、サウンドデバイスとJACKを接続する際に、あらかじめそのサウンドデバイス経由でPulse``Audioが音声を出力していないようにする必要があります。サウンドデバイスの競合が発生してしまうからです。 加えて、GstreamerやXine、Phononなど、デスクトップ環境が利用しているバックエンドは、標準設定ではJACKを使えません。 [[attachment:soundStructure-JACK.png|{{attachment:soundStructure-JACK.png|JACK]|width=440, height=330}}]] Inkscape用SVGファイル [[attachment:soundStructure-JACK.svg]] Firewire(IEEE1394)のカーネルモジュールは新旧があるため、1394系として記述してあります。<> <> {{{ Old Firewire Stacks * ieee1394 * ohci1394 * sbp2 * eth1394 * dv1394 * raw1394 * video1394 New Firewire Stacks * firewire-core * firewire-ohci * firewire-sbp2 * firewire-net }}} == JACKの特徴 == * リアルタイム性能を高めて動作することが可能 * ドライバにFFADOライブラリを指定することで、ALSAやOSSでは使うことの出来ないFirewire接続のサウンドデバイスを使うことができる * JACKトランスポートによる、複数のJACK対応アプリケーションの演奏位置同期 * JACK対応アプリケーション同士の出力ポートと入力ポートの自由な接続が出来る。サウンドデバイスへの入出力も、入出力ポートとして仮想化される。 * JACK対応のMIDIデバイス/アプリケーションが存在するが、ALSA対応のMIDIデバイスもJACK上のMIDIデバイスとして利用可能。 * 上記すべての操作を、GUIアプリケーション「qjackctl」で可能 * 10.10で導入されたJACKのバージョン2では、ネットワークを経由して遠隔マシンとの音声同期が可能 == 主要なバックエンドと代表的なアプリケーション == 代表的なアプリケーションとその主要なバックエンドの関係リストを下に示します。SDLやPort``Audioアプリケーションは各アプリケーションでバックエンドを指定する事ができます。また、独自に複数のバックエンドを切り替える事が可能なアプリケーションも相当数あります。加えて、バックエンド自体がそのバックエンドを変更することもできます。 Pulse``Audioアプリケーション * Skype * Canberra (GNOMEデスクトップ環境の効果音) Gstreamerアプリケーション * Banshee * Totem * Rhythmbox * Amarok * Pi``Ti''Vi * Subtitle Editor * Kaffeine ALSAアプリケーション * Adobe Flash Player (plugin-container) * nspluginwrapper SDLアプリケーション * Avidemux * Kdenlive * Snes9x * Blender Port``Audioアプリケーション * Audacity * Mixxx JACK Audio Connection Kitアプリケーション * amSynth * Ardour * Bristol * Bitmeter * FeSTige * Hydrogen * JACK Rack * JACK Control * JAMin * JackEQ * Meterbridge * MusE * Patchage * QSampler * Qsynth (Fluid''Synth) * Rakarrack * Rosegarden * ZynAddSubFX