仕事中によく使うミュージックプレーヤ"Audacious"のオーディオ出力を良く分からないまま使っていたので調べてみました。
目次
出力プラグイン
以下の7つから選べます。
- PulseAudio 出力
- OSS4 出力
- ALSA 出力
- Sndio 出力
- SDL 出力
- JACK 出力
- ファイル出力プラグイン
この出力プラグインは「ファイル出力プラグイン」以外はサウンドサーバのようです。
オーディオデータをOutputするので"出力"、他のサービス(デーモン)のInputになるので"プラグイン"という表記になっているようです。
サウンドサーバ
そもそもサウンドサーバとは何でしょうか。
役割
- サウンドをミックス
- 各種デバイスへの接続
それぞれ詳細を確認してみました。
サウンドミックス
ソフトウェアは再生時にサウンドデバイスに接続してオーディオデータを流します。
この時、該当のサウンドデバイスを占有すると他のソフトウェアは音を出すことができなくなってしまうので、同時にオーディオデータが流れてきたら"ミックス"してひとつのオーディオデータとしてサウンドデバイスに送ります。
※Windowsの場合はカーネルミキサーが同様の機能を受け持ちますが、ピュアオーディオ利用する際はASIOなど敢えて占有(カーネルミキサーをバイパス)する様なものもあります
出力プラグイン説明
PulseAudio
Ubuntu 8.04から標準採用されています。
オーディオデータを一度PulseAudioで受け、後述するALSAやEDS(Enlightened Sound Daemon)のようなサウンドデーモンに渡します。
OSS4(Open Sound System version 4)
"Open Sound System"のバージョン4です。
前身のOSS(Open Sound System)自体は1992年にリリースされ多くのOSに実装されましたが、以下の仕様によりデスクトップ環境の復旧とともに利用しなくなりました。
- 同時に音声出力出来るライン出力が4つ
- 最大2ch
- サウンドミックスができない
逆にメリットしては、古いデバイスをサポートしている(デバイスがOSSしかサポートしていなかったりする)ことや、ハードウェアに直接アクセスすることでしょうか。
ハードウェア直接アクセスはデメリットにもなり得ますが...。
ALSA(Advanced Linux Sound Architecture)
Linuxにおける高機能なサウンドシステムを提供するためのソフトウェア群(Linuxカーネルコンポーネント)です。
レイテンシが短く音質劣化が少ないという特徴があり、Linux環境でのサウンド再生・録音のスタンダードです。
※ALSAサブシステムは標準入出力先としてサウンドデバイスではなくPulseAudioを指定
Sndio
音楽アプリケーションに必要な同期メカニズムと信頼性に特に注意を払って設計されたオーディオフレームワークです。
SDL(Simple DirectMedia Layer)
マルチメディアハードウェアコンポーネント用のハードウェア抽象化レイヤを提供するソフトウェア開発ライブラリです。
オーディオデータの管理・再生・録音を実装しており、音声ミキシング用の複雑なオーディオ機能を有しています。
JACK
低レイテンシで呼び出されたJACK対応アプリケーション同士でのオーディオ、MIDIデータ両方の接続を提供するサウンドサーバデーモンです。
ファイル出力プラグイン
これは再生用ではなく、オーディオデータを変換して書き出したりするためのプラグインになります。