VST3 factory preset loading problems in tracktion waveform


Not sure if this is the right place to ask, since this is not about juce’s vst3 bindings. I’m developing an open source vst3 plugin which uses juce for it’s ui rendering, but providing my own implementations of vst3’s controller/processor/editor interfaces. It was suggested to me over here Problems with vst3 preset loading - Tracktion Forum - KVR Audio that i’d ask at the juce forum. Rest of the post is a verbatim copy of the kvr topic:

I’m developing an open source vst3 plugin. I’m testing (windows only) on bitwig, renoise, reaper, fl studio and waveform. I have made a demo song which loads and plays correctly on all 5, however, on waveform the plugin’s load-preset functionality does not work as expected. If you open the demo track, it plays back correctly. Switch a factory preset one time, no problem. Switch a factory preset a second time, the audio is messed up. You can somewhat hear parts of the newly selected preset, but it’s mostly just noise. This problem does not occur on the other 4 hosts i’m testing.

To reproduce, here is the demo tune: https://sjoerdvankreel.github.io/infern … veform.zip (https://sjoerdvankreel.github.io/infernal_stuff/demo_acid_line_waveform.zip) and here https://sjoerdvankreel.github.io/infern … _alpha.zip (https://sjoerdvankreel.github.io/infernal_stuff/infernal_1.2_alpha.zip) is an alpha build of the plugin. Unzip the plugin and place the “generic” version (either debug or release build) into the vst3 plugin folder. Then open “demo_acid_line_waveform Edit 1.tracktionedit” from the demo track zip and play around with the factory presets.

I am wondering if this has anything to do with vst3’s ComponentHandler::restartComponent api, but even swapping out Steinberg::Vst::kParamValuesChanged for a full plugin restart (Steinberg::Vst::kReloadComponent) does not solve the problem.

Any help greatly appreciated.

Cheers!, -sjoerd