< Back to IRCAM Forum

Spat 5.2.4 and Panoramix 1.5.2 released

Dear all,

Spat 5.2.4 for Max/MSP and Panoramix 1.5.2 have been released.

The changelog is below.

Please read this thread regarding installation, troubleshooting, and bug reporting guidelines.


Release Version : 5.2.4
Release Date : 07/2021

  • now requires Max 8, and macOS >= 10.11
  • spat5.hoa.focus : added “/background/color” message
  • spat5.hoa.focus : added “/zoom/lock” message
  • spat5.hoa.focus : zoom is now expressed in percent
  • spat5.osc.unique : added “mode” attribute
  • spat5.oper_ : fix minor issues with “/drop” and “/drop/mode” messages
  • spat5.oper_ : improved initialization
  • spat5.wfs, spat5.wfs~ : properly search files in search path
  • spat5.viewer : improved orientation manipulations
  • spat5.viewer : added “/direction” message to specify direction axis
  • spat5.wfs~ : added “/prefilter” message
  • spat5.eq : fix initialization issues with @initwith or @embed attributes
  • added spat5.fir~
  • spat5.panoramix~ : added pre-filter on WFS bus
  • spat5.panoramix : fix bugs with groups when recalling presets
  • spat5.conv~ : major cpu optimizations
  • spat5.conv~ : defer load of IR in background thread to avoid audio clicks
  • spat5.hostinfos : added “/system/sleep”, “/system/logout”
  • improved documentation and ref-pages for several objects
  • spat5.viewer : added “/area/[index]/trigger” message
  • added “spat5.tuto-viewer-7.maxpat” demonstrating area triggers
  • all GUI objects : added dump notification for “/preset/loading” (immediately before loading preset)
  • added spat5.rake~ on Windows
  • spat5.wfs.config : major refactoring
  • spat5.grids : added Poisson disc sampling (2D and 3D)
  • added spat5.evert.fdn~ on Windows
  • spat5.hoa.directivity, spat5.hoa.beam~ : supercardiod pattern can now be computed for arbitrary order
  • spat5.hoa.directivity, spat5.hoa.beam~ : added dolph-chebyshev pattern
  • spat5.grids : added “/format” message


thx a lot T. :slight_smile:

Hi T,

Thanks for this update! Regarding the spat5.wfs.grid object, is it possible to create a filter for two linear WFS arrays facing each other (from opposite ends of a room)? I noticed there was a circular array in the example so I thought opposite linear arrays might also be possible.


Hi Bobby,

In theory, with the major refactoring under the hood, spat5.wfs.grid might now be able to cope with such a scenario.
In practice, this is still a little experimental, and I’m not sure everything is 100% ready for that very use case (two arrays facing each other).
You would need to properly define the speaker directions (in addition to their coordinates, of course). Have a look at the attached patch for inspiration. Maybe it’s still preferable to generate two distinct filter sets for the two arrays. Unsure yet. Curious to hear your feedback if you have the opportunity to test that…


forum.maxpat (53.0 KB)

1 Like

Hi Bobby,

Do you have opportunity to test the use case of two arrays facing each other?
What is the test result? It is appreciated!

Hi T,

What is the difference between spat5.wfs and spat5.wfs~?
In the reference document for these two objects, you still state that
spat5.wfs ~ performs wavefield synthesis for a linear uniform array of loudspeakers. spat5.wfs ~ uses a precomputed set of data filters (see spat5.wfs.config).
Should you change spat5.wfs.config to spat5.wfs.grid?

Do you support vertical BOX configuration now? or just multiple linear uniform array of loudspeakers?


Hi Darren,

What is the difference between spat5.wfs and spat5.wfs~?

spat5.wfs performs queries into a database of pre-computed WFS data. It delivers the loudspeaker delays/gains for a given virtual source position. The object does not process audio signals.
spat5.wfs~ also holds a database of pre-computed WFS data, and further renders the signals, i.e. it processes the input signals and applies proper delays/gains, generating the actual speaker feed signals.

Should you change spat5.wfs.config to spat5.wfs.grid?

Indeed. Thanks; I will update the documentation accordingly.

Do you support vertical BOX configuration now?

What do you mean exactly ?
As mentioned previously, spat5.wfs.grid should now support almost ‘any’ loudspeaker layout. However this is yet not fully tested, and for sure we will need to make adjustments for a number of peculiar cases.
Same remark as for @bmce : it would be great if you can test with your own setup, and report what works (or doesn’t).


By vertical BOX, i means speaker array around the screen.

And now we can config two horizonal linear speaker array with new wfs.grid, and one on top of another with enough distance. can we make source between two linear speaker array. And we try, it doesnt work. And then what is the use to configure two horizon linear speaker array.

And we also try to use vertial linear speaker array to implement source movement from top to bottom, just like to implement source movement from left to right or from right to left with horizon linear speaker array. Should we just use same horizonal wfs~ patch but turn horizon linear speaker array to vertical? or should we re-config one vertial one using wfs.grid?

Hi Darren,

Could you please send one (or two) Max patchers that demonstrate the use case(s) you are trying to implement ? (including your speaker coordinates and orientations)
It’s not entirely clear from the textual description what you are trying to achieve…

Best regards,

Hi T,

Please see attached max patchers.
hori-double-lsa62.maxpat (63.4 KB)
double-lsa62Render.maxpat (67.8 KB)

Dear T,

We also try to use following configuration to genrate source at z axis.

vertical-double-lsa62.maxpat (63.3 KB)
double-lsa62Render.maxpat (67.8 KB)


I have this problem. Text in the viewer and oper is way to small and I don’t know how to modify this. I have a 4k screen.


Hello Paolo,

I don’t have a 4k screen, so I cannot test.
There is currently no way to change the font or font size.
But what if you change the window scale of oper or viewer ? using the OSC message “/window/scale [number]”



Hello T.

Thank you so much, it works like a charm. Is there a way to set the desired scale number to default?

Kind Regards,

The default is 100%, so sending “/window/scale 100” would reset to default.


I apology for my bad english. I meant set desired scale number as default, to change the default scale number.


You can initialize to the desired window scale with :
[spat5.oper @initwith “/window/scale 130”]
or via loadbang.


1 Like