Cannot make work modifier key on VST3 with cubase


#1

Hi,

I use an AudioProcessorValueTreeState object with slider attachment. I’ve a feature that restore the my slider to the default value when I click on it with the alt modifier key.

To achieve this I use the method void mouseUp(const MouseEvent& event) and inspect the event if the alt key is down event.mods.isAltDown(), if it’s true then I restore my slider to the default value:

void MyComponent::mouseUp(const MouseEvent& event) {
  if(event.mods.isAltDown()) {
    const auto parameter = valueTreeState_.getParameter(parameterId_);
    const auto defaultValue = parameter->getDefaultValue();
    parameter->setValue(defaultValue);
  }
}

It works like a charm except on cubase with vst3. When I do that with my slider on a value of X, I see this one going to the default value then going back directly to the previous X value.

If I use the Xcode debugger, and put a break point and do a step by step it seems to work sometime. Really weird… Isn’t a performance issue on vst3?

Does anyone already encounter this issue?

Thanks


#2

Do you need to use setValueNotifyingHost() rather than just setValue()?

You may also need to surround the change with begin/endChangeGesture:

parameter->beginChangeGesture();
parameter->setValueNotifyingHost (defaultValue);
parameter->endChangeGesture();

#3

Thank you so much @martinrobinson it works perfectly! I would never imagine to use this method since it worked with vst2 but not with vst3. Now I know it.


#4

No problem! Much of this is sometimes host-specific, unfortunately. But the above approach seems to persuade most hosts to allow parameter changes, record and playback automation and so on