< Back to IRCAM Forum

Spat5 explodes on switching infinite reverb on and off

Hi all,

I remember this problem from years ago, but hadn’t had any trouble with it in spat5 - until now!

In my patch, I am switching the infinite reverb on and off, sometimes quite quickly (i.e., on for 2 seconds, then off). Occasionally, and (as far as I can tell) inconsistently, it explodes, jumping to a horrendously loud volume. Any suggestions for what might be causing this? The noise stops when infinite reverb is turned off, but the prospect that this could happen in a performance is terrifying.

Any ideas on what might be causing this?

ADDENDUM: I remember that we used to put very soft white noise into spat in days past to minimise the risk of this happening. Is that still recommended practice?

Two more details: (1) I send a “/room/1/reverberance 0” message 10ms before turning on the infinite reverb to clear any previous (non-infinite) reverb that is still present. If I don’t do this, the problem seems to go away…

(2) Adding white noise at a low volume doesn’t seem to make any difference either way.

Hi Paul,

Adding white noise at a low volume had nothing to do with the “reverb explosion”. It was a workaround for another issue (that doesnt exist anymore).

Quickly changing the reverb settings may result in “horrendously loud” explosions. It’s kind of inherent to the algorithm used, and difficult to avoid in the general case.
As a possible workaround, you could try : to not use the “/room/1/reverb/infinite” message (to spat5.oper), but instead to send “/room/1/tr0 [float]” to spat5.spat~. This message sets the reverberation time, in seconds. And you can use arbitrarily large value, to achieve an “infinite” effect.
The “/room/1/tr0” message comes with a (relatively slow) smoothing of the parameter changes, in order to avoid blowups (while the “/room/1/reverb/infinite” message has no smoothing, and changes brutally the reverb engine).

Hope this helps,
T.

Thanks very much! I will do as you suggest… the prospect of the sounds I was making today in my studio appearing during a performance is pretty daunting :slight_smile:

One other question: is there any other way to “clear” the current reverb other than sending a “/room/1/reverberance 0” and then a few milliseconds later, returning that parameter to the desired value? It seems like there ought to be a command that will cut any residual reverb without having to adjust the settings.

The “/dsp/clear” message clears out all internal buffers / delaylines.
NB : it’s similar to switching the DSP off/on.
NB2 : this message is supported by all DSP objects in spat5.
NB3 : the message has to be used with care, as it can generate clicks (discontinuity in the signal)

1 Like