サウンドシステム概要

低レベルなサウンドシステム

  • サウンドデバイスと密接で、音声出力をサウンドカードに渡したりMIDI信号をMIDI音源へ送信したりする

  • 高レベルなサウンドシステムからの出力を受け取るバックエンドともなる

  • サウンドデバイスのミキサーを設定

  • ライン入力などの入力もこのレベルで処理されるが上位のサウンドデーモンからも扱える

Open Sound System (OSS)

  • 古くから存在する

  • /dev/dsp/dev/midi/dev/sequencerなどのデバイスファイルを通じてアクセスし、旧バージョンでは/dev/dspの同時使用は不可

  • カーネルのOSSドライバかAdvanced Linux Sound Architecture (ALSA)のOSSエミュレーションで使用

  • 新しいバージョン4系では/dev/dsp同時使用やAdvanced Linux Sound Architecture (ALSA)エミュレーションなど新機能も

Advanced Linux Sound Architecture (ALSA)

  • Open Sound System (OSS)より新しく高機能

  • Open Sound System (OSS)との互換性(PCM,ミキサー,シーケンサ)があり、Open Sound System (OSS)向けのソフトウェアがそのまま動作する

  • PCM音声(ミキサー制御含む)とMIDI信号の両方を扱うことができる

  • ドライバ,ユーザ空間ライブラリ(alsa-lib),各種ツールなどから成り、アプリケーションはユーザ空間ライブラリのAPIを通して制御を行う

  • /dev/snd/以下のデバイスファイルが内部的に用いられる

  • プラグイン(モジュール)により、音声の合成によるデバイス同時使用,サウンドデーモンとのやりとり,加工,ファイル書き出しなどを実現

  • hwプラグインではデバイスへの直接アクセスを提供し、低遅延(同時使用不可)のためサウンドデーモンから好んで用いられる

[注記]メモ

OSS互換の機能は、Ubuntuなどの一部ディストリでは無効にされており、これを有効にするにはカーネルのビルド設定を変更してビルドする必要があるが、PCM音声の再生であればaoss(ALSAサウンドシステムへ出力)やpadsp(PulseAudioへ出力)で音声を出力することはできる。

[注意]注意

OSS互換の機能で/dev/dspを用いる場合、同時に複数の音声を出力することはできず、ALSAアプリケーションやサウンドデーモン(ALSAへの出力時)とも競合する。これがPulseAudioの使用を想定した一部ディストリで機能が無効にされている原因の1つである可能性もある。

関連セクション

サウンドデーモン(サウンドサーバ)

対応アプリケーションからの音声を待ち受けるデーモンで、音声を受け取ったらこれを合成し、低レベルなサウンドシステムへ渡す。

ゲームとの相性が悪いことも多く、デーモンを止めた上で

といった回避策を行うことで改善される[15]

PulseAudio

  • 汎用サウンドデーモン・色々な環境(デスクトップ環境など)で使用可

  • サウンドカードやアプリケーションごとに音量を指定可

  • 出力先や入力元はアプリケーションごとに指定可

  • esd互換プロトコルをモジュールでサポート

  • 出力先(sink),入力元(source)、追加機能などはモジュールで提供され、設定ファイルで読み込みの設定を記述

  • 色々なツールで情報取得や制御ができる

  • 遠隔マシンへの音声転送が可能(module-native-protocol-tcp)

JACK Audio Connection Kit (JACK)

  • 低遅延でオーディオ作成用途に特化したサウンドデーモン

  • 複数のJACKアプリケーションの演奏位置同期機能(JACKトランスポート)

  • JACKアプリケーションの出力(読み込み)ポートと別のJACKアプリケーションの入力(書き込み)ポートを接続して音声を渡す形

  • QjackCtlというGUIがよく用いられ、デーモン制御以外にポート接続操作やJACKトランスポート制御などもできる

  • 遠隔マシンへの音声転送が可能(NetJack)

  • JACK用のMIDIデバイス/アプリケーションが存在するが、Advanced Linux Sound Architecture (ALSA)のMIDIデバイスもデーモンの-XオプションでJACK上のMIDIデバイスとして利用可

その他のサウンドデーモン

Enlightened Sound Daemon(別名Esound, ESD)は以前のGNOMEで用いられていたサウンドデーモンで、遠隔マシンへの転送もできるのだが、PulseAudioがGNOME標準となり、GNOMEで用いられることはなくなった。

aRtsはKDE3で用いられていたサウンドデーモンだが、KDE4ではPhononに置き換えられ、使用されることはなくなった。

音声データの橋渡し的なシステム

GStreamer

Phonon

  • KDE4で使用

  • GStreamerやXineライブラリなどをバックエンドとして処理を渡す

  • KDEのマルチメディア設定で出力先とバックエンドの優先順位指定が可能

OSSラッパー

OSS向けアプリケーションを実行する際にこのラッパーを用いると別のサウンドシステムへ出力することができる。



[15] Advanced Linux Sound Architecture (ALSA)の既定の出力先がサウンドデーモンへ渡すプラグインの場合はその設定を消す必要がある