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