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