PulseAudio は、 freedesktop.orgプロジェクトを通じて配布されるネットワーク対応のサウンドサーバープログラムです。主にLinux上で動作し、Microsoft Windows上のWindows Subsystem for LinuxやAndroid上のTermuxなどが含まれます。また、FreeBSD、 OpenBSD、macOSなどのさまざまなBSDディストリビューション、 Illumosディストリビューション、Solarisオペレーティングシステムでも動作します。アプリケーションとハードウェア間のミドルウェアとして機能し、生のPCM オーディオストリームを処理します。[ 5 ]
PulseAudioは無料のオープンソースソフトウェアであり、 LGPL-2.1以降のライセンス条件に基づいてライセンスされています。[ 4 ]
これは2004年にPolypaudioという名前で作成されましたが、2006年にPulseAudioに改名されました。[ 6 ]
PulseAudio は、より新しいPipeWireと競合しており、PipeWire は互換性のある PulseAudio サーバー (pipewire-pulse として知られています) を提供し、現在ではFedora Linux、Ubuntu、Debianなど多くの Linux ディストリビューションでデフォルトで PipeWire が使用されています。[ 7 ] [ 8 ] [ 9 ]
Microsoft Windows上では、PulseAudio はWindows Subsystem for Linux上で動作します。
NTカーネルは以前はMinGW ( GCCやbinutilsなどのさまざまなツールを含むGNUツールチェーンの実装)を介してサポートされていました。しかし、NTカーネルポートは2011年以降更新されていません。[ 10 ]


大まかに言うと、ALSAはサウンドハードウェアドライバを提供するカーネルサブシステムであり、PulseAudioはアプリケーションとALSA間のインターフェースエンジンです。ただし、PulseAudioの使用は必須ではなく、PulseAudioがなくてもオーディオの再生やミキシングは可能です。
PulseAudioはサウンドサーバーとして機能し、1つ以上のソース(プロセス、キャプチャデバイスなど)からのサウンド入力を受け入れるバックグラウンドプロセスが作成されます。バックグラウンドプロセスは、これらのサウンドソースを1つ以上のシンク(サウンドカード、リモートネットワークPulseAudioサーバー、または他のプロセス)にリダイレクトします。 [ 11 ]
PulseAudioの目標の一つは、ハードウェアに直接アクセスしようとするプロセス(従来のOSSアプリケーションなど)からのストリームも含め、すべてのサウンドストリームをPulseAudio経由でルーティングすることです。PulseAudioは、 aRtsやESDなどの他のオーディオシステムを使用するアプリケーションにアダプタを提供することでこれを実現します。
Linuxにおける一般的なインストールシナリオでは、ユーザーはALSAをPulseAudioが提供する仮想デバイスを使用するように設定します。そのため、ALSAを使用するアプリケーションはPulseAudioに音声を出力し、PulseAudioはALSA自体を使用して実際のサウンドカードにアクセスします。PulseAudioは、PulseAudioを直接サポートしたいアプリケーション向けに独自のネイティブインターフェースを提供するとともに、ESDアプリケーション向けのレガシーインターフェースも提供しているため、ESDの代替としてそのまま使用できます。
オープンソースアプリケーションの場合、PulseAudioはpadspユーティリティを提供し、などのデバイスファイルを置き換えることで/dev/dsp、アプリケーションにサウンドカードを排他的に制御していると錯覚させます。実際には、アプリケーションの出力はPulseAudioを経由してルーティングされます。
libcanberraはデスクトップイベントサウンド用の抽象APIであり、「PulseAudioサンプルキャッシュAPI」を完全に置き換えるものです。
libSydneyは「PulseAudioストリーミングAPI」の完全な代替であり、最終的にはlibSydneyがPulseAudioで使用される唯一のオーディオAPIになる計画が立てられています。[ 15 ]
PulseAudioの主な機能は次のとおりです。[ 11 ]
PulseAudio は、 Fedora Linux のバージョン 8 から一般ユーザー向けに初めて登場し、 [ 18 ]その後、Ubuntu、Debian、[ 19 ] Mandriva Linux、openSUSEなどの主要な Linux ディストリビューションに採用されました。 GNOMEプロジェクトやKDEでもPulseAudio がサポートされており、 Plasma Workspacesに統合され、Phonon (KDE マルチメディア フレームワーク) とKMix (統合ミキサー アプリケーション) のサポートが追加され、マルチ チャンネル スピーカーの設定を支援する「スピーカー セットアップ」 GUI も追加されています。 PulseAudio は、 IllumosディストリビューションOpenIndianaでも利用可能で、 MATEデスクトップ環境ではデフォルトで有効になっています。
Nokia N900、Nokia N9、Palm Pre [ 20 ]を含むさまざまなLinuxベースのモバイル デバイスはPulseAudio を使用しています。
Tizenは、 Linux Foundationのプロジェクトであり、 IntelとSamsungで構成される技術運営グループ(TSG)によって管理されているオープンソースのモバイルオペレーティングシステムで、PulseAudioを使用しています。
JACKは、リアルタイムかつ低遅延(5ミリ秒以下)のオーディオパフォーマンスを提供するサウンドサーバーです。JACK2以降は、対称型マルチプロセッシングを利用することで効率的な負荷分散をサポートしています。つまり、すべてのオーディオクライアントの負荷を複数のプロセッサに分散させることができます。JACKは、 Ardour、ReZound、LinuxSamplerなどのプロフェッショナルオーディオアプリケーションで推奨されるサウンドサーバーであり、多くの無料オーディオ制作ディストリビューションでデフォルトのオーディオサーバーとして使用されています。
JACKとPulseAudioは共存可能です。JACKが実行されている間、PulseAudioは自動的にJACKクライアントとして接続し、PulseAudioクライアントがJACKクライアントと同時に音声を生成および録音できるようにします。[ 36 ]
PipeWireは、「PulseAudioとJackの両方が現在扱っているユースケースをサポートすることを目指した」オーディオおよびビデオサーバーです。[ 37 ] [ 38 ]
JACKとPulseAudioが登場する以前は、これらのシステムにおける音声処理は、多目的統合オーディオソリューションによって行われていました。これらのソリューションはミキシングや音声ストリーミング処理を完全に網羅するものではありませんでしたが、最終的な音声ストリームをサウンドカードに送信するために、JACKとPulseAudioによって現在も使用されています。
OSSはLinuxだけでなくBSD OSや他のUnixでも利用可能です。これが唯一の利点かもしれません。なぜなら、このシステムはあまり強力ではなく、2.5カーネルでALSAに正式に置き換えられたからです...