Share via


XAudio2 Sound3D サンプル

このサンプルは、XAudio2 で X3DAudio API を使用して空間オーディオを再生する方法を示しています。

サンプルの場所

Windows:   このサンプルの完全なソース コードは、次の場所にあります。

<Installed SDK Location>\Samples\C++\XAudio2\XAudio2Sound3D

Xbox 360:   このサンプルの完全なソース コードは、次の場所にあります。

<Installed XDK Location>\Source\Samples\Audio\XAudio2Sound3D

サンプルの説明

サンプルによって実行される基本的な手順の簡単な概要を以下に示します。

  1. XAudio2 エンジンとマスター ボイスを初期化します。また、サンプル フレームワークを使用して、選択した UI 要素を初期化します。
  2. マスター ボイス チャンネル数に一致するスピーカー チャンネル構成を持つ X3DAudio ライブラリを初期化します。
  3. サブミックス ボイスを作成し、リバーブ エフェクトを付加します。一連のリバーブ エフェクト パラメーターは、I3DL2 プリセット変換ルーチンによって指定されます。単純化のために、サブミックス ボイスをネイティブの出力レートで実行し、出力をマスター ボイスに送信します。
  4. 単一 (モノラル) ソース ボイスを作成し、ループ サウンドとして再生を開始します。出力を直接マスター ボイスとリバーブ サブミックス ボイスに送信します。
  5. 空間オーディオを示すために、簡略化された X/Z グリッド上にある X3DAudio のエミッター オブジェクトとリスナー オブジェクトを表示して、制御します。
    1. 各レンダリング フレームで、エミッターとリスナーの現在の位置を描画します。
    2. パラメーター制御の変更を適用して、各フレームで UI 要素を更新します。
    3. 空間オーディオの計算を実行し、フレーム更新時に更新します。
      • フレームの経過時間に基づき、新しい位置と速度の情報を使用して、エミッター オブジェクトとリスナー オブジェクトを更新します。
      • X3DAudioCalculate メソッドを呼び出して、結果の DSP コントロールの設定を計算します。
      • DSP の設定を、IXAudio2Voice::SetOutputMatrix 関数と IXAudio2SourceVoice::SetFrequencyRatio 関数を経由してソース ボイスに渡します。