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.00.0
    [右]0.01.0
    前方中央0.00.0
    LFE0.00.0
    後方左0.80.0
    後方右0.00.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

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

要件

ヘッダー: X3daudio.h 宣言

関連項目

X3DAudio の構造体