PulseAudio
開発元 | Lennart Poettering, Pierre Ossman, Shahms E. King, Tanu Kaskinen, Colin Guthrie |
---|---|
最新版 | 14.2 / 2021年1月16日 |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | Linux, Solaris, FreeBSD, NetBSD, Mac OS X, Windows |
種別 | サウンドサーバ |
ライセンス | LGPL |
公式サイト | www |
PulseAudio(以前はPolypAudioと呼ばれていた)は、クロスプラットフォームでネットワークに対応したサウンドサーバのプロジェクトであり、 Enlightened Sound Daemon(ESD) の置き換えを指向している。
PulseAudioはWindowsとPOSIX互換のシステム(Linuxなど)で動作する。 ライセンスについては、ライブラリの一部はLGPL、サーバそのものはGPLとなっている。
特徴
[編集]- アプリケーションごとのボリュームコントロール
- ローダブル・モジュール対応を伴った拡張プラグイン構造
- 複数のオーディオソース/シンクに対応
- 遅延量の計測に対するサポート
- プロセッサーリソースの効率的な利用のためのゼロコピーメモリアーキテクチャ
- アプリケーションが音声を再生中に、音声の出力デバイスを変更できる(アプリケーションが別途対応する必要がなく、また変更されたことを検知する必要もない)
- スクリプト処理に対応したコマンドライン・インターフェイス
- コマンドラインから設定変更できるサウンドデーモンとして動作する
- サンプリングレート変換、再サンプリングにビルトインで対応
- 複数のサウンドカードをひとつにまとまられる
- 複数の再生ストリームを同期させることができる
- Bluetoothオーディオデバイスを動的に検出
アプリケーションとの関係
[編集]PulseAudioはバックグラウンドで動作するサウンドサーバであり、 一つまたは複数の音声入力(プロセスや録音デバイスなど)からデータを受け取って一つまたは複数の音声出力(サウンドカードやネットワーク上のPulseAudioサーバ、他プロセスなど)に送る。
PulseAudioの目標の一つは、旧来のOSSを利用したアプリケーションなどのようにハードウェアに直接アクセスする代わりに、すべての音声ストリームをPulseAudio経由で扱うようにすることである。 そのために、aRtsやESDなど他のオーディオシステムの利用するアプリケーションに対してアダプターを提供する。
Linux環境では通常、PulseAudioが提供している仮想デバイスをALSAが使うように設定する。 こうすることで、ALSAを利用するアプリケーションはPulseAudioにデータを送るようになり、PulseAudioからはALSAを利用してサウンドカードにデータが送られる。 また、 PulseAudioに直接対応しようとするアプリケーションに対しては、 ESDアプリケーション向けの旧来のインターフェイスだけでなく、ESDを置き換える位置づけのネイティブなインターフェイスも提供する。
OSSアプリケーションに対しては、padsp ユーティリティを提供する。 これにより /dev/dsp などのデバイスを置き換えた場合、アプリケーション側からは排他的にサウンドカードをコントロールしているように見えるが、実際の出力はPulseAudio経由で行われる。