Spat5.equalizer @mc and selective speaker muting on trajectory


First of all a quick thanks for sharing Spat5 with the community, it is absolutely incredible.

I have 2 questions in relation to an installation I am working on now which - similar to an acousmonium - has many different type of speakers/drivers to manifest the sculpture.

The first question: is it possible to selectively mute speakers in relation to a particular source? So let’s imagine I have 2 sources moving in a field of 64 channels output panning round in the main spat~ controlled from spat5.oper and or spat5.pan~. Would it be possibly to have speakers 4, 55 and 62 (example) selectively muted for souce 1 while still active for the trajectory of source 2? And if so can this be done dynamicly with gain attenuation or would this be only binary muting (switch-state)? If possible I would be interested to hear the most optimal strategy to realize this. I would prefer muting/attenuating the speakers selectively over diverting the trajectory so the source will not cross the speaker, because this will give more flexibility in the spatial modulation.

edit: I figured is it also possible to name each speaker individually, would it be possible to implement a selective muting based on the naming of speakers? For instance source X is not audible on all speakers starting with “horndriver” on its trajectory

Second question is in regards to using the @mc functionality for the equalizer. I would like to achieve the following: I have 9 different type of speakers with a quantity of 64 total, for each of these groups I want to apply a final gain and eq adjustment in the last stage before going into the dac. Nevertheless within the 9 groups there is spatialized multi-channel content. Is it possible to have only 9 equalizers in which 1 equalizer could adjust 12 channels selectively for efficiency-sake?

In my current solution I’m creating 64 equalizers and copying eq responses within the groups to the related channels but this ofcourse cumbersome and not a very effective workflow. (spat5.equalizer @channels 64 into spat5.cascade~ @channels 64 @mc 1)

Any suggestions on being able to work with group eq’s within the mc structure?

Many thanks for the advice!

Robin Koek

Hi Robin,

First question: no, I don’t see any way to selectively mute speakers in relation to a particular source.
You can either 1) completely mute a given source or 2) have one spat~ object for each source and mute or attenuate the corresponding output channel(s).

The name of the speaker is currently only a graphical hint, but cannot be used for control purposes.

Second question: if you have 64 speakers in total, you’d need 64 independent equalizers even if they have the same response characteristics. You cannot “share” equalizers for efficiency.
Anyway, spat5.cascade~ / spat5.equalizer are fairly optimized and should handle 64 channels nicely.

Finally, it shouldn’t be too cumbersome to “copy” the EQ responses to multiple channels : you can e.g. use the following syntax : /channel/[12-16] or /channel/{3,5,6,24}
(see for instance spat5.tuto-osc-1)


Dear Thibaut,

Thank you for the elaboration and the advice on how to approach these topics.

I will implement and evaluate your proposed workflows tomorrow immediately.

All best,