структура XAUDIO2_FILTER_PARAMETERS (xaudio2.h)
Определяет параметры фильтра для исходного голоса.
Синтаксис
typedef struct XAUDIO2_FILTER_PARAMETERS {
XAUDIO2_FILTER_TYPE Type;
float Frequency;
float OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;
Члены
Type
Frequency
Частота радиана фильтра вычисляется как (2 * sin(pi * (требуемая частота отсечения фильтра) / sampleRate)). Частота должна быть больше или равна 0 и меньше или равна XAUDIO2_MAX_FILTER_FREQUENCY. Максимальная допустимая частота равна частоте выборки исходного звука, разделенной на шесть, что соответствует максимальной частоте радиана фильтра 1. Например, если частота выборки звука составляет 48 000, а требуемая частота отсечения является максимально допустимым значением для этой частоты выборки 8000, значение параметра Frequency будет равно 1. Если определен XAUDIO2_HELPER_FUNCTIONS, XAudio2.h будет включать вспомогательные функции XAudio2RadiansToCutoffFrequency и XAudio2CutoffFrequencyToRadians для преобразования между частотами hertz и radian. Определение XAUDIO2_HELPER_FUNCTIONS также будет включать XAudio2CutoffFrequencyToOnePoleCoefficient для преобразования между герцом и коэффициентом с одним полюсом, подходящим для использования с LowPassOnePoleFilter и HighPassOnePoleFilter.
OneOverQ
Обратная величина Q-фактора. Управляет тем, как быстро затухают частоты, превышающие частоту. Большие значения приводят к более быстрому снижению, в то время как меньшие значения приводят к постепенному снижению. Значение должно быть больше 0 и меньше или равно XAUDIO2_MAX_FILTER_ONEOVERQ.
Комментарии
Задание XAUDIO2_FILTER_PARAMETERS со следующими значениями акустически эквивалентно полному обходу фильтра.
XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;
В следующих формулах показана связь между элементами XAUDIO2_FILTER_PARAMETERS и фильтром для каждого голоса.
Yl( n ) = F1 yb( n ) + yl( n - 1 )
Yb( n ) = F1 yh( n ) + yb( n - 1 )
Yh( n ) = x( n ) - yl( n ) - OneOverQ(yb( n - 1 )
Yn( n ) = Yl(n) + Yh(n)
Где:
Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ
Требования к платформе
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK Для DirectX (XAudio 2.7)Требования
Верхняя часть | xaudio2.h |
См. также раздел
IXAudio2Voice::GetFilterParameters