次の方法で共有


環境リバーブ

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 を使用すると、現在のプロパティを取得できます。