2012-04-08 6 views
2

私はfmodでptichをうまくやっていません。私はchannel :: setfrequencyでそれを行うことができますが、私はより大きなsfxでそれを使用する必要がありますので、DSPでは正確さ[テンポの変更なし]が必要です。しかし、私はフィルタを適用することはできないようです。DSPのFMODexピッチシフトの問題

FMOD::DSP* dsp; 
result = m_soundSystem->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);  
dsp->setParameter(0, 2.0f); 
result = m_soundChannels[i]->addDSP(dsp, 0); 

何も起こっていません。このコードは私のカスタムプレイ機能にあり、サウンドを再生する直前に実行されます(私は実際に一時停止してロードしてから変更を行います)。 両方の関数は、結果変数にエラーをスローしません。何が間違っている? :S

答えて

0

上記のコードは、サウンドを再生する直前に実行されています。 System :: playSoundの後にChannel :: addDSPを呼び出す必要があります。そうしないと、FMOD :: Channelはまだ有効になりません。

1

これを試してみてください:

FMOD::DSP* dsp; 
result = m_soundSystem->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp); 
result = m_soundChannels[i]->addDSP(dsp, 0); 
dsp->setParameter(FMOD_DSP_PITCHSHIFT_PITCH, 2.0f); 
関連する問題