新しいオーディオサーバー Pipewire が Ubuntu の次期バージョンに登場

Table of Contents

新しいオーディオサーバー Pipewire が Ubuntu の次期バージョンに登場

Ubuntu の次期リリース、バージョン 22.10 (コードネーム Kinetic Kudu) では、オーディオ サーバーが比較的新しい PipeWire に切り替わります。

慌てる必要はありません。JM Barrie氏が言ったように、「こうしたことは過去にも起こっており、また必ず起こるでしょう。」Fedoraはバージョン34でPipeWireに移行しましたが、今から1年以上前のことです。Ubuntuでサウンドや音楽のプロレベルのクリエイターやエディターではないユーザーは、この計画された変更に気付かないかもしれません。

現在、UbuntuのほとんどのエディションはPulseAudioサーバーを使用しています。これは、Ubuntuの2番目のLTSリリースであるバージョン8.04 Hardy Heronで採用されました(Ubuntu StudioエディションはJACKを使用しています)。Fedora 8もPulseAudioに移行しました。PulseAudioが標準になる前は、多くのディストリビューションがESD(Enlightened Sound Daemon)を使用していました。ESDは、デスクトップで最もよく知られているEnlightenmentプロジェクトから生まれたものです。

PulseAudio は 2004 年にバージョン 1.0 をリリースし、現在はバージョン 15 です。PulseAudio の主任開発者の 1 人は、今では有名かつ物議を醸している systemd のプロジェクト リーダーとしてよく知られている Lennart Poettering 氏です。そのため、最近は他のことで忙しいと考えるのが妥当かもしれません。

PipeWireはビデオストリームも処理するため、名前の通りオーディオのみを扱う従来のPulseAudioよりも少し多くの機能を備えています。この変更が何を意味するのかを説明するために、まずオーディオサーバーとは何か、そして何をするのかを明確にしておきましょう。

Linuxのサウンド再生ソフトウェアシステムはスタックであり、ネットワークスタックと同様に、異なる機能を持つ複数のレイヤーで構成されています。最下層にはサウンドドライバーがあり、Linuxカーネルと密接に連携しています。その上にサウンドサーバーがあり、その上にサウンドを再生するアプリがあります。

PulseAudio(およびPipeWireの機能の一部)はサウンドサーバーです。さまざまなアプリから基盤となるサウンドハードウェアへのアクセスを管理し、再生前にオーディオストリームをミックスします。サウンドサーバーがなくてもサウンドを再生または録音することは可能ですが、サウンドサーバーがない場合、現在サウンドを再生しているプログラムがオーディオデバイスを所有します。つまり、プログラムがオーディオデバイスを完全に排他的に制御するため、オペレーティングシステムはソースをミックスできません。

例えば、音楽を聴きながら新着メッセージの通知を聞きたい場合は、サウンドデバイスを管理するサウンドサーバーを設置するのが効果的です。サウンドサーバーは入力を管理し、音楽プレーヤーをミュート(あるいはフェードアウト)したり、通知音源をフェードインさせたり、音楽プレーヤーを再びフェードインさせたりすることができます。

通常のヘッドフォンソケットにヘッドフォンを接続すると、オンボードサウンドカード、あるいは拡張スロットに搭載されたより高性能なサウンドカードによって駆動されます。しかし、USBヘッドセットを使用する場合、それは実質的にPCIではなくUSB経由で接続された独立したサウンドカードであり、サウンドサブシステムはサウンドデバイスの接続や取り外しに応じて、それらの接続や取り外しを管理する必要があります。あるいは、取り外しを行わない場合は、現在優先されているデバイス間の切り替えを管理する必要があります。これは非常に複雑な作業です。

サウンド サーバーは、コンピューターのサウンド カードまたはチップを駆動するレイヤーの上に配置されます。

Linuxのサウンドシステム(低レベルのハードウェアドライバ)の元祖は、Open Sound System(OpenSound、略してOSS)でした。OpenSoundはクロスプラットフォームツールで、FreeBSDやOpenSolarisなどの他のオペレーティングシステムでも動作します。OpenSoundは広く採用され、大きな成功を収めたため、そのプログラマーは後にNCRに買収された4Frontという商用企業に採用されました。

  • Gopherの復活: ウェブ以前のハイパーテキストサービスは今も健在
  • FreeBSD 13.1はPowerPCからx86-64まですべてに対応しています
  • CentOS の代替となる新世代の OS と、それらすべての最高峰である RHEL 8.6
  • GNUコンパイラコレクションが中国のLoongArch CPUファミリーのサポートを追加

その後、Ubuntuを含む多くのディストリビューションがALSAを削除し、代わりにALSAに切り替えました。ALSAはOpenSound APIもサポートしているため、問題なく動作しました。ALSA自体はLinuxカーネルバージョン2.5.5でメインライン化され、カーネル2.6以降ではOpenSoundに取って代わりました。

PulseAudio もクロスプラットフォームで、FreeDesktop.org プロジェクトのプロジェクトです。Linux では ALSA をベースにしています。

PulseAudioも当時は物議を醸しましたが、Linuxのオーディオは混乱していたと言っても過言ではありませんでした。PulseAudioは確かに機能し、多くの問題を解決しましたが、レイテンシが高く、CPUを大量に消費する可能性がありました。一部のオーディオ専門家は、より低レイテンシのサウンド処理を提供するJACKという競合オーディオサーバーを支持していました。実際、JACKの開発はカーネル2.6におけるオーディオレイテンシの削減を推進する原動力となりました。

ごめん

謝罪のAudacity、重大なコミュニケーション不足を受けてプライバシーポリシーを改訂

続きを読む

PipeWireはLinux上のメディア処理をさらに簡素化する計画です。サウンドサーバーとしてだけでなく、ビデオ処理も行います。プロジェクトリーダーのWim Taymans氏は、1999年にGStreamerフレームワークを共同開発した一人です。PipeWireはまだバージョン0.3と比較的新しいものですが、PulseAudioJACKの代替を目指しています。ALSAがOSSインターフェースをサポートすることで既存のコードが動作し続けるようにしたのと同様に、PipeWireはJACKインターフェースをサポートするようになりました。少なくとも理論上は、JACKを使用していたユーザーは同じソフトウェアを使い続けることができ、PipeWireでも引き続き動作するはずです。

PipeWire は、GNOME、Wayland ディスプレイ サーバー、Flatpak アプリと連携しながら、PulseAudio よりも CPU 使用量が少なく、レイテンシも優れているため、JACK の置き換えにも役立つことを目指しています。

Discover More