Hi all, I am writing a reverb plugin from a Schroder/Moorer model and currently have it working successfully by processing each sample individually. However as I am using about 30 filters calling the processSingleSample() for each one creates one hell of a cpu drain.
As I need adjustable amounts of wet/dry for both the early and late reveb sections I need to somehow make a copy of the buffer twice, process them individually and then sum them back with the original.
I thought I could do this by creating a new AudioSampleBuffer from the existing one eg. AudioSampleBuffer wetBuffer(buffer); but this is not possible as the buffer contains only pointers to samples so they effectively point to the same set of samples.
Does anyone know how this is usually done? Will I have to manually loop through all the buffer’s contents copying them into a new heap array of floats, process these then loop through the buffer’s contents again adding them back on?