Using SIMDRegister for IIR filter processSample

I have a setup with several dsp::IIR::Filters in parallel that I would like to optimize using SIMDRegister.

I’ve seen the tutorial but not sure how to apply that to my situation where the filters are calling processSample and are not using processDuplicator. Is this possible?

Still trying to wrap my head around the SIMDRegister class… Is it impossible to optimize the following using SIMDResister when left and right filter might be using different cutoff frequencies.:

outLeftSample = highpassFilterLeft.processSample(inLeftSample);
outRightSample = highpassFilterRight.processSample(inRightSample);

It definitely works when both channels use the same coefficients. I used it to speed up a 64-channel equaliser plug-in.
In order to make it work with difference cut offs you will have to put together the coefficients by hand. And it’s absolutely necessary that both filters have the same number of coefficients.

Ok, thanks. That’s interesting.
Do you remember how you set up the filters to work with SIMDRegister? The juce tutorial is based on ProcessorDuplicator which I assume doesn’t work with different cut offs.

Oh I see, the problem is that the Coefficients use the numeric type (float), and not SIMDRegister<float>. Coefficients<SIMDRegister<float>> doesn’t compile due to the constexpr for inverseRootTwo… I am afraid it’s not possible with the current JUCE…
You might have to make some changes to the JUCE codebase to make it work.

Thanks Daniel. I won’t spent more time chasing this then.