Double processBlock not called

Hi guys,

I’m trying to get a project to be able to process a double precision buffer in Cubase. I have both processBlock and methods in my class, but the plugin keeps working with the one. I also tried to build the example “audio plugin demo” project and it does the same. I’m testing them on Cubase 11.0.20, with double precision processing enabled.

Is there something I’m missing?

Thanks,
Luca

Have you overridden supportsDoublePrecisionProcessing() to return true?

https://docs.juce.com/master/classAudioProcessor.html#a0287477bbe4e0f38b3693a09d800e911

Nope. I was relying on the example provided and there’s no override for this method in there. Thanks!

Luca

ok now it process with the correct processBlock method, but Cubase fails to list it as one of the plugins able to process double precision audio.

In the meantime, I’m adapting my methods with templates but the one I use with dsp::ProcessContextReplacing (for oversampling) is not building, despite these methods are all based on templates.

I have:

template
void MyAudioProcessor::process (dsp::ProcessContextReplacing context) noexcept

then, in that method

I can’t seem to figure out why I get these errors. I don’t think I have to declare both float and double AudioBlocks, am I?

Thanks,
Luca

template helps to keep all the logic in one place.

but you still need to call both processBlock float and double, with each oversampler and AudioBlock corresponding to its each own type.

Have you provided the correct sample type to the template argument of ProcessContextReplacing?

You should have something like

template <typename SampleType>
void MyAudioProcessor::process (dsp::ProcessContextReplacing<SampleType> context)

Absolutely, but it looks like @bayu said. I have to create two separate process methods, despite everything is templetized.