I am implementation a convolution reverb method for audios array in Python using scipy.signal.convolve. I choose the fft mode, which essentially a product of the rfft of the two signals then ifft back.
What I am not sure is how to perform the convolution without changing the amplitude of the original signal. My audio sample is normalized to -1. to 1.0. And the impulse response (ir) is not normalized but has a peak value near 1.0.
A direct convolve(signal, ir) will result a new signal that has the amplitude of over -6.0 to 6.0. This of course results in a massive clipping during playback. Of course I can reduce the amplitude of the ir to bring down the level. However, I don't know what is the mathematical relationship here in order to achieve the same amplitude.
Thank you in advance for your advice.
[fft] normalizationor[fft] scalingon this site. I just picked the first one.) – Marcus Müller Jun 30 '20 at 18:54