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.