Possible (probable?) bug w.r.t. vst3 parameter flushing

Hi!

I think i have found a bug in renoise regarding flushing of vst3 parameters from ui to audio thread. Wrote a small synth plugin that can switch from sine to saw oscillator, and when switching between the 2 modes, sometimes events get lost. I have verified this in the debugger, that sometimes a call (from the ui side) to Steinberg::Vst::EditController::performEdit does not result in an event (on the audio side) in the form of Steinberg::Vst::ProcessData::inputParameterChanges. As a result, some ui interaction “gets lost”.

See below for some screen recordings: clicking around in the ui, switching between sine/saw, does not always get picked up. This problem only happens in renoise and cakewalk, it does not manifest in reaper, waveform, flstudio or bitwig.

Weird behaviour in renoise: https://sjoerdvankreel.github.io/infernal_stuff/renoise_bug_renoise_demo.mp4

Weird behaviour in cakewalk: https://sjoerdvankreel.github.io/infernal_stuff/cakewalk_bug_cakewalk_demo.mp4

Correct behaviour in reaper: https://sjoerdvankreel.github.io/infernal_stuff/renoise_bug_reaper_demo.mp4

Again, waveform, bitwig and flstudio behave without problems like reaper. I can post screen recordings if needed.

Steps to reproduce:

  • git clone --recursive GitHub - sjoerdvankreel/infernal-playground
  • checkout tag bug_demo_1
  • run scripts/build.bat
  • copy vst3 plugin from /dist folder to vst3 folder
  • run renoise demo from /test folder and play around with osc type

If needed i can provide binaries.

Also – i hate to say this but, how much “alive” is renoise? Still got no answer to this Saved automation data does not respect VST3's parameter id. FLStudio suffered the same problem, and i reported simultaneously to renoise and FL, and image line fixed it within 2 months or so.

Just to be clear - i absolutely love renoise. Been a long time user. I’ll take a tracker over a piano roll any day. I hope to be working with renoise for years to come, but, stuff like this should really be fixed (again – excuse me if i’m in the wrong here and the bug is on my side…).

Anyway – end of long post. I hope i dont come across as arrogant – i really really love renoise and i think it is the #1 daw out there. But, i also think it has its flaws in the plugin department. If possible, i’d be open to help out with development every now and then, just small stuff…

-cheers, sjoerd

4 Likes

You should probably bring these sort of things to the developer with @ or email …for more traction.

Thanks, send a mail to Taktik.

Hi Sjord. Thanks for the very detailed report. This will be fixed in the next update.

There was indeed something wrong on our end: Vst::ProcessData’s inputParameterChanges were filled by the GUI thread in this case, but get consumed by the audio thread. So they are randomly processed by the plugin or not.

It’s surprising that this hasn’t caused problems with other plugins, but perhaps most plugins only expect parameter updates in the controller and not in the processor.

4 Likes

@taktik thanks, that’s great customer support right there :slight_smile: Hope you don’t mind me asking – what about the other bug i mentioned here (the parameter serialization thing)?

Unfortunately, this is something that has been on my TODO list for ages, but it’s difficult to implement the way things work in Renoise. I’ll definitely take a look at this again, but can’t promise that this will be fixed quickly.

1 Like

@taktik btw, the way i understand it they implemented at fruity (they suffered the same bug), is something like this: bump internal file format version number from x to y, when saving as y, include an additional mapping table from param index ↔ param id. When loading as x, continue old behaviour. When loading as y, re-setup all modulation based on the new table from the preset file. Of course this won’t help anyone trying to load an “old” format version, but once it’s saved as y, things continue to work from there on. No idea if this helps, just wanted to share.

I didn’t want to make a new thread because it is hard to reproduce and vague, but…

I’ve had some issues lately with vst3’s in Renoise, where Renoise hard crashes, not creating an entry in the log file and not saving a crash back up. I hope it is related to the above bug.

For example I tried adding deedoubler vst3 (https://plugins4free.com/plugin/3927/) to a track and Renoise suddenly vanished, latest entry in the log;

"Vst3Plugs: Instantiating: C:\Program Files\Common Files\VST3\DeeDoubler.vst3…
Vst3Plugs: Failed to apply initial component state to controller (not critical)
"

(Fyi I always seem to get the "Failed to apply initial component state to controller " with vst3’s in the past, but this didn’t lead to hard crashes, like it sometimes does now when using the latest Renoise).

I think Valhalla Supermassive VST3 tends to mix up settings over time, maybe it is caused by this problem. Multiple times it suddenly changes settings, like delay time. Really weird.

Fixed in 3.4.4.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.