带有 FMOD 的动态 DSP.setParameter
Dynamic DSP.setParameter with FMOD
我想用效果播放声音
比如我用的是low和highpass,我想用鼠标位置(x,y)设置两个效果的参数。
我使用了 DSP.reset() 和 DSP.setParameter(),但是,有一个问题。
如果我越来越快地移动鼠标,声音就会不流畅。
原始声音在代码 reset() 和 setParameter() 之间播放。
因此我能听到类似火花的声音('tick! tick!')。
我想让它顺利。
有什么办法吗??
private void mouse_effect_move(object sender, MouseEventArgs e)
{
int i;
i = e.Y / 10;
dsplowpass.reset();
dsphighpass.reset();
if (i < 9)
{
dsphighpass.setParameter(0, 6310 - 700 * i);
//dsphighpass.setParameter(1, 1);
}
else
{
dsplowpass.setParameter(0, 22000 - 2200 * (i - 9));
//dsplowpass.setParameter(1, 1);
}
}
使用 DSP::setParameter 时不需要调用 DSP::reset。如果删除它们,问题会消失吗?
我想用效果播放声音
比如我用的是low和highpass,我想用鼠标位置(x,y)设置两个效果的参数。
我使用了 DSP.reset() 和 DSP.setParameter(),但是,有一个问题。
如果我越来越快地移动鼠标,声音就会不流畅。
原始声音在代码 reset() 和 setParameter() 之间播放。
因此我能听到类似火花的声音('tick! tick!')。
我想让它顺利。
有什么办法吗??
private void mouse_effect_move(object sender, MouseEventArgs e)
{
int i;
i = e.Y / 10;
dsplowpass.reset();
dsphighpass.reset();
if (i < 9)
{
dsphighpass.setParameter(0, 6310 - 700 * i);
//dsphighpass.setParameter(1, 1);
}
else
{
dsplowpass.setParameter(0, 22000 - 2200 * (i - 9));
//dsplowpass.setParameter(1, 1);
}
}
使用 DSP::setParameter 时不需要调用 DSP::reset。如果删除它们,问题会消失吗?