次の方法で共有


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 にすることができます。

メモ このメンバーは、X3DAudio がステレオ出力用に初期化されている場合にのみ返されます。 一般的な Xbox 360 の使用では、データはまったく返されません。
 

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
この構造体を X3DAudioCalculate 関数に渡すと、次のメンバーが返されます。
  • pMatrixCoefficients

  • pDelayTimes

  • LPFDirectCoefficient

  • LPFReverbCoefficient
  • ReverbLevel

  • DopplerFactor

  • EmitterToListenerAngle
  • EmitterToListenerDistance

  • EmitterVelocityComponent

  • ListenerVelocityComponent
メモpMatrixCoefficients および pDelayTimes の場合、X3DAudioCalculate は追加のメモリを割り当てません。 X3DAudioCalculate は、これらのポインターに割り当てられたメモリ位置の値を変更するだけです。
 

プラットフォームの要件

Windows 10 (XAudio2.9);Windows 8、Windows Phone 8 (XAudio 2.8);DirectX SDK (XAudio 2.7)

要件

要件
Header x3daudio.h

関連項目

構造体