DSP的FMODex音调转换问题

时间:2012-04-08 16:17:56

标签: shift fmod pitch

我有问题用fmod来配合ptich。我可以使用channel :: setfrequency来实现它,但我需要在更大的sfx上使用它,因此需要精确[没有速度变化]与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);

那里什么也没发生。这段代码在我的自定义播放功能中,并且在我播放声音之前执行(我将暂停加载为true,然后进行更改)。 这两个函数都不会将任何错误抛出到结果变量中。那怎么了? :S

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您提到上面的代码是在播放声音之前执行的。您必须在System :: playSound之后调用Channel :: addDSP,否则FMOD :: Channel将无效。