PulseAudio

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

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

特徴

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

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

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

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

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

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

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

関連項目