Forums > MaxMSP

Non-linear reverbs

October 25, 2013 | 4:47 pm

So I’ve been reminiscing about the Ensoniq DP4 multieffect and its odd odd reverbs, and contemplating how to go about it with max.

It seems to me that I’d either have to employ some sort of gating/envelope following algorithm to choke feedback inside the reverb, or just straight up go with convolution.

What are my options, exactly?
Thanks.


October 26, 2013 | 3:32 pm

I like lots of taps on a delay line (64+!) combined with a matrix~. Not the same exactly, but can be combined with other reverberation components to make some very non linear responses.


October 26, 2013 | 5:01 pm

i agree, a big set of tapping buffers would be one way to create a verb with a nonlinear "envelope". eventually one can get somehow satisfying results by adding a "normal" diffusion section afterwards.


October 26, 2013 | 5:05 pm

hm, or what about 64+ parallel systems of classic 3-5-firstreflections based on allpasses? all with the same settings, each with 50 samples more input delay~ and just the volume of all the parallel copies is controlled by the envelope?


October 27, 2013 | 3:14 pm

@peter: great idea, that. Should be really simple to roll something, too.
…why matrix~, if they’re all coming from the same delay line? Do you mean outputs for the feedback, and outputs for the actual output?

And yeah, it could get quite realistic with some added reflections thrown in there.

@roman: That sounds expensive! :) And oddly specific, do you have something up your sleeve?


October 27, 2013 | 4:09 pm

Matrix~ (with three arguments so it can have variable gain) let’s you control the volume and panning of each tap. Check out PM.MatrixVolumePan for this…

If you want to see an implementation of this, my UltraComb M4L device does this, though it only uses 32 taps.

You can get a lot out of this without feedback, though it can be nice with a bit, too.


October 27, 2013 | 5:06 pm

Woah, didn’t see PM.MatrixVolumePan in your libs! Nice. Nice, nice.

Yeah, matrix~ has a ton of potential, but it’s always been finnicky and in dire need of auxillary objects. So thanks for this .zip – rifling through it right now.


October 27, 2013 | 5:37 pm

Way to bury the lede there, Peter. Your helpfile was like, identical to the patch I was whipping up. Great minds, hehe. I’m really loving the @outlets setting, makes expansion super easy. Great work.

Ah well, I ended up with a really nice diffused delay thing here. Is it bad of me to use two Gigaverbs just for diffusion? Whoops.


October 27, 2013 | 9:36 pm

Thanks! Back in the days of Altivec, PM.MatrixVolumePan was way faster than *~ and line~. Matrix~ = multiply + offset, so you can also use it for fun things like additive synthesis with frequency shifting on some partials. Nowadays, I’m more likely to just do it in poly~, since I’d rather have the extra control.

I did make a Hammond organ model with it, using 63 oscillators (?!) and a matrix~ with 9 outs. (scale the output of an outlet and you have a drawbar…) It worked better than poly~, because you couldn’t have phase cancellation.


Viewing 9 posts - 1 through 9 (of 9 total)