Convolution effect

charon17

New member
Can anyone share their tips / tricks on making good sounding convolution impulse waves? Does anyone know of a good place to find more of these files?
 
hi,

last week I took a surf at sonic foundry's web, and found out they were giving away smth like 60 megs of impulses for use with their acoustic mirror plugin. It ranges from small room impulse response to sure microphones response, I think you can use these in cooledit's convolution.
 
an impulse as conceptually explained to myself:

take a rectangle on a table and push in at either side.
the width decreases and the height increases. once this
width is very very small the height has increased very very high.
a straight line drawn vertically from a line on notebook paper
an arrow pointing up is how i've seen it written. i believe i've seen the 'area' of the impulse as being 1. so 2 times the area of the impulse is 2.

the impulse response is a system's reaction to an impulse at an input. once you find the impulse the output to other signals may be calculated.

it's been a while but i think that is about right.
 
*blink*

*blink*

I can't even BEGIN to tell you how little I understood of that. Now there's SMOKE coming out of my head!

~:confused:~
 
It's actually even nastier than that.

An impulse is a single positive-going spike, with as close to zero width (duration) as possible. The reason it is important has to do with the mathematics of modeling circuit and/or room responses, and gets really pretty nerdy very quickly. In any case, the simplest statement of the theory is that if you measure the "impulse response" of a circuit (or a room, or whatever) as it decays over time, you can exactly model that room or circuit mathematically, and reproduce its effects without being there.

That didn't help much, did it? Without getting into transforms or calculus, let's dig in a little deeper.

Imagine a sparkplug sitting on top of a mic stand, attached to an ignition coil. It's sitting in a small, rectangular room. You push a button and the spark plug fires once. That spark creates a sound, and that sound is a pretty decent impulse: the spark plasma ball expands, and gives you a very short, narrow, positive pressure pulse. Snap.

Now, let's imagine that you've set up a very sensitive measurement mic. That mic hears the "snap" of the spark. A few milliseconds later it hears the first reflection of the snap off a wall. In the coming milliseconds, it will hear other reflections- and they will decay over time, get denser, lose amplitude, maybe spread out (losing high frequency information as they bounce), maybe change phase, and so on until you've decayed back to silence.

If you can accurately measure the time, ampltude, phase, and frequency content of *each* of those reflections, you can set up a mathematical model to exactly recreate the "sound" of that room. Each sample of an input signal is (conceptually) run through a series of delays, filters, and level controls so that the echoes arrive exactly as your spark's echoes did.

Theoretically, if you do this with enough accuracy, you can exactly recreate the acoustics of any space. The actual mathematic process of munging the input sample stream is called "convolution": you "convolve" the input signal with the impulse respose of a space, sample by sample, and after _lots_ of math, you have the net effect of that sound in that space (or that sound through that microphone, or that sound through that piece of unobtainable signal-processing gear). Convolution is the digital signal processing Swiss Army Knife.

This was a mathematical curiosity for a long time, of course. Then, it was the exclusive realm of serious acousticians with really big machine-time budgets. Only recently has digital signal processing become inexpensive enough, and fast enough, to move this technology into the realm of affordable, real-time effects generation: to do a convincing modeled reverb takes literally millions of mathematical operations for each individual input sample.

For a long time, the spark gap was the way impulse responses were measured. That was the cheapest and easiset way to get a clean impulse. The problem with trying to use an "impulse wavetable" to drive a speaker to measure a room response (for example) is that the speaker is nasty, smeary, and will never be able to do a clean impulse: you get a wide, lumpy positve blop followed by a smaller negative blurp and a whole series of cabinet reflections. In short, the resulting noise is interesting, but an impulse it ain't! And using anything other than a pure impulse to kick a room (or mic, or whatever) will smear the hell out of the response you measure: what part belongs to the oblect under test, and what part belongs to the crummy non-impulse impulse you used? Beats me.

Impulses are easy to make in the digital domain: one single sample at full-scale, with nothing but 0's before or after it. That's great in the digital domain. But in the real-world analog domain, most folks still go back to the good old spark gap...

Did that help any?

Anyway, what Charon is asking after (I think) is not the impulse itself (the stimulus): he's asking after various _response_ files, the result of all the measurements taken with the original snap. There are getting to be a fair number of them around these days, seems like...

It's much easier to let someone _else_ do the measurement and the mathematical conversion into an impulse response file. Although, there's nothing stopping you from hacking on them by hand and creating impossible spaces, or micorphones from Mars, or the sound of a vintage LA2A being immersed in molten lead...
 
Last edited:
Universal staccato test tone. Gotcha.

:D

Ok. I guess what I'm confused about now is what the "convolution" thing is.

EQ + Attack + Response times?
 
Yes, and no. The convolution is the process of taking a sample stream, and running it though what are essentially a series of delays, scalings, and filterings that exactly mirror the delays, scalings, and filterings that each individual reflection of your original snap experienced. It is not simply EQ, nor is it simple delays, nor is it simply amplitude scaling. It's all of those, all at once, and changing with time.

Let's say that you are modeling a room, and it takes 2 seconds for the original "snap" of the impulse to decay down by 60dB. That means that your impulse response is two seconds long, or 88,200 samples long (at 44.1kHz sampling rate). So each input sample is going to experience 88,200 separate operations as it goes through the convolver. A lot of them will be "multiply by zero", because no reflection arrived in that time slot when the impulse response was measured. But the bottom line is that each input sample travels down this pipeline, experiencing some mathematical operation for each sample-time's-worth of the impulse response.

Here's the magic: the *output* sample for each tick of the convolver is the summation of all 88,200 of those separate operations: each sample is affected by the 88,199 that went before.

So as the convolver runs, your first input sample is multiplied by response coefficient #1, summed up with 88,199 zeros, and output. The clock ticks, and your second sample is multiplied by response coefficient #1, the original sample is multiplied by response coefficient #2, and the output is scaled-sample-2 plus scaled-sample-1 plus 88,198 zeros.

The clock ticks again, and the samples march dutifully down the pipeline. The impulse response was 2 seconds long, so it takes the pipeline two seconds to fill and drain... Finally, 88,200 sample after you stop putting in any input, the last of the output is back to zero and the damned thing shuts up.

If your room has an RT60 (time for a 60dB decay) of 25 seconds, you can do the math_ there's a shitload _more_ multiplies, and adds to be done. It gets expensive.
 
And now some of us have the computers that can do the math.

But what's it good for?

Changing the sound on a track as the track progresses? Or is it just a matter of coming up with new sounds that you can't get using EQ, compression and effects?
 
We're talking about room and mic modeling, yes?

Good GOLLY. They should just call it "modeler."

Skippy, that's an awesome explaination of this whole "convolution" thing. Thanks!
 
We're actually talking about "everything" modeling. Rooms, mics, eqs, signal processing gear, cables- everything.

One of the basic theorems in digital signal processing states that if you can characterize the impulse response of _any deterministic system_ (one that always does the same thing with the same input) with sufficient accuracy, and you have enough crunch power to implement that impulse response in hardware, you can perfectly reproduce that thing. So that's why a good hardware convolver is the Swiss Army Knife: doesn't matter what impulse response you put into it, it acts like whatever system, box, or thingus the response came from. It's not like a low-end hardware reverb with a fixed set of algorithms: doing convolution slices the problem the other way, and lets you implement the *fundamental behavior* of a thing, not just a portion of a model of a subset of some of what it does, maybe.

So if Aunt Clara wants to play her kazoo in Carnegie Hall, and you have the impulse response of Carnegie and some serious horsepower, you can do it: you can impose Carnegie on top of her kazoo with your convolver, and everyone's happy. That is precisely what the ultra-high-dollar modeling reverbs that have cropped up in the last few years do. Thing is, their marketing people are screwing up: a good convolver should be able to model mics, rooms, Victrolas, crock pots...

It works both ways. The phone company uses this for handling transmission losses (matter of fact, we owe *all* this to Shannon and his happy campers at The Phone Company). They know their transmission media usually sucks, with echoes, EQ problems, and so on. So they take its impulse response when they set up the line. Then as you're talking, they are _deconvolving_ their "suck" out of your signal: they are using the reverse process to *subtract* as much suck as they can, leaving your signal in much better shape at the other end. Yeah, long distance sounds terrible: but it'd sound much, much _worse_ if they didn't do this. They only implement the minimal amount of crunch that they need to to preserve your voice bandwidth, because crunch costs money...

That's how mic modeling ought to work: you want your SM57 to sound like a U47? You take the impulse response of the SM57, and deconvolve it out of the input signal (essentially removing the warts of the SM57's characteristics, and leaving a "neutral" signal). You then convolve it with the impulse response of a U47. Viola'! Something that sounds like- well, something, with the current state of the art. To me, it doesn't sound much like a U47, but that's because the responses of the two mics are probably not characterized very well, and the hardware doing the crunching has very limited horsepower, so they can only hit the high points: so they fall weeeeelllll short of the theoretical limits of perfection. To Antares I say: do the response sampling much, much better, up the horsepower in your cruncher by an order of magnitude, and _then_ get back to me...

The technology is still in its infancy; but there's more crunchpower available now than there has ever been, for fractions of a penny on the dollar. Seriously: the answer to "what can I do with it" is "any damned thing you want". When I used to work at Kurzweil in the mid-80s, we did a lot of this sort of processing, the old-fashioned hard way. To crunch up the response of one sound, from attack through decay, took basically several hours of time on a VAX730. Hell, my *palm-pilot* probably has more balls than that poor old thing did, let alone this machine on my desktop. Tempus fugits.

It *all* traces back to Claude Shannon and his guys at Bell Labs. You'll like this part- he's also really the father of the "modern" vacuum-tube amplifer. That's right: he did *all this work* (on tube amps and sampled data systems) in the late 1930s and early 1940s (!), and passed away last February. I feel very lucky that I did get to meet him, and studied under him for a very little while back in my misspent and unlamented academic career...

History will always remember Edison and Bell, but this guy was a team player, assigned all his patents and works over to Bell Labs, shunned the limelight, and now only nerds like me know about him. We all ought to remember Shannon with some of the same gratitude, every time we twist that knob up to 11.

In memoriam: http://www.bell-labs.com/news/2001/february/26/1.html
 
Last edited:
Ooops... Damn. You guys got me started _again_!

Sorry about that. I just get that way sometimes. (;-)
 
And back to the original question..

So now that we're all clear, does anyone know where I can get somemore of these impulse waves?
 
Back
Top