共用方式為


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) 元素。 陣列以來源通道做為陣列索引排列,而目的地通道則是陣列索引。 例如,將雙通道立體聲輸入轉譯為加權至前端通道的 5.1 輸出時,但中央和低頻率通道不存在時,矩陣可能如下表所示。

輸出 左輸入 右輸入
Left 1.0 0.0
Right 0.0 1.0
Front Center 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

Doppler 移位因數。 調整 Doppler 移位效果的重新取樣比例,其中:

effective_frequency = DopplerFactor × original_frequency

只有在呼叫 X3DAudioCalculate 時指定X3DAUDIO_CALCULATE_DOPPLER旗標時才會計算。

搭配 XAudio2 使用 X3DAudio 時,DopplerFactor 中傳回的值會套用至 具有 IXAudio2SourceVoice::SetFrequencyRatio 的來源語音。

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 只會修改配置給這些指標的記憶體位置的值。
 

平臺需求

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

規格需求

需求
標頭 x3daudio.h

另請參閱

結構