環境リバーブ
DirectX は、Interactive Audio Special Interest Group によって発行された Interactive 3D Audio Level 2 (I3DL2) 規格に従って環境リバーブを一部サポートしています。DirectX 環境リバーブ エフェクトは、I3DL2 規格におけるリスナー プロパティの実装です。ソースのプロパティはサポートされていません。
リスナーに到達するサウンドは、以下の 3 つの時間的コンポーネントを持ちます。
- ダイレクト パスは、サーフェスにバウンスすることなく、サウンド ソースからリスナーに直接進むオーディオ 信号です。
- 初期反射は、壁、床、天井などのサーフェスに 1 回または 2 回反射した後、リスナーに到達するオーディオ信号です。信号がリスナーに届くまでに 1 つの壁だけにあたったサウンドの結果である場合、これは第一の反射と呼ばれます。これがリスナーに到達する前に 2 つの壁をバウンスする場合、これは第二の反射と呼ばれます。通常、人は第一または第二の反射それぞれだけ感知できます。
- 後期残響、つまりリバーブは、順番の低い反射の組み合わせで構成されていて、通常は強度が低くなった、後続の密になったエコーです。
初期反射と後期残響の組み合わせは、室内エフェクトと呼ばれることもあります。
DirectSound 実装では、室内エフェクトに送信される信号のみが聞こえます。ダイレクト パスを聞くには、環境リバーブ エフェクトを持たない別のバッファーで同時にサウンドを再生してください。
ルバーブ プロパティには次のものが含まれます。
- 初期反射と後期残響の減衰。
- ロールオフ係数、つまり反射された信号が距離とともに減衰する速度。ダイレクト パスのロールオフ係数は、DirectSound リスナーによって管理されます。
- 反射遅延。これは、ダイレクト パス信号の到達と、最初の初期反射の到達との間の間隔です。
- リバーブ遅延。これは、初期反射と後期残響の開始との間隔です。
- 減衰時間。これは、後期残響の開始と、その強度が 60 dB 低減される時間との間隔です。
- 後続残響の秒当たりのエコー数に比例する伝播。実装によっては、エコーの強度は残響の遅延にともなって変わることがあります。DirectX では、アプリケーションは実装で許可されている範囲 (%) を設定することでこのプロパティを制御できます。
- 強度。後期残響でのヘルツ当たりの共鳴数と比例します。これより低い密度では、小さい部屋で起こるようなくぐもったサウンドが生成されます。DirectX では、アプリケーションは実装で許可されている範囲 (%) を設定することでこのプロパティを制御できます。
ルバーブ プロパティは、IDirectSoundFXI3DL2Reverb8 インターフェイスで表され、環境のパラメーターは DSFXI3DL2Reverb 構造体に含まれます。
DirectX は、山から下水管まで、オーディオ環境のリバーブ プロパティを記述する、既定のパラメーター セットまたはプリセットを数多くサポートしています。ほとんどのアプリケーションでは IDirectSoundFXI3DL2Reverb8::SetPreset を使用してこれらの環境のいずれかを選択できます。
カスタム プロパティを設定するには、IDirectSoundFXI3DL2Reverb8::SetAllParameters を使用してください。また、IDirectSoundFXI3DL2Reverb8::GetAllParameters を使用すると、現在のプロパティを取得できます。