XAUDIO2_FILTER_PARAMETERS structure (xaudio2.h)
Définit les paramètres de filtre pour une voix source.
Syntaxe
typedef struct XAUDIO2_FILTER_PARAMETERS {
XAUDIO2_FILTER_TYPE Type;
float Frequency;
float OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;
Membres
Type
Frequency
Filtrer la fréquence de radian calculée comme (2 * sin(pi * (fréquence de coupure de filtre souhaitée) / sampleRate)). La fréquence doit être supérieure ou égale à 0 et inférieure ou égale à XAUDIO2_MAX_FILTER_FREQUENCY. La fréquence maximale autorisée est égale à la fréquence d’échantillonnage du son source divisée par six, ce qui correspond à la fréquence de rayon de filtre maximale de 1. Par exemple, si la fréquence d’échantillonnage d’un son est de 48 000 et que la fréquence de coupure souhaitée est la valeur maximale autorisée pour ce taux d’échantillonnage, 8 000, la valeur de Fréquence est 1. Si XAUDIO2_HELPER_FUNCTIONS est défini, XAudio2.h inclut les fonctions d’assistance XAudio2RadiansToCutoffFrequency et XAudio2CutoffFrequencyToRadians pour la conversion entre les fréquences hertz et radian. La définition de XAUDIO2_HELPER_FUNCTIONS inclut également XAudio2CutoffFrequencyToOnePoleCoefficient pour la conversion entre hertz et un coefficient à un pôle adapté à une utilisation avec LowPassOnePoleFilter et HighPassOnePoleFilter.
OneOverQ
Réciproque du facteur Q. Contrôle la vitesse à laquelle les fréquences au-delà de la fréquence sont atténuées. Les valeurs plus grandes entraînent un amortissement plus rapide, tandis que les valeurs plus petites entraînent un amortissement plus progressif. Doit être supérieur à 0 et inférieur ou égal à XAUDIO2_MAX_FILTER_ONEOVERQ.
Remarques
Définir XAUDIO2_FILTER_PARAMETERS avec les valeurs suivantes est acoustiquement équivalent à ce que le filtre soit entièrement contourné.
XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;
Les formules suivantes montrent la relation entre les membres de XAUDIO2_FILTER_PARAMETERS et le filtre par voix.
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)
Où :
Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ
Configuration requise pour la plateforme
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8) ; Kit de développement logiciel (SDK) DirectX (XAudio 2.7)Spécifications
En-tête | xaudio2.h |
Voir aussi
IXAudio2Voice::GetFilterParameters