環境リバーブ
DirectX では、Interactive Audio Special Interest Group によって発行された Interactive 3-D Audio, Level 2 (I3DL2) 仕様に基づく環境リバーブをサポートしている。
DirectX 環境リバーブ エフェクトは、I3DL2 仕様のリスナー プロパティの実装である。このリリースでは、音源プロパティはサポートされていない。
リスナーに届くサウンドは、3 つの一時的なコンポーネントを持つ。
- 直接パスは、どのサーフェスにも反射せず、音源からリスナーにまっすぐに進むオーディオ シグナルである。したがって、直接パス シグナルは 1 つしかない。
- 初期反射音は、壁、床、天井などのサーフェスに 1、2 回反射した後、リスナーに届くオーディオ シグナルである。シグナルが、リスナーに届くまでに 1 回だけ壁に当たった音である場合、このシグナルは 1 次反射音と呼ばれる。リスナーに届くまでに壁に 2 回反射した音は、2 次反射音と呼ばれる。人間が通常個別に感知できるのは、1 次反射音または 2 次反射音だけである。
- 後期リバーブ、または単なるリバーブは、低次反射音の組み合わせ、通常、強さが減少していく連続するエコーの重なりで構成される。
初期反射音と後期リバーブの組み合わせは、室内エフェクトと呼ばれることもある。
リバーブ プロパティには次のものがある。
- 初期反射音および後期リバーブの減衰。
- ロールオフ係数、つまり反射したシグナルが距離に応じて減衰する割合。直接パスのロールオフ係数は、DirectSound リスナーによって管理される。
- 反射音の遅延。これは、直接パスのシグナルの到達と、最初の初期反射音の到達との時間差である。
- リバーブの遅延。これは、最初の初期反射音と、後期リバーブの到達との時間差である。
- ディケイ時間。これは、後期リバーブの到達と、その強さが 60 dB 減少する時間との時間間隔である。
- 拡散。後期リバーブの 1 秒あたりのエコー数に比例する。実装によって、リバーブ ディケイに従って密度は変化する。DirectX では、実装による許容範囲のパーセンテージを設定することによって、アプリケーションでこのプロパティを制御できる。
- 密度。後期リバーブの 1 Hz あたりの共振数に比例する。密度が低いほど、狭い室内の音のように、うつろな音になる。DirectX では、実装による許容範囲のパーセンテージを設定することによって、アプリケーションでこのプロパティを制御できる。
リバーブ プロパティは IDirectSoundFXI3DL2Reverb8 インターフェイスによって表され、環境のパラメータは DSFXI3DL2REVERB 構造体に含まれている。
DirectX では、山から下水管まで、さまざまなオーディオ環境のリバーブ プロパティを記述する数多くのデフォルトのパラメータ、つまりプリセット値をサポートしている。ほとんどのアプリケーションでは、IDirectSoundFXI3DL2Reverb8::SetPreset を使って、これらの環境のいずれかを簡単に選択できる。
カスタム プロパティを設定するには、IDirectSoundFXI3DL2Reverb8::SetAllParameters を使用する。IDirectSoundFXI3DL2Reverb8::GetAllParameters を使って、現在のプロパティを取得できる。