Cubase sending unwanted 0.0 parameter value after endEdit

When I run my VST3 plugin in Cubase, and automate a parameter, and record the parameter, after I do the endEdit (mouse-up), Cubase always sends an unwanted 0.0 parameter value to my plugin.

This issue does not happen with my VST3 plugin in other DAWs (Ableton, etc). And the issue does not happen in Cubase with my older VST2 plugin (not using a wrapper).

I have the automation in Latch mode, not Touch mode, of course.

This happens for all parameters in my plugin. I have verified that my plugin is not sending a 0.0 value to Cubase for this parameter.

What would cause Cubase to send a 0.0 value to my plugin after endEdit() when the parameter value is not zero?

When you talk about Cubase is sending you a parameter value, what exactly do you mean? Do you mean via the parameter changes in the realtime process or via IEditController::setParamNormalized()? And do you have separate values for your realtime process or do you use the single component instance and use the same value in the process function and your UI?

Cubase is sending the param value to my plugin in “Vst Realtime Thread ”, sending it to my plugin’s method ::process (ProcessData& data). My plugin is examining the data provided in the IParameterChanges object.

The Processor and Editor use the single component model, and share parameter values.

The unwanted 0.0 value does NOT arrive from Cubase via VST3_EditController::setParamNormalized() .

The 0.0 value from ::process() is causing problems; I’m trying to understand why Cubase sends the 0.0 (and other DAWs do not send that 0.0). The user and the plugin have never set the parameter to zero, for example, after the parameter has been set to 0.5 and 0.75 (by the user when recording the automation) then the zero arrives.

Can you try to reproduce this issue with the againsimple example from the SDK? By the way which Cubase version do you use?

1 Like

This issue is seen with all versions of Cubase and Nuendo we have: Cubase Elements 10.5 and Nuendo 11. Do not have Cubase 11. Happens on both Mac and Windows. Happens when recording automation in Latch mode (after the endEdit, a 0.0 arrives in the plugin).

No, we have not seen this issue in any examples from SDK.

I understand we may have a mistake in our plugin’s VST3 implementation. I’m trying to understand what that mistake could be, since other DAWs do not send the 0.0.

Did you try to remove all parameters besides one and does the problem still persist? If it does can you build a strip down version without any DSP and make it available to me. Then I can have a check.

I’ll see if I can get permission send the plugin to you.

I have the same question on Nuendo 11, I update the parameter with VST3_EditController::setParamNormalized() . in my timer service which run every 40 ms, but I couldn’t get the parameter change count in process method

Tom: The fix for our issue was:

a) We implemented the method
VST3_EditController::getParamNormalized (ParamID tag)
[this method was missing before]

and

b) We changed our existing method
EditController::setParamNormalized (ParamID tag, ParamValue value)
to do nothing and return 0 (zero, kResultOk) always. I believe our situation is unusual, and that approach to the method may not work for you … so you may have to do some experiments.

I cannot promise this will work for you, but it worked in our situation.

Good luck!

When you talk about “timer service” what does this mean? Make sure that you call EditController::setParamNormalized() only from the UI thread.

thank you very much, we fix our issue with move the timer service into UI thread.

thank you .
yes, we now move the timer service into UI thread.