X3DAUDIO_DSP_SETTINGS 構造体 (x3daudio.h)
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 出力にレンダリングする場合、フロント チャネルに重み付けされますが、中心チャネルと低周波数チャネルには含まれません。マトリックスは次の表に示すようになることがあります。
出力 | 左入力 | 右入力 |
---|---|---|
Left | 1.0 | 0.0 |
Right | 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 にすることができます。
XAudio2 で X3DAudio を使用する場合、 pMatrixCoefficients メンバーで返される値は IXAudio2Voice::SetOutputMatrix の音声に適用されます。
pDelayTimes
呼び出し元によって提供された遅延時間配列。これは、各宛先チャネルの遅延をミリ秒単位で受け取ります。 この配列には、少なくとも DstChannelCount 要素が必要です。 X3DAudio は実際には遅延を実行しません。 これは、エフェクトチェーンに配置された遅延DSP効果を調整するために使用できる係数を単に返します。 X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_DELAY フラグが指定されていない場合、pDelayTimes メンバーは NULL にすることができます。
SrcChannelCount
ソース チャネルの数。 これは 、X3DAudioCalculate を呼び出す前に、エミッタ チャネルの数に初期化する必要があります。
DstChannelCount
ソース チャネルの数。 これは 、X3DAudioCalculate を呼び出す前に、エミッタ チャネルの数に初期化する必要があります。
LPFDirectCoefficient
LPF ダイレクト パス係数。 X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_LPF_DIRECT フラグが指定されている場合にのみ計算されます。
XAudio2 で X3DAudio を使用する場合、LPFDirectCoefficient メンバーで返される値は、 IXAudio2Voice::SetFilterParameters を使用するソース音声のローパス フィルターに適用されます。
LPFReverbCoefficient
LPF リバーブ パス係数。
X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_LPF_REVERB フラグが指定されている場合にのみ計算されます。
ReverbLevel
リバーブ送信レベル。 X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_REVERB フラグが指定されている場合にのみ計算されます。
DopplerFactor
ドップラーシフト係数。 ドップラー シフト効果のリサンプリング率をスケーリングします。ここで、次のようになります。
effective_frequency = DopplerFactor × original_frequency
X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_DOPPLER フラグが指定されている場合にのみ計算されます。
XAudio2 で X3DAudio を使用する場合、DopplerFactor で返される値は 、IXAudio2SourceVoice::SetFrequencyRatio を使用してソース音声に適用されます。
EmitterToListenerAngle
エミッタからリスナーへの内部角度。エミッタの前面の向きに対してラジアンで表されます。
X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_EMITTER_ANGLE フラグが指定されている場合にのみ計算されます。
EmitterToListenerDistance
リスナーからエミッタベース位置までのユーザー定義ワールド単位の距離。
EmitterVelocityComponent
1 秒あたりのユーザー定義のワールド単位でエミッタからリスナーへのベクトルに投影されるエミッタ速度ベクトルのコンポーネント。
X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_DOPPLER フラグが指定されている場合にのみ計算されます。
ListenerVelocityComponent
1 秒あたりのユーザー定義ワールド単位でエミッタ> リスナー ベクトルに投影されるリスナー速度ベクトルのコンポーネント。 X3DAudioCalculate を呼び出すときにX3DAUDIO_CALCULATE_DOPPLER フラグが指定されている場合にのみ計算されます。
注釈
この構造体を X3DAudioCalculate 関数に渡す前に、次のメンバーを初期化する必要があります。
- pMatrixCoefficients
- pDelayTimes
- SrcChannelCount
- DstChannelCount
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
プラットフォームの要件
Windows 10 (XAudio2.9);Windows 8、Windows Phone 8 (XAudio 2.8);DirectX SDK (XAudio 2.7)要件
要件 | 値 |
---|---|
Header | x3daudio.h |