Advanced Linux Sound Architecture

Advanced Linux Sound Architecture (ALSA) は、サウンドカードのデバイスドライバを提供するOpen Sound System (OSS)を置き換えるために開発されたLinuxカーネルコンポーネントである。ALSAプロジェクトの初期の目標は、サウンドカードハードウェアの自動設定や、複数のサウンドデバイスのスマートな取扱いなどであったが、それらは概ね達成された。JACKなどのいくつかのフレームワークは、低遅延でプロフェッショナル級の編集・ミキシングを実現するためにALSAを利用している。

ALSAプロジェクトは、1998年、Jaroslav KyselaによってGravis UltrasoundサウンドカードのためのLinuxデバイスドライバが書かれたことから始まった。ALSAは、2002年にLinuxカーネル2.5開発版(2.5.4-2.5.5)に導入されるまで、Linuxカーネルとは別個に開発されていたLinux 2.5.5 release notes。2.6では、後方互換レイヤーがあったとはいえ、標準設定でOSSを置き換えた。

 特徴 
ALSAは、その構想時点ではOSSがサポートしていなかったいくつかの機能をもつよう設計されている。
 ハードウェアベースのMIDI演奏
 複数チャンネルのハードウェアによるミキシング
 全二重通信
 マルチプロセッサに対応した、スレッドセーフなデバイスドライバ
これらの機能を美しくサポートするため、ALSAはOSSよりも巨大で複雑なAPIをもっている。そのため、ALSAのサウンド技術を利用するアプリケーションを開発することはOSSほど簡単ではない。しかし、ALSAにはOSSのエミュレーションレイヤーがあるため、より簡素で可搬性の高いOSSのAPIを利用することもできる。

ALSAはデバイスドライバの他に、カーネルドライバと直接やりとりせずに高レベルのAPIを使ってドライバ機能を使いたいという開発者のために、ユーザ空間のライブラリも提供している。ハードウェアの能力を直接反映しようとするカーネルAPIとは違って、ALSAのユーザ空間ライブラリは、異なるハードウェア間でも可能な限り同じように扱えるよう、抽象的なインタフェースを提供している。これは、一部にはソフトウェアプラグインを用いて実現されている。たとえば、現在の多くのサウンドカードや組込みサウンドチップは「マスターボリューム」コントロールをもたないが、これらのデバイスのためにユーザ空間ライブラリは「softvol」プラグインによってソフトウェアボリュームコントロールを提供している。そのため、通常のアプリケーションソフトウェアはこれらの違いを認識する必要がない。

 脚注 

 関連項目 
 HAL (ソフトウェア)
 PulseAudio
 Open Sound System
 KMix
 JACK
 PipeWire

 外部リンク 
 公式サイト
 http://alsa.opensrc.org/ (ALSAのウィキ)

Category:API
Category:音声処理
Category:1998年のソフトウェア