我是新来的,所以首先:“大家好!!”
我在将参数更改从 process() 传递到控制器时遇到了一个真正的问题data.outputParameterChanges
。看看下面的代码(kDataParamId
是一个正确设置的参数的 ID):
tresult PLUGIN_API AGain::process (ProcessData& data)
{
IParameterChanges* paramChanges = data.outputParameterChanges;
if (paramChanges)
{
int32 index;
IParamValueQueue* paramQueue =
paramChanges->addParameterData(kDataParamId, index);
if(paramQueue)
{
paramQueue->addPoint(0, 0.1, index);
paramQueue->addPoint(0, 0.2, index);
paramQueue->addPoint(0, 0.3, index);
fprintf(stderr
, "[MyVSTPlugin] paramQueue->getPointCount() == %d\n"
, paramQueue->getPointCount());
}
}
return kResultOk;
}
我得到的点数是“1”。此外,setParamNormalized()
(作为接收参数更改的控制器的一部分)从主机以“0.3”调用一次。我可能很天真,但我希望参数点计数返回“3”,因此三个调用分别为setParamNormalized()
0.1、0.2 和 0.3。我在这里想念什么???
对此的任何帮助和评论都非常感谢!
谢谢,克里斯