Updating of nonRealtime


#1

Hi,

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?

Thanks!
-Scott


#2

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…