Hello Jules !
There is a typo in your reverb algoritm. The processMono function should be written like this :
void processMono (float* const samples, const int numSamples) noexcept
{
jassert (samples != nullptr);
if (shouldUpdateDamping)
updateDamping();
for (int i = 0; i < numSamples; ++i)
{
const float input = samples[i] * gain;
float output = 0;
for (int j = 0; j < numCombs; ++j) // accumulate the comb filters in parallel
output += comb[0][j].process (input);
for (int j = 0; j < numAllPasses; ++j) // run the allpass filters in series
output = allPass[0][j].process (output);
// better !
samples[i] = output * wet1 + samples[i] * dry * 0.5f;
// wrong, because of the gain, and the dryScalefactor
//samples[i] = output * wet1 + in * dry;
}
}
