# Convolution for audio, how to control amplitude? [duplicate]

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.

• (very, very, very many questions when you search for [fft] normalization or [fft] scaling on this site. I just picked the first one.) Jun 30 '20 at 18:54