Updating of nonRealtime


I’m trying to reliably detect if my plugin is being run real time or in offline mode. In BitWig studio isNonRealtime() was always returning false, even when doing a bounce. I was worried they weren’t notifying us, so I did some debugging and learned that juce checks for getCurrentProcessLevel == 4 to determine the mode.
filter->setNonRealtime(getCurrentProcessLevel() == 4 /* kVstProcessLevelOffline */);

In internalProcessReplacing juce only checks for this state during the first process callback.
I duplicated the check to happen every frame and it fixed the issue I had with bouncing in place. Why is it the check is limited to the first callback? Am I possibly causing other issues by making this change?


Hmmm, it’s really odd that Bitwig doesn’t call suspend/resume before bouncing. Seems wrong to me. Normally hosts call this before bouncing. Let me see if I can reach out to the guys at Bitwig…