FL Studio - Plugin behaviour during export

Wondering if anyone could pls. shed some light on FL Studio’s handling of plugins during export. I noticed my synth running with slightly different settings during export/bouncing (a value tree state option becomes set differently). It’s hard to explain, but the exact same plugin (AU) on the exact same machine with the exact same settings has no issues under Logic X and has been running smooth for months, bouncing included. Built a VST3 as well, no difference. Playing the track in FL is fine too, just during export the settings seem corrupted. It’s almost as if the export reloads the plugin and something goes wrong applying the preset. All versions are recent, JUCE 6, FL Studio 20.7, Mac OS 10.15, Xcode 11, Logic X 10.5. I’m going to do a deep dive debug but any direction someone could point me to in the meantime would be greatly appreciated.

Thanks,

On the export screen have you tried unchecking “HQ For All Plugins”? This targets the native FL plugins, but it also impacts rendering for VSTs

Check out the docs about it and the “notify about rendering” options for plugins; https://www.image-line.com/support/flstudio_online_manual/html/fformats_save_export.htm#MIDIExport

1 Like

Thank you, good point and very helpful but it unfortunately does not solve the problem. Now, after some deep diving, what I have been seeing so far is that it appears that, on export/bouncing, FL triggers a re-instantiation of all synth voices while Logic appears to re-use already loaded voices. Due to this re-initialization my voice filters are no longer receiving a value tree state updated since that had already happened first time around, on load of the preset. May be as simple as going over my filter state initialization, I’ll post the outcome. And thanks again for your help.

Another thing to consider: anything asynchronous like loading samples will come to late.
While in realtime you must not block, in offline you have to block.
In realtime you have a fixed amount of time that will pass in any case, while bounce runs as fast as possible, so all graceful handlings will result in empty or half filled buffers.

1 Like

Thank you, good point, thanks for sharing, I must keep this in mind and review my code. The problem turned out to be as suspected, a filter reset event did not arrive at the time required, hence the filter envelopes did not perform the same as in real-time. Fixed how, relieved and going back to producing …