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

IXAudio2Voice::SetFilterParameters

XAudio2-Strukturen