struktur XAUDIO2_FILTER_PARAMETERS (xaudio2.h)
Menentukan parameter filter untuk suara sumber.
Sintaks
typedef struct XAUDIO2_FILTER_PARAMETERS {
XAUDIO2_FILTER_TYPE Type;
float Frequency;
float OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;
Anggota
Type
Frequency
Frekuensi radian filter dihitung sebagai (2 * sin(pi * (frekuensi cutoff filter yang diinginkan) / sampleRate)). Frekuensi harus lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan XAUDIO2_MAX_FILTER_FREQUENCY. Frekuensi maksimum yang diizinkan sama dengan laju sampel suara sumber dibagi enam yang sesuai dengan frekuensi radian filter maksimum 1. Misalnya, jika laju sampel suara adalah 48000 dan frekuensi cutoff yang diinginkan adalah nilai maksimum yang diizinkan untuk laju sampel tersebut, 8000, nilai untuk Frekuensi akan menjadi 1. Jika XAUDIO2_HELPER_FUNCTIONS ditentukan, XAudio2.h akan menyertakan fungsi pembantu XAudio2RadiansToCutoffFrequency dan XAudio2CutoffFrequencyToRadians untuk mengonversi antara frekuensi hertz dan radian. Menentukan XAUDIO2_HELPER_FUNCTIONS juga akan mencakup XAudio2CutoffFrequencyToOnePoleCoefficient untuk mengonversi antara hertz dan koefisien satu kutub yang cocok untuk digunakan dengan LowPassOnePoleFilter dan HighPassOnePoleFilter.
OneOverQ
Timbal balik faktor Q. Mengontrol seberapa cepat frekuensi di luar Frekuensi diredaksi. Nilai yang lebih besar menghasilkan peredaman yang lebih cepat sementara nilai yang lebih kecil menyebabkan peredam terjadi lebih bertahap. Harus lebih besar dari 0 dan kurang dari atau sama dengan XAUDIO2_MAX_FILTER_ONEOVERQ.
Keterangan
Pengaturan XAUDIO2_FILTER_PARAMETERS dengan nilai berikut secara akustik setara dengan filter yang sepenuhnya dilewati.
XAUDIO2_FILTER_PARAMETERS FilterParams;
FilterParams.Frequency = 1.0f;
FilterParams.OneOverQ = 1.0f;
FilterParams.Type = LowPassFilter;
Rumus berikut ini memperlihatkan hubungan antara anggota XAUDIO2_FILTER_PARAMETERS dan filter per suara.
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)
Di mana:
Yl = lowpass output
Yb = bandpass output
Yh = highpass output
Yn = notch output
F1 = XAUDIO2_FILTER_PARAMETERS.Frequency
OneOverQ = XAUDIO2_FILTER_PARAMETERS.OneOverQ
Persyaratan Platform
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)Persyaratan
Header | xaudio2.h |
Lihat juga
IXAudio2Voice::GetFilterParameters