DirectXプログラミング講座 〜Vol10. サウンドのエフェクト処理〜

CAudioクラスのオマケ機能を使って、サウンドにエフェクトをかけてみましょう。方法はいたって簡単ですが、このエフェクト処理は2Dサウンドに限り有効です。次のステップに出てくるCAudio3Dでは使えないので、ご注意ください(お遊びのつもりで試してみてください)。


エフェクトをかけるにはSetEffect関数を使う


CAudio::SetEffect(
    EffectFlag As EFFECT_FLAGS    'エフェクトの種類を指定します(下記を参照)
) As Long

エフェクトの種類

エフェクトの種類説明
NO_EFFECTエフェクト無し
EFFECT_STANDARD_CHORUSコーラス
EFFECT_STANDARD_COMPRESSORコンプレッサ
EFFECT_STANDARD_DISTORTIONディストーション
EFFECT_STANDARD_ECHOエコー
EFFECT_STANDARD_FLANGERフランジ
EFFECT_STANDARD_GARGLEガーグル
EFFECT_STANDARD_I3DL2REVERBInteractive 3D Level 2 リバーブ
EFFECT_STANDARD_PARAMEQパラメトリック イコライザ
EFFECT_WAVES_REVERBWaves リバーブ

エフェクトのサンプルプログラム

前回のサウンドを再生するサンプルプログラム "dmtest" に変更を加える形で作業を行います。

●InitProc関数のコーディング

Load関数でサウンドを読み込んだ後であれば、どのタイミングからでもSetEffect関数を呼び出すことができます。上の表に示す様々なエフェクトを試してみると面白いですよ☆

Function InitProc()
    'DirectXを初期化
    If dx_Init(hMainWnd,ScreenX,ScreenY,FALSE)=0 Then
        InitProc=0
        Exit Function
    End If

    'マウスカーソルを非表示にする
    ShowCursor(FALSE)

    ' TODO: この位置にアプリケーションの初期化コードを記述してください。

    'CAudioクラスの生成
    pAudio=New CAudio

    'サウンドファイルをロード(適当にWAVE/MIDIファイルを指定します)
    pAudio->Load("test.wav")

    'エフェクトをかける
    pAudio->SetEffect(EFFECT_STANDARD_ECHO)

    '再生
    pAudio->Play()

    InitProc=1
End Function


講座インデックスへ戻る ©2005 Discoversoft