AudioProcessor::isRealtime() reliability

I need to stream from disk for audio playback, and for normal transport this can be done in a buffered way from a different thread - prefetching the next few seconds.

This buffering will hit it’s limits for rendering that is a lot faster than realtime.

Are there hosts that do not properly set the corresponding plugin format flags, so that isRealtime becomes unreliable in some render scenarios?

I assume that this will be a bigger problem for render-in-place like workflows.

Yeah, unfortunately isRealtime() is not reliable. I believe Ableton is one of the hosts, which does not set the flag correctly. At least it was, did not test in latest version. So, I would not rely on the flag.

I do not know of any other way to reliably test if you are running real-time or not. So, best not to assume anything about that. Or add an option in your UI, which lets your users manually switch the plugin into non-realtime/render mode.

1 Like