我正在 XCode 4.6 中编写 Steinberg VST 插件。
我已经实现了一个正常工作的高通滤波器。现在我试图用二次函数做一些非线性失真。在我实现了下面的几行并将插件加载到主机中后,我立即从插件中获得了一个输出 - 你什么也听不到,但仪表很高。
我真的无法想象为什么。发生数学运算的 processReplacing 函数只应在播放声音时调用,而不是在加载插件时调用。当我删除下面的几行代码时,一切正常并且听起来不错,所以我认为它与插件代码的其余部分无关。
该问题发生在两台主机中,因此它可能不是 VST 错误。有没有人遇到过类似的问题?
非常感谢, 法比安
void Exciter::processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames){
for(int i = 0; i < sampleFrames; i++) {
tempsample = inputs[0][i];
//Exciter - Transformation in positive region, quadratic distortion and backscaling
tempsample = tempsample + 1.0f;
tempsample = powf(tempsample, 2.0f);
tempsample = tempsample / 2.0f;
tempsample -= 1.0f;
//Mix-Knob: Dry/Wet ------------------------------------------------
outputs[0][i] = mix*(tempsample) + (1-mix)*inputs[0][i];
编辑:我在每个函数中添加了日志文件输出并且它发生了,processReplacing 函数被永久调用,不仅在播放打开时......但是为什么呢?