18/09/2024

# Get the reverb impulse response of a church

I recently recorded an impulse response of the reverb of a 14th-century church (more or less the footprint of the sound ambiance of the building). Here is how I did it.

• First I installed a loudspeaker (a studio monitor Yamaha HS-80M) in the church, quite high from the ground. I played, rather loud, a sound called a frequency sweep, that contains frequencies from 20Hz to 20000Hz, i.e. the entire human hearing range.
• Then, in the middle of the church, I recorded this with 2 microphones. Here is what I got:

Quite a lot of reverb, that's exactly what we want to catch with an IR!

• Now, let's use some Digital Signal Processing to get the IR. All the source code in Python is here. If you're into math, here is the idea: `a` is the input sweep signal, `h` the impulse response, and `b` the microphone-recorded signal. We have `a * h = b` (convolution here!). Let's take the discrete Fourier transform, we have `fft(a) * fft(h) = fft(b)`, then `h = ifft(fft(b) / fft(a))`.

• Here is the result, the Impulse Response of the church:

Then, of course, we can do some cleaning, fade out, etc.

But what is this useful for? You can use this Impulse Response in any music production software (the VST SIR1 is quite good and freeware) , and make any of your recordings (voice, instrument, etc.) sound like if they were recorded in this church. This is the magic of convolution reverb!

Useful trick when you record your own IR: play `sweep0.wav` in the building instead of `sweep.wav`. The initial "beep" is helpful to see exactly where things begin. If you don't do that, as the sweep begins with very low frequencies (starting from 20 Hz), you won't know exactly where is the beginning of your microphone-recording. Once your recording is done, you can trim the soundfile by making it begin exactly 10 seconds after the short beep.

Some related reading in this topic, and this blog post.

← Other articles

My personal blog.

Data / AI / Python consulting and freelancing.