I encountered an issue when using Juce’s convolution engine in an AudioSuite plugin.
What happens is that the process call starts immediately when the user presses ‘render’ with the impulse response being loaded in the background thread, so the start of the clip doesn’t get the IR applied to it.
One way around this would be to detect that we’re running offline / AudioSuite in the process call,
Convolution::loadImpulseResponse() synchronously, or wait for it to have completed all its tasks, but currently there is no way to do this.
I could modify the Juce sources for this purpose but I’d rather avoid that if possible.
Alternatively a possible hack might be to detect when an IR selection has changed in
AudioProcessor::parameterChanged() and load the IR immediately there when running as AS only,
hoping the IR had time to load before the user pressed ‘render’, although that’s less than ideal.
Has anyone encountered the same problem and found an elegant way to deal with this ?