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 * (desired filter cutoff frequency) / sampleRate)) として計算されたフィルター ラジアン周波数。 頻度は 0 以上で、XAUDIO2_MAX_FILTER_FREQUENCY以下である必要があります。 許容される最大周波数は、ソースサウンドのサンプルレートを6で割った値で、最大フィルタラジアン周波数1に対応します。 たとえば、サウンドのサンプルレートが48000で、目的のカットオフ周波数がそのサンプルレートの最大許容値8000である場合、 Frequency の値は1になります。 XAUDIO2_HELPER_FUNCTIONSが定義されている場合、XAudio2.h には、ヘルツ周波数とラジアン周波数を変換するための XAudio2RadiansToCutoffFrequency および XAudio2CutoffFrequencyToRadians ヘルパー関数が含まれます。 XAUDIO2_HELPER_FUNCTIONSの定義には、ヘルツと LowPassOnePoleFilter と HighPassOnePoleFilter との間の変換に適した 1 極係数を変換するための XAudio2CutoffFrequencyToOnePoleCoefficient も含まれます。
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);DirectX SDK (XAudio 2.7)必要条件
Header | xaudio2.h |
関連項目
IXAudio2Voice::GetFilterParameters