次の方法で共有


XAUDIO2_FILTER_PARAMETERS 構造体 (xaudio2.h)

ソース音声のフィルター パラメーターを定義します。

構文

typedef struct XAUDIO2_FILTER_PARAMETERS {
  XAUDIO2_FILTER_TYPE Type;
  float               Frequency;
  float               OneOverQ;
} XAUDIO2_FILTER_PARAMETERS;

メンバー

Type

XAUDIO2_FILTER_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

IXAudio2Voice::SetFilterParameters

XAudio2 構造体