convolution

Martin Czech martin.czech at intermetall.de
Thu Oct 28 14:24:36 CEST 1999


I have almost finished my fast convolution c-code.

All sorts of effects, like filters, echoes, surprisingly good reverb
and  before unheared results can be computed on any mono .wav-file with
reasonable computation time.

I can not make this available right now, because I have problems
with Windows not allocating enough real memory, thus slowing down
the program by 10x :-<<<

I have a question concerning reverb:

If I could record the impulse response of a room (say with my portable
dat), I could take the reverb of this room home to me. This works.

But how can I obtain a impulse response if I don't have anything that
makes such a impulse. I could clap in my hands (not very reproduceable)
or use two pieces of wood etc...

My idea is: 
I could build something like is used in movie studios: two pieces of
wood and a joint. Ok, this would give a loud, more or less reproducible
clap. But this doesn't look like an impulse, probably more like an
exponentially damped wave. Now, I could record this sound, say in "free
air" with neglegible reflections. I could compute the DFT. The "free-air"
clap represents a filter, with strange impulse response.

I could also compute the reciprocal of this spectrum (there will be
no frequency bins with magnitude "0", except perhaps the "dc" bin,
which is not important. At least I hope that none of the bins would
be of very small magnitude, because the reciprocal bin would then go
up to infinity...  This should represent a reciprocal filter, that if
applied to my clap-sound, will give a more or less ideal impulse.

I guess this will work.

The idea is now to convolve the whole room clap-response with my
reciprocal filter, such that I get the room response to a more or less
ideal impulse.

Would this work? I think it would, because of linearity of convolution,
but may be I'm wrong...


m.c.




More information about the Synth-diy mailing list