Поделиться через


структура 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, который взвешен по отношению к передним каналам, но отсутствует в центральных и низкочастотных каналах, матрица может выглядеть так, как показано в следующей таблице.

Выходные данные Левый ввод Правый ввод
Левый 1,0 0,0
Правый 0,0 1,0
Front Center 0,0 0,0
LFE 0,0 0,0
Задняя левая 0,8 0,0
Задняя правая 0,0 0,8
 

Обратите внимание, что левый и правый каналы полностью сопоставлены с выходными левыми и правыми каналами. 80 процентов левого и правого входных данных сопоставляется с задним левым и правым каналами.

Элемент pMatrixCoefficients может иметь значение NULL, если флаг X3DAUDIO_CALCULATE_MATRIX не указан при вызове X3DAudioCalculate.

При использовании X3DAudio с XAudio2 значение, возвращаемое в элементе pMatrixCoefficients , будет применяться к голосу с помощью IXAudio2Voice::SetOutputMatrix.

pDelayTimes

Вызывающий объект предоставил массив времени задержки, который получает задержки для каждого целевого канала в миллисекундах. Этот массив должен содержать не менее элементов DstChannelCount . X3DAudio фактически не выполняет задержку. Он просто возвращает коэффициенты, которые можно использовать для настройки эффекта DSP задержки, помещенного в цепочку эффектов. Элемент pDelayTimes может иметь значение NULL, если флаг X3DAUDIO_CALCULATE_DELAY не указан при вызове X3DAudioCalculate.

Примечание Этот элемент возвращается только при инициализации X3DAudio для стереовыходов. При обычном использовании Xbox 360 данные не возвращаются.
 

SrcChannelCount

Число исходных каналов. Перед вызовом X3DAudioCalculate необходимо инициализировать количество каналов-эмитентов.

DstChannelCount

Число исходных каналов. Перед вызовом X3DAudioCalculate необходимо инициализировать количество каналов-эмитентов.

LPFDirectCoefficient

Коэффициент прямого пути LPF. Вычисляется, только если при вызове X3DAudioCalculate указан флаг X3DAUDIO_CALCULATE_LPF_DIRECT.

При использовании X3DAudio с XAudio2 значение, возвращаемое в элементе LPFDirectCoefficient, будет применяться к фильтру низкого прохода в исходном голосе с IXAudio2Voice::SetFilterParameters.

LPFReverbCoefficient

Коэффициент реверберации пути LPF.

Вычисляется, только если при вызове X3DAudioCalculate указан флаг X3DAUDIO_CALCULATE_LPF_REVERB.

ReverbLevel

Уровень отправки реверберации. Вычисляется только в том случае, если при вызове X3DAudioCalculate указан флаг X3DAUDIO_CALCULATE_REVERB.

DopplerFactor

Коэффициент сдвига Доплера. Масштабирует коэффициент resampler для эффекта сдвига Доплера, где:

effective_frequency = DopplerFactor × original_frequency

Вычисляется только в том случае, если при вызове X3DAudioCalculate указан флаг X3DAUDIO_CALCULATE_DOPPLER.

При использовании X3DAudio с XAudio2 значение, возвращаемое в DopplerFactor, будет применяться к исходному голосу с помощью IXAudio2SourceVoice::SetFrequencyRatio.

EmitterToListenerAngle

Внутренний угол от излучателя к прослушивателю, выраженный в радианах относительно ориентации переднего излучателя.

Вычисляется, только если флаг X3DAUDIO_CALCULATE_EMITTER_ANGLE указан при вызове X3DAudioCalculate.

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 и pDelayTimesX3DAudioCalculate не выделяет дополнительную память. X3DAudioCalculate просто изменяет значения в расположениях памяти, выделенных для этих указателей.
 

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK для DirectX (XAudio 2.7)

Требования

Требование Значение
Заголовок x3daudio.h

См. также раздел

Структуры