[sdiy] IR Reverb

rsdio at audiobanshee.com rsdio at audiobanshee.com
Wed Feb 21 03:12:47 CET 2018

The IR file format depends upon your goal:

A) If you want to collect Impulse Responses that can be used with any IR Reverb from the desktop to dedicated hardware, then the format is literally just the time-domain recording of the reverberations of a room excited by an impulse. I think of this as more of an IR exchange format.

Logic Studio Pro can generate a swept sine wave that you use to excite the room instead of a literal impulse. This is easier to reproduce accurately without distorting the amplifiers and speakers. But even with this optimization, there is still a post-processing step to convert the swept sine into the equivalent impulse response. The mathematics to do this have already been figured out, so that you’re left with what is effectively equivalent to an impulse response even though you recorded a swept sine wave. Thus, Logic deals with the swept sine data only temporarily, then settles on the time-domain format for the files.

B) Your hardware implementation of an IR Reverb is most likely going to use FFT transforms of a particular width, probably determined by the details of the DSP and memory size that you design around. The live audio coming in to your Reverb will have to go through a FFT on the fly, since there’s no way to predict that part. However, you can pre-compute the FFT of the IR data to speed things up and leave more processing power for longer IR Reverb tails.

In light of the latter optimization, your system design may work well to use a file format that is literally the blocks of data from the Frequency Domain transform for your desired Impulse Response. If your design allows for a range of FFT sizes, then you might be better off with a Time-Domain File Format. However, if your hardware design only allows for a single FFT size anyway, then you might as well be based on the prepared Frequency-Domain Data File Format.

If you were to have an SD Card or USB Memory Stick interface for your hardware IR Reverb, then you could either support Time-Domain or Frequency-Domain file formats. The Time-Domain file format might require a brief setup time as the hardware pre-converts that data to the frequency domain, although that should be imperceptibly fast given the nature of the hardware. The Frequency-Domain file format could be used instantly, except perhaps that you might not want to allow partial IR data to be used. In either case, your hardware would not be reading from the slow, removing memory during calculations, but rather from a copy in fast RAM that can keep up with the DSP operations.

I wonder if there could be an interesting effects resulting from using a Frequency-Domain file format and swapping out chunks of data on the fly. Yeah, that could get ugly really fast.

Brian Willoughby

On Feb 20, 2018, at 3:21 PM, Tim Ressel <timr at circuitabbey.com> wrote:
> Here is another question. As i get my brain around this, with the small FFTs giving way to larger FFTs, I wonder- what format is the IR file? Is it just a time-domain recording of the reverberations of a room excited by an impulse? Admittedly I am getting lost in all the conversions going on. Its like I'm in church!???? ;-)

More information about the Synth-diy mailing list