DSP artifact issue (already covered the classic issue of singular classes)

Hello everyone.

I’ve been using JUCE for about a year and a half now, slowly gaining competence in all aspects of the framework. I’m currently having one glaring issue that’s been stumping me for the last few days, related to the classic issue regarding how people using the DSP module need to create multiple classes for stereo processing. i’m pretty sure I’ve covered that issue with what i’m using here, but there might be more intricacy to the ideal solution then what i’m using right now:

I’m declaring the filter bank like this:

std::array <std::array <dsp::ProcessorDuplicator<dsp::IIR::Filter, dsp::IIR::Coefficients>, totalNumFilters>, kChannels> shepherdFilterBank;

setting up prepareToPlay like this:

dsp::ProcessSpec spec;
spec.sampleRate = sampleRate;
spec.maximumBlockSize = samplesPerBlock;
spec.numChannels = 1;

for (int i = 0; i < kChannels; i++){

	for (int filter = 0; filter < shepherdFilterBank[i].size(); filter++)
	{
		// "prepare" filters
		shepherdFilterBank[i][filter].prepare(spec);
		// reset filters
		shepherdFilterBank[i][filter].reset();
	}
}

and running the .process method like this (on each channel, filter number of times):

shepherdFilterBank[channel][filter].process(dsp::ProcessContextReplacing(block.getSingleChannelBlock(channel)));

And i still get weird artifact issues. If i’m missing anything else you might need for proposing a solution feel free to ask.

Mhm, the idea behind the duplicator is that you can process multiple instances of your filter at once, so it already does what your array of kChannel size does. Then, for chaining multiple filter instances, you can use the dsp::ProcessorChain which could wrap totalNumFilters instances in a chain. For processing, you would then just call process on the chain once

I actually tried a processing system utilizing the ProcessorChain method and got the same artifact issues. To be sure that I didn’t mess anything up I actually built ffaudio’s free edition of his Frequalizer EQ and got the same issues. Interestingly enough I’ve yet to find anybody else discussing this issue on the forum so this might be some sort of issue regarding my development environment / compiler / audio routing system?