Ableton VST3 isNonRealtime() not set

Is it me, or Live is not setting the offline render flag for VST3 plugins? VST2 works as expected for me.
If I’m right is it a missing implementation in Ableton Live or JUCE’s wrapper is not handling it properly?

Are there any workarounds to detect offline mode other than do some twisted heuristics?

I think this may be due to Ableton’s VST3 hosting. According to the docs, when switching between realtime and offline modes, the host is supposed to call setupProcessing to inform the plugin of the change:

Switching between kRealtime (or kPrefetch) and kOffline requires that the host calls IAudioProcessor::setupProcessing in order to inform the plug-in about this mode change.

If I stick a breakpoint in setupProcessing, this doesn’t seem to happen when I render at the same samplerate as my output device. If I render at a different samplerate, setupProcessing is called, but the ProcessSetup::processMode field is still set to kRealtime.

2 Likes

Exactly what I ran into… good to know it is a problem in their VST3 handling then.

1 Like