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