Convolution reverb?

Hi:

I found your convolution patch and the code related to .wav files, etc.

Very interesting and looks to be very good work and closely follows all I have read about convolution!

I’d like to experiment with convolution reverb and your patch seems to be exactly what I need.

For my reverb ideas, the environments are large, so the impulse response is a bit long, maybe 2-4 seconds.

Will your patch work with longer impulse responses?

Anything else I need to know in order to do this?

-Gary

1 Like

Ah yes, the convolution reverb! I haven’t published anything about this yet because so far I only have good results with very short impulse responses, something like 200ms. I’d like to revisit this once we have solved the issue of storing data (e.g. samples and IRs) on flash.

1 Like

Hi Martin:

Thanks for the reply…

As I said, this area interest me a lot and i don’t need to store any audio samples, I only need to store the converted .wav data…(the impulse coefficients).

Anything i can do to try and get it from the 200 ms to about 2 seconds?

Thanks,

Gary

Storing the IR on flash means that more of the SRAM is available for processing buffers, which makes the overlap-add patch much faster.

Hi Martin:

OK, got it!

OK- how to do the store to flash? is this and the speed as you mentioned the reason why it’s not working well on a larger IR ?

How to do all of this…??

Thanks,

Gary

Ai ai ai. I guess, that 9 seconds of sampled Lexicon 480L output are too much for the OWL?

He, it’s going to be difficult! Even after converting the input to the frequency domain and back, each sample still has to be multiplied with every sample in the IR - as complex numbers. So that’s 9*48k complex multiplications per block.

My first attempt at convolution reverb is here: https://hoxtonowl.com/patch-library/patch/Convolution
It works for IRs up to 10240 samples (just over 200ms) and it’s fun for making things sound like they’re recorded in a tin bucket or a drain pipe. And actually it could be great for cabinet modelling. It currently requires a blocksize of 1024 to work fully.
I’m sure this could be improved, but I’m not sure by how much - maybe up to a second? Mostly it is a question of clever memory handling, as access to the internal memory is faster.

But then there’s also the inherent limitations of convolution reverb to take into account. You don’t have any of the parameter control that you do on your lexicon, so you’re stuck with the one setting. The only thing you can easily change with a convolution reverb is the dry/wet mix. You can of course add input and output filters and EQs, cross fade between IRs and do all sorts of clever things, but then why not build a nice reverb from scratch instead?

hi @mars, sorry to resurrect a dead thread - working on something fairly similar and wanted to know about progress regarding using flash to store sample data? If you’ve got a road map I’d be happy to help!

1 Like