【发布时间】:2012-08-03 15:56:12
【问题描述】:
我是新来的,所以首先:“大家好!!”
在通过data.outputParameterChanges 将参数更改从 process() 传递到控制器时,我遇到了一个严重的问题。看看下面的代码(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。我在这里错过了什么????
非常感谢您对此的任何帮助和评论!
谢谢,克里斯
【问题讨论】: