X3DAUDIO_DSP_SETTINGS
3D シグナル処理のために低レベルのオーディオ レンダリング関数に送られる X3DAudioCalculate の呼び出し結果を受け取ります。
typedef struct X3DAUDIO_DSP_SETTINGS {
FLOAT32 *pMatrixCoefficients;
FLOAT32 *pDelayTimes;
UINT32 SrcChannelCount;
UINT32 DstChannelCount;
FLOAT32 LPFDirectCoefficient;
FLOAT32 LPFReverbCoefficient;
FLOAT32 ReverbLevel;
FLOAT32 DopplerFactor;
FLOAT32 EmitterToListenerAngle;
FLOAT32 EmitterToListenerDistance;
FLOAT32 EmitterVelocityComponent;
FLOAT32 ListenerVelocityComponent;
} X3DAUDIO_DSP_SETTINGS, *LPX3DAUDIO_DSP_SETTINGS;
メンバ
pMatrixCoefficients
各デスティネーション チャンネルにある各ソース チャンネルのボリューム レベルで初期化される、呼び出し元指定の配列です。この配列には、少なくとも (SrcChannelCount × DstChannelCount) 個の要素が必要です。
配列には、ソース チャンネルが配列の列インデックスとして、デスティネーション チャンネルが配列の行インデックスとして配置されます。たとえば、2 チャンネル ステレオ入力を、加重が前方チャンネルにあって、中心および低周波数チャンネルにはない 5.1 出力にレンダリングすると、行列は次の表に示すようになります。
出力 左入力 右入力 [左] 1.0 0.0 [右] 0.0 1.0 前方中央 0.0 0.0 LFE 0.0 0.0 後方左 0.8 0.0 後方右 0.0 0.8 左と右のチャンネルが、出力の左と右のチャンネルに完全にマップされています。左と右の入力の 80% が、後方の左と右のチャンネルにマップされています。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_MATRIX フラグを指定していない場合、pMatrixCoefficients メンバーを NULL にできます。
pDelayTimes
各デスティネーション チャンネルの遅延を受け取る、呼び出し元指定の遅延時間配列 (ミリ秒単位) です。この配列には、少なくとも DstChannelCount 個の要素が必要です。X3DAudio は、実際には遅延を実行しません。エフェクト チェーンに配置された遅延 DSP エフェクトの調整に使用できる係数を返すだけです。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_DELAY フラグを指定していない場合、pDelayTimes メンバーを NULL にできます。
注 このメンバーは、X3DAudio がステレオ出力用に初期化される場合にのみ返されます。Xbox 360 の一般的な使用では、データをまったく返しません。
SrcChannelCount
ソース チャンネルの数です。X3DAudioCalculate を呼び出す前にエミッタ チャンネルの数に初期化する必要があります。DstChannelCount
デスティネーション チャンネルの数です。X3DAudioCalculate を呼び出す前に最終ミックス チャンネルの数に初期化する必要があります。LPFDirectCoefficient
LPF ダイレクト パス係数です。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_LPF_DIRECT フラグが指定される場合のみ、計算されます。
LPFReverbCoefficient
LPF リバーブ パス係数です。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_LPF_REVERB フラグが指定される場合のみ、計算されます。
ReverbLevel
リバーブ センド レベルです。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_REVERB フラグが指定される場合のみ、計算されます。
DopplerFactor
ドップラー偏移係数。ドップラー偏移効果を考慮して再サンプリング比をスケーリングします。
effective_frequency = DopplerFactor × original_frequency
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_DOPPLER フラグが指定される場合のみ、計算されます。
EmitterToListenerAngle
エミッタ-リスナーの内角。エミッタの前方向に対するラジアン単位で表されます。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_EMITTER_ANGLE フラグが指定される場合のみ、計算されます。
EmitterToListenerDistance
リスナーからエミッタ ベース位置までのユーザー定義のワールド単位の距離です。EmitterVelocityComponent
ユーザー定義のワールド単位/秒で、エミッタ-リスナー ベクトルに射影されたエミッタ ベロシティ ベクトルの要素です。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_DOPPLER フラグが指定される場合のみ、計算されます。
ListenerVelocityComponent
ユーザー定義のワールド単位/秒で、エミッタ-リスナー ベクトルに射影されたリスナー ベロシティ ベクトルの要素です。
X3DAudioCalculate の呼び出し時に X3DAUDIO_CALCULATE_DOPPLER フラグが指定される場合のみ、計算されます。
解説
この構造体を X3DAudioCalculate 関数に渡す前に、次のメンバーを初期化する必要があります。
- pMatrixCoefficients
- pDelayTimes
- SrcChannelCount
- DstChannelCount
この構造体を X3DAudioCalculate 関数に渡すと、次のメンバーが返されます。
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
注 pMatrixCoefficients と pDelayTimes の場合、X3DAudioCalculate は追加のメモリーを割り当てません。X3DAudioCalculate は、これらのポインターに割り当てられたメモリー位置で、値を変更するだけです。
要件
ヘッダー: X3daudio.h 宣言