XAUDIO2_FILTER_PARAMETERS-Struktur (xaudio2.h)
Definiert Filterparameter für eine Quellstimme.
Syntax
typedef struct XAUDIO2_FILTER_PARAMETERS {
XAUDIO2_FILTER_TYPE Type;
float Frequency;
float OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;
Member
Type
Die XAUDIO2_FILTER_TYPE.
Frequency
Filterradikalhäufigkeit berechnet als (2 * sin(pi * (gewünschte Filtertrennfrequenz) / sampleRate)). Die Häufigkeit muss größer oder gleich 0 und kleiner oder gleich XAUDIO2_MAX_FILTER_FREQUENCY sein. Die maximal zulässige Frequenz entspricht der Samplerate des Quellsounds geteilt durch sechs, was der maximalen Filterradiianfrequenz von 1 entspricht. Wenn die Abtastrate eines Sounds beispielsweise 48000 beträgt und die gewünschte Cutoff-Frequenz der maximal zulässige Wert für diese Abtastrate (8000) ist, ist der Wert für Frequency 1. Wenn XAUDIO2_HELPER_FUNCTIONS definiert ist, enthält XAudio2.h die Hilfsfunktionen XAudio2RadiansToCutoffFrequency und XAudio2CutoffFrequencyToRadians für die Konvertierung zwischen Hertz- und Radianfrequenzen. Die Definition XAUDIO2_HELPER_FUNCTIONS umfasst auch XAudio2CutoffFrequencyToOnePoleCoefficient für die Konvertierung zwischen Hertz und einen einpoligen Koeffizienten, der für die Verwendung mit lowPassOnePoleFilter und HighPassOnePoleFilter geeignet ist.
OneOverQ
Kehrwert des Q-Faktors. Steuert, wie schnell Frequenzen über die Frequenz hinaus gedämpft werden. Größere Werte führen zu einer schnelleren Dämpfung, während kleinere Werte zu einer allmählichen Dämpfung führen. Muss größer als 0 und kleiner oder gleich XAUDIO2_MAX_FILTER_ONEOVERQ sein.
Hinweise
Das Festlegen XAUDIO2_FILTER_PARAMETERS mit den folgenden Werten entspricht akustisch dem Filter, der vollständig umgangen wird.
XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;
Die folgenden Formeln zeigen die Beziehung zwischen den Elementen von XAUDIO2_FILTER_PARAMETERS und dem Pro-Voice-Filter.
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)
Hierbei gilt:
Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ
Plattformanforderungen
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)Requirements (Anforderungen)
Kopfzeile | xaudio2.h |
Weitere Informationen
IXAudio2Voice::GetFilterParameters