First Basic Reverb Design

Alicia's icon

Hello all,

I am trying to develop my first plugin. And I wanted to start with a Reverb, really basic. I am trying to understand the whole concept which I thought it was easy, but it kind of got a bit more complex than expected. I followed Moore algorithm design. But still my patch does not work fully. I don't know if this is a problem of the "circuit" I have built or that I just have a lack of knowledge in Max Msp programming tools. I have been researching quite a lot. But internet sometimes does not entirely help because of the loads of information. And I am not sure if I need to get that mathematically deep (i.e Fourier,RIR...) to design a really basic reverb. If somebody has some recommendations for a book, or a paper which explains how to make a basic reverb algorithm design, with maybe explanations of how its parameters works (comb filters,all pass filters, delays, feedback...) why do we need those parameters or maybe a really basic diagram to start with. That will be really helpful. Please find attach my really basic/primary patch to maybe understand in which point I am. Thank you very much in advance!

FisrtReverb.maxpat
Max Patch
brendan mccloskey's icon

Hi
if you're looking for simple classic reverb algorithms, just create a [yafr] object in Max, open it and poke around inside. There is an almost *infinite* ;) number of learning resources, but here's an interactive one:

which clearly describes comb and allpass filter design.

The MaxMSP helpfiles are INVALUABLE!! Look at the "details" tab in the helpfiles for: onepole~, comb~, allpass~.

Look on maxobjects.con for "reverb", download and examine.

Good luck, and have fun

Brendan

brendan mccloskey's icon

. . . . in your patch, you haven't given your filters any initialisation arguments - feedforward, feedback, cutoff, Q etc.

Max Patch
Copy patch and select New From Clipboard in Max.

Try this (which is crap btw)

Brendan

Alicia's icon

Hi Brendan,

Thank you very much for your reply and the advices. Using Max MSP is a whole parallel discovery for me additionally to the plugin I'm trying to develop. Tomorrow I will have a proper look through all (it seems that your link with Schroeder reverberation is exactly the guide I was looking for). And also your patch is a good start for me to play with the parameters of my filters. Let's see how long I take for my first reverb.

I will keep you updated with my experiment! :)

andylatimer's icon

Hi Brendan.
could i ask one question? is there a possibility to have the reverb time in seconds or milliseconds instead of 0-1 resonance coefficent ? i don't know if there is a conversion equation.
Let me know, thanks in advance

brendan mccloskey's icon

Hi
if you're referring to the last patch I posted, the reverb/delay time to comb and allpass is given in ms. The resonance coefficient is actually a feedback scalar, which cannot (AFAIK) be described in milliseconds, unless you're prepared to do some heavy math(s).
BTW, the delay times to each comb/allpass should be small prime numbers, allpass should be larger than comb, or vice versa I can't remember, just web search "Schroeder reverberator"
Brendan

andylatimer's icon

Thanks for immediate answer Brendan. My problem is to have some reverb parameters in ms... for example, i've seen yafr2 example in max msp reverb folder. The size and the decay time are shown in a range 0-127.... could i have these parameters in ms , so for example i could set up decay = 5000 ms etc....
if impossible, do you know a reverb in wich i can indicate parameters in ms? thanks a lot!

brendan mccloskey's icon

Hi
can I advise you to start a new thread, specifying your topic question? Unless you find a reverberator design that specifies ms parameters, I think that working it out your/our self will be complicated. The feedback scalar introduces an element of 'chaos' into reverb time calculations, so a new thread will attract those better equipped to help you.

HTH

Brendan

Mitch Turner's icon

Alicia,
Not sure this is what you are looking for, but I ported the "rev3~" reverb over from a Pure Data abstraction into a Max abstraction. You might open it up and take a look how it works. It is a pretty good sounding reverb, and you can see how multiple delay lines are used.

Hope this help,
Mitch

pajzd's icon

since flash player = out of the interzone(-net)
a new url was needed :::
https://cnx.org/contents/H3hx-Qm8@3/Schroeder-Reverberator

==== well, it"s 2024

flashplayer gone &
no more cnx openstax apparently
but this