PulseAudio(以前はPolypAudioと呼ばれていた)は、クロスプラットフォームでネットワークに対応したサウンドサーバのプロジェクトであり、 Enlightened Sound Daemon(ESD) の置き換えを指向している。

PulseAudio
開発元 Lennart Poettering, Pierre Ossman, Shahms E. King, Tanu Kaskinen, Colin Guthrie
最新版
14.2 / 2021年1月16日 (3年前) (2021-01-16)
リポジトリ ウィキデータを編集
プログラミング
言語
C言語
対応OS Linux, Solaris, FreeBSD, NetBSD, Mac OS X, Windows
種別 サウンドサーバ
ライセンス LGPL
公式サイト www.pulseaudio.org
テンプレートを表示

PulseAudioはWindowsとPOSIX互換のシステム(Linuxなど)で動作する。 ライセンスについては、ライブラリの一部はLGPL、サーバそのものはGPLとなっている。

特徴

編集
  • アプリケーションごとのボリュームコントロール
  • ローダブル・モジュール対応を伴った拡張プラグイン構造
  • 複数のオーディオソース/シンクに対応
  • 遅延量の計測に対するサポート
  • プロセッサーリソースの効率的な利用のためのゼロコピー英語版メモリアーキテクチャ
  • アプリケーションが音声を再生中に、音声の出力デバイスを変更できる(アプリケーションが別途対応する必要がなく、また変更されたことを検知する必要もない)
  • スクリプト処理に対応したコマンドライン・インターフェイス
  • コマンドラインから設定変更できるサウンドデーモンとして動作する
  • サンプリングレート変換、再サンプリングにビルトインで対応
  • 複数のサウンドカードをひとつにまとまられる
  • 複数の再生ストリームを同期させることができる
  • Bluetoothオーディオデバイスを動的に検出

アプリケーションとの関係

編集
 
アプリケーションとの関係(Manuel Amador, 2007: [1])

PulseAudioはバックグラウンドで動作するサウンドサーバであり、1つ以上の音声入力(プロセスや録音デバイスなど)からデータを受け取って1つ以上の音声出力(サウンドカードやネットワーク上のPulseAudioサーバ、他プロセスなど)に送る。

PulseAudio の目標の一つは、旧来の OSS を利用したアプリケーションなどのようにハードウェアに直接アクセスする代わりに、すべての音声ストリームをPulseAudio経由に集約させることである。そのために aRts や ESD といった他のオーディオシステムの利用するアプリケーションに対してアダプターを提供する。

通常の Linux 環境は、PulseAudio 提供の仮想デバイスを ALSA が使うように構成される。これにより、ALSA を利用するアプリケーションは結局 PulseAudio にデータを送ることとなり、PulseAudio からは ALSA を経由してサウンドカードにデータが送られる。また、PulseAudio に直接対応しようとするアプリケーションに対しては、 ESDアプリケーション向けの旧来のインターフェイスだけでなく、ESDを置き換える位置づけのネイティブなインターフェイスも提供する。

OSSアプリケーションに対しては、padsp ユーティリティを提供する。 これにより /dev/dsp などのデバイスを置き換えた場合、アプリケーション側からは排他的にサウンドカードをコントロールしているように見えるが、実際の出力はPulseAudio経由で行われる。

関連項目

編集