< Back to IRCAM Forum

Basic questions about reverberation in spat5


A few questions about reverberation in spat5:

  1. What’s the difference between the reverb embedded in spat5.spat~ and the separated reverb objects such as spat5.reverb~, spat5.room~, etc?

  2. Is it possible to fully desactivate the reverb in spat5.spat~?

  3. When trying to set the reverberance in spat5.spat~ using “@init”, I get this error message: spat5.spat~: [08:46:25.874] error occurred when processing “/room/1/reverberance 0.0”. Reason: this is a high-level message. spat5.spat~ only supports low-level messages." Where can I get information about the difference between high-level and low-level messages and their constraints?

Thank you.


  1. spat5.spat~ basically integrates a) a reverberation module and b) a panning module.
    The reverberation module combines early reflections (spat5.early~) + late reflections (spat5.cluster~) + late reverberation tail (spat5.reverb~) + additional filters/gains for each stage.
    spat5.room~ is similar to this reverberation module (early~ + cluster~ + reverb~ + filters)

  2. Yes. Two options :
    a) Mute the early/cluster/reverb components (using the “Mute/Solo” section in the spat5.oper window)
    b) Set the gain of the “omni” filter to minus infinity (or equivalently mute that filter). The “omni” filter affects all the signals going into the reverberation module. Muting this filter therefore disables all reverb effect.

  3. High-level messages refer to “perceptual factors” such as “source presence” or “reverberance”. These are shortly described in “Spat5-UserManual.pdf”
    The spat5.oper object converts this high-level representation to low-level messages (such as filter coefficients, gains, etc.). When spat5.oper receives the /room/1/reverberance 0.0 message, it computes and outputs all the appropriate low-level settings (in that case, mostly affecting the reverberation times “tr0” of the room). These low-level messages are delivered on the left-most outlet of spat5.oper (or equivalently spat5.oper_ which is similar but has no GUI).
    The spat5.spat~ object must receive only low-level messages.
    Whenever you use spat5.spat~, I would suggest to also have a corresponding spat5.oper for high-to-low conversion. You can use @initwith /room/1/reverberance 0.0 in the spat5.oper object.

Hope this helps,

1 Like