Reverb Max/MSP object with Decay time in ms (or samples)
Hi everyone!
Looking for a Push 3 compatible (no externals) reverb object/patch/abstraction and/or gen~ patcher that accepts decay time in non-relative time values.
I've tried GigaVerb but even with very short decay times (presumably received in samples, though this detail remains somewhat unclear), the audible decay remains quite long except at the shortest room sizes.
Freeverb just has feedback controls, while dattorro_reverb and yafr2 only non-time-based (eg. 0.-1.) decay values. If anyone can point me in the right direction, or has a patcher that does this, that would be amazing.
I've already explored maxobjects.com, but every promising patcher or abstraction results in a 404. (Side note: it would be fantastic if that valuable resource were better maintained).
not shure I understand the question. What about Hybrid Reverb in Algo mode or Reverb?


Thanks @Double_UG, but I don't want a Live device - I'm well aware of all of the native Reverbs in Live. What I need is a reverb Max/MSP object that supports time-based decay input (yes, like Hybrid Reverb does) - but the Live native devices are not useful to me in this case as I'm building a Max for Live device that will use the reverb object or patcher I'm looking for internally, under the hood.
you seem not to be able to control for example gigaveb ?
Reverb time is never matching set ms decay value in any reverb,
if you mean time from short input till reveb output level goes down to zero.
Reverb length depends on several parameters that form reverb as such.
decay time is not reverb length.
room size can not be ignored because it forms lengh and intensity of
early reflections, which again form reverb tail and so on.
I don't know of any reverb that can be set to 300 ms whatever
and then it goes mute afer 300 ms of input silence.
if you want it simple, take freeverb and translate 0. - 0.99
to measured reverb length after short pulse.
what is "Push 3 compatible reverb" ?
Hi from BC Noah, we used to spin your DJ sets at my old job in Vancouver a long time ago! :-)
I'm not sure if this is helpful, but Vol 3 of Cipriani and Giri goes into doing reverbs in Max and Gen in quite a lot of depth (and is just otherwise a fantastic resource). I haven't worked through that section myself, so can't say for sure, but they might have example patchers that would be helpful.
Hey @Source Audio, Push 3 compatible (currently) means native Max/MSP objects only; no externals allowed.
GigaVerb works because it's gen, but I can't control the decay time in a way that makes sense for what I'm trying to accomplish. I understand in some models decay time is dependent on room size and other parameters, but if I'm not mistaken, in more simplistic cases it might be used in conjunction with other parameters to imply the room size when no actual room size parameter is available.
Please forgive my ignorance in these matters, I was never formally trained in DSP! But in my case a room size parameter is optional; what I need is accurate time-based control of RT60, which I believe is what most reverb plug-in decay times in milliseconds refer to. So no, not quite "mute" as you said, but SPL of -60 dB is a not-uncommon measurement of reverb decay time and more or less what I'm looking for here.
As for Freeverb, unless I've missed something, translating a wide range of decay times to a float lacks the accuracy I want - unless you have a suggested formula for this? In addition to which, it just has the two feedback parameters and no actual decay control I'm aware of.
@Iain Duncan!! :) Thanks for the Cipriani and Giri tip, I'll look into this. Just starting to dip my toes more into gen but looking forward to more resources like this.
Meanwhile, I've got a workable version of what I want to do with yafr2, but it's... not ideal.
I see about push - it has nothing to do with push but simpy only native max objects.
if I remmber well RT60 relates to room reverberation type,
you seem to need a plate, which does not depend on room size,
and does no get caught in toilet type of small room reverb wih short decay times.
which yafr tries to simulate somewhat, but what is easier in yafr to translate it's prameters together to express reverb time in ms,
compared to freverb gen~ variant.
in both cases you would need to measure actual reverb time
by either recording it, or simply timing output level drop below wanted threshold.
P:S.
there is creepy reveb gen example, which has
decay time control in samples .
I newer tried it, have no need, but might be worth checking ?
decay time is available in milliseconds in most reverb plug-ins, i would just use something else, like the one mentioned above already.
Yes, reverb decay in milliseconds is quite common in reverb plug-ins, isn't it? This in part is what's left me so perplexed.
But I can't simply use a plug-in in this situation because I'm trying to create an unusual reverb device that connects and reacts to numerous other (non-reverb) parameters via Max/MSP. It also must work on Push 3 Standalone, so VSTs and other plug-ins are ruled out by default.
And yes, the Creepy Reverb gen patch does have time-based decay input, but it doesn't really resemble a conventional reverb - it's a bit too crazy for my purposes.
Is Hybrid Reverb's algorithmic decay time perhaps accessible via the Live API/LOM?
I am not using Live, but I think that only m4live devices can be
controlled using LOM.
Native Live effects and their parameters must be opened to some sort of scripting, controll assignments and so on.
Ony that I am wrong person to talk about it.
But is not quality of reverb main factor in your project ?
I used gigaverb since many years in various projects
and sound was allways convincing.
I did not use gen~ version, you might compare it to external version,
to see if it matches the quality.
I trust that one can bundle several parmeters using scaling to
address all together with single parameter - reverb length
and get satisfying result, if that is what you are after.
Is Hybrid Reverb's algorithmic decay time perhaps accessible via the Live API/LOM?
Yes, put this device left from hybrid reverb. You have to figure out the scaling 0 - 1 to 100 ms - 60 sec.
"Yes, reverb decay in milliseconds is quite common in reverb plug-ins, isn't it? This in part is what's left me so perplexed."
you can always pseudo-calculate the decay time of a third party reverb by measuring RT 60 from a series of clicks with am amplitude of 1. - and you can always do something similar to find out how a plug-in parameter is scaled to the DSP inside.
(for most reverb plug-ins it is probably linear, and you can tell that from looking at the ms display when moving the GUI element.)
i understand that using ableton is probably required for you, but for the really weird stuff i would otherwise recommend to do it in max - and use a custom reverb algorithm, too.
only then you have full control over things and not to worry about APIs, "object models" or half-documented VST RTAS AAX nonsense which changes every 3 months.
but you want to use live - so ignore my self talk.
Yes, Live is obviously required here.
And I don't regard what I'm attempting to do as particularly weird; in fact, from my perspective it seems like it ought to be fairly rudimentary: control reverb decay time with a time-based parameter without relying on any external libraries or formats.
I hope to someday be able to code my own reverb in gen - but until then it seems I'm stuck with yafr2.
Hi Noah, on the topic of resource tips, the vol 3 of Cipriani and Giri is really something, it's a monumental contribution to the computer music literature in my opinion. I'll be working through it for a while! The gen book by Wakefield and Taylor is also good.
I think from your comments that maybe, like me, you are getting into more dsp related stuff but not coming from university maths background - I myself just started an interdisplinary Phd in computer science and music but almost all my formal education was music, so I have a ton of math catch up to do in a hurry! Two books that I so wish I had found earlier are Gareth Loy's Musimathics Vol I and II - they are truly fantastic. They go into very serious depth, but are written such that someone without uni maths background can use them successfully as a guide to learning when combined with general math resources like Khan academy, Paul's Online Math Notes, etc. I can't recommend them highly enough.
http://www.musimathics.com/
Also worth mentioning are the Julius O. Smith books, which he has made all available free online too!
https://ccrma.stanford.edu/~jos/
Both Loy and Smith are/were two of the original stanford CCRMA folks.
I vaguely recall that there are someonline resources by Sean Costello on building reverbs in Max too (I saw his workshop in person). Anyone know more of those?
HTH
Amazing, thanks for sharing these valuable resources Iain! Bookmarked.
You're welcome!