次の方法で共有


環境リバーブ

DirectX では、Interactive Audio Special Interest Group によって発表された Interactive 3-D Audio, Level 2 (I3DL2) 仕様に準拠する環境リバーブを、部分的にサポートしている。DirectX 環境リバーブ エフェクトは、I3DL2 仕様のリスナー プロパティの実装である。ソース プロパティはサポートされていない。

リスナーに届くサウンドは、3 つの一時的なコンポーネントを備えている。

  • 直接パスは、どのサーフェイスにも反射せず、音源からリスナーにまっすぐに進むオーディオ シグナルである。
  • 初期反射音は、壁、床、天井などのサーフェイスに 1、2 回反射した後、リスナーに届くオーディオ シグナルである。シグナルが、リスナーに届くまでに 1 回だけ壁に当たった音である場合、このシグナルは 1 次反射音と呼ばれる。リスナーに届くまでに壁に 2 回反射した音は、2 次反射音と呼ばれる。人間が通常個別に感知できるのは、1 次反射音または 2 次反射音だけである。
  • 後期リバーブ、または単なるリバーブは、低次反射音の組み合わせ、通常は強さが減少していく連続するエコーの重なりで構成される。

初期反射音と後期リバーブの組み合わせは、室内エフェクトと呼ばれることもある。

DirectSound の実装では、空間エフェクトに送信されるシグナルだけが聞こえる。直接パスを聞くには、環境リバーブ エフェクトを持たない別のバッファで同時にサウンドを再生する。

リバーブ プロパティには次のものがある。

  • 初期反射音および後期リバーブの減衰。
  • ロールオフ係数、つまり反射したシグナルが距離に応じて減衰する割合。直接パスのロールオフ係数は、DirectSound リスナーによって管理される。
  • 反射音の遅延。これは、直接パスのシグナルの到達と、最初の初期反射音の到達との時間差である。
  • リバーブの遅延。これは、最初の初期反射音と、後期リバーブの到達との時間差である。
  • ディケイ時間。これは、後期リバーブの到達と、その強さが 60 dB 減少する時間との時間間隔である。
  • 拡散。後期リバーブの 1 秒あたりのエコー数に比例する。実装によっては、リバーブ ディケイに従ってエコーの密度が変化する場合がある。DirectX では、実装による許容範囲のパーセンテージを設定することによって、アプリケーションでこのプロパティを制御できる。
  • 密度。後期リバーブの 1 Hz あたりの共振数に比例する。密度が低いほど、狭い室内の音のように、うつろな音になる。DirectX では、実装による許容範囲のパーセンテージを設定することによって、アプリケーションでこのプロパティを制御できる。

リバーブ プロパティは IDirectSoundFXI3DL2Reverb8 インターフェイスによって表され、環境のパラメータは DSFXI3DL2Reverb 構造体に含まれている。

DirectX では、山から下水管まで、さまざまなオーディオ環境のリバーブ プロパティを記述する数多くのデフォルトのパラメータ、つまりプリセット値がサポートされている。ほとんどのアプリケーションでは、IDirectSoundFXI3DL2Reverb8::SetPreset を使って、これらの環境のいずれかを簡単に選択できる。

カスタム プロパティを設定するには、IDirectSoundFXI3DL2Reverb8::SetAllParameters を使う。IDirectSoundFXI3DL2Reverb8::GetAllParameters を使えば、現在のプロパティを取得できる。