структура 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.
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
- pMatrixCoefficients
- pDelayTimes
- LPFDirectCoefficient
- LPFReverbCoefficient
- ReverbLevel
- DopplerFactor
- EmitterToListenerAngle
- EmitterToListenerDistance
- EmitterVelocityComponent
- ListenerVelocityComponent
Требования к платформе
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK для DirectX (XAudio 2.7)Требования
Требование | Значение |
---|---|
Заголовок | x3daudio.h |