2012-04-08 21 views
2

Ich habe Probleme, mit fmod Fitch. Ich kann es mit channel :: setfrequency machen, aber ich muss es auf größeren sfx verwenden und brauche daher Genauigkeit [keine Tempowechsel] mit DSP. Allerdings kann ich den Filter nicht anwenden.FMODex Tonhöhenverschiebung Probleme mit DSP

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

nichts passiert dort. Dieser Code ist in meiner Custom-Play-Funktion und wird direkt vor dem Abspielen von Sound ausgeführt (ich lade mit Pause auf True und mache dann die Änderungen). Beide Funktionen werfen keinen Fehler in die Ergebnisvariable. Was ist dann falsch? : S

Antwort

0

Sie erwähnen, dass der obige Code ausgeführt wird, bevor Sie den Sound abspielen. Sie müssen Channel :: addDSP aufrufen, nachdem System :: playSound oder der FMOD :: Channel noch nicht gültig ist.

1

Versuchen Sie folgendes:

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);