Process block on pause

Hi everyone,
I’m currently working on a delay line plugin to learn something new and apply some best practice that i’ve learned lately.

Said so, everything is working as expected except an unexpected behaviour when i pause the playback: the process block is no longer called and I am not able to loop over the delay line circular buffer to play the tail of the delay.

Searching inside the documentation I did not find anything useful (i think) does anyone have suggestinos about that?

Thanks in advance.

It really depends on the host you are using, the type of plugin (is it an instrument/generator or an effect) and optionally if you have declared the sound has a tail (like with reverbs or delays).

most DAWs will automatically pause processing once the in- and output of the plugin is silence. sometimes it already happens before the output is silent. some DAWs will send a buffer where numSamples equals 0 in order to show you that it’s about to turn off processing. in some DAWs you can turn that behaviour off for all or specific plugins. if there’s no way to solve the problem in the code you might have to just inform your users about where to find that setting in various DAWs

It is an effect, not a generator, it should work in logic, reaper and cubase at least. How could I declare if the sound has an audio tail? i see this JUCE: AudioProcessor Class Reference method returns the audio tail, but IDK how could i set the tail

You override that function and return the length in seconds. The host will call it to figure out how long to continue processing…

1 Like

Override and implement it with the length you want. Not sure all hosts respect this (and usually is an option that can be switched on or off).
You could for instance, put a very large number there, to try to force the host to keep the plugin running.