PDA

View Full Version : modeling distortion with convolution



atma
03-08-2004, 06:52 AM
is this possible? i don't know an incredible amount about dsp, but it would seem like it shouldn't be impossible to run a test tone through a piece of gear or onto tape, drive it, and then have a program remove the test tone but retain whatever added harmonic characteristics the tube/tape/etc. created. then you could simply apply that distortion impulse to whatever sound you wanted, the same way reverb impulses are used...

anyone have any thoughts on why convolution programs (at least as far as i know so far) aren't capable of this?

djui5
03-08-2004, 04:43 PM
There's a plug-in for pro-tools that would be able to acomplish the task possibly, it a noise remover plug-in..can't remember the exact name right off hand..I'll post later.

Good idea you came up with..I like it.

Nika
03-17-2004, 03:22 PM
Originally posted by atma
is this possible? i don't know an incredible amount about dsp, but it would seem like it shouldn't be impossible to run a test tone through a piece of gear or onto tape, drive it, and then have a program remove the test tone but retain whatever added harmonic characteristics the tube/tape/etc. created. then you could simply apply that distortion impulse to whatever sound you wanted, the same way reverb impulses are used...

And the answer is....

Essentially no. Convolution works in a linear domain only. That means that the material that is added to the signal is consistent across frequencies and phase and only changes based on the incoming amplitude. A sine wave run through a convolution box at an amplitude of X will yield a certain amount of additional material added to it. A sine wave run through a convolution box at an amplitude of .5X will yield half as much additional material added to it, but the material will be the same.

Reverbs work this way. What the room gives back is linear in relation to amplitude - as you put more in you get more back, but what you get back is the same frequency content. Other devices work this way as well, such as preamps, delays, etc.

Distortion boxes are non-linear in that what goes in changes the frequencies of what goes out. The more you put in the more it changes what goes out. Example - you put in a 1KHz tone and what comes out is 1KHz if the amplitude is low. But as you raise the amplitude what comes out adds some 3KHz, some 5KHz, some 7KHz, and much more.

Further, what comes out is frequency dependent, such that what comes out is based on the frequency of what goes in - you put in 2KHz and what comes back is very different than if you put in 1KHz.

It is this non-linear characteristic of distortion that makes it incapable of working with impulse responses in the way you are addressing. You would need to run an impulse through the box at an infinite number of amplitudes to get the different impulses based on what goes in.

It is precisely this that Sintefex has done and Focusrite has copied with the LiquidChannel box. They sent something like 1000 samples through various non-linear boxes and sampled the different impulses that those boxes yielded at many different amplitudes. Once this is done convolution can be done, but it is a dynamic convolution, dynamically changing which impulse is being used based on the incoming amplitude.

I hope this helps start answering the question for you?

Nika.