Hi,
I wrote this simple audio processor and I don’t understand why the resulting audio is distorted. I’m using a separate filter for each channel. I also tried re-combining the split signal (adding samplesLeft to remainderLeft and respectively for the right channel) but even then the signal ends up distorted. Can anyone please help me here? Thank you in advance.
template <CutProcessorType type>
void CutProcessor<type>::process(const juce::dsp::ProcessContextReplacing<float>& context, float* const remainderLeft, float* const remainderRight) {
auto&& inBlock = context.getInputBlock();
auto&& outBlock = context.getOutputBlock();
auto numSamples = inBlock.getNumSamples();
auto numChannels = inBlock.getNumChannels();
jassert(numSamples == outBlock.getNumSamples());
jassert(numChannels == outBlock.getNumChannels());
outBlock.copyFrom(inBlock);
auto* const samplesLeft = outBlock.getChannelPointer(0);
auto* const samplesRight = outBlock.getChannelPointer(1);
for (std::size_t i = 0; i < numSamples; i++) {
if constexpr (type == Type::LowCut)
leftFilter.processSample(0, samplesLeft[i], remainderLeft[i], samplesLeft[i]);
else
leftFilter.processSample(0, samplesLeft[i], samplesLeft[i], remainderLeft[i]);
}
for (std::size_t i = 0; i < numSamples; i++) {
if constexpr (type == Type::LowCut)
rightFilter.processSample(1, samplesRight[i], remainderRight[i], samplesRight[i]);
else
rightFilter.processSample(1, samplesRight[i], samplesRight[i], remainderRight[i]);
}
}
