Group Admins

  • Profile picture of warusfel
  • Profile picture of T.


Public Group active 5 days, 23 hours ago

User group for Spat, panoramix and ToscA

Problem with SPAT

Author 2 Subscribed Users |
Profile photo of LasseMunk

Hi people!

I have a problem with SPAT. We’ve setup a 27 loudspeaker system but experience some strange movements when panning sources around. By ‘strange’ i mean, standing in the sweetspot, and panning to one end in the room, the sounds seem to be originating from different loudspeakers than those close to where i’m panning. sorry for my bad english – it’s difficult to explain.

The loudspeakers consist of 1 main ring, 8 loudspeakers. A second ring; 4 loudspeakers. A center-top loudspeakers, loudspeakers in the corners + a few other loudspeakers.

I have checked all the physical and software routing – that is correct.
I have calibrated the loudspeaker system to have a equal loudness (A-weighted) and close-to-identical frequency response 2 meters from each loudspeaker position.

We are not sure if we use the right panning method and / or the right interfacing for SPAT.

I’ve added at .zip file with the max-patch as it looks right now.
I’ve added a picture of the loudspeaker setup.
I’ve added a .txt file with the loudspeaker positions (ade)

We have tried different panning methods; angular panning, vbap2d and 3d but all of them seem to give the result.

We are interfacing with spat.oper using xyz coordinates for the sources. Does this have any influence to how the perception of position is perceived in comparison to using ade placement of sources, given the end position of the source is the same place ? It’s only a message format difference, right?

I’m thinking we are setting up spat in a wrong way somehow but i’m unsure where to look for errors.


  • This topic was modified 2 years, 3 months ago by Profile photo of LasseMunk lassemunk.
June 18, 2015 at 10:21 #13890
Profile photo of T.

Hi Lasse,

Several issues to consider:

1) Your speaker setup is 3D. So you need a 3D panning algorithm. ‘angular’ is made for 2D only so it cannot work.

2) Basically we can consider that you have 2 rings of speakers + 1 loudspeaker at the zenith. Am I right ?
Typically this could be suited for vbap3d or hoa3d methods.
Have a look at the spat.pan~ and spat.decoder~ help patches for these techniques.

3) The lower ring of your setup is problematic (for Spat) : it seems to be made of two (almost) co-located rings
(speakers 1 and 9, speakers 2 and 10, 3 and 11, etc., are almost at the same position).
vbap or hoa algorithms wont like that.
A workaround could be to tell Spat that the lower ring contains only 8 loudspeakers (instead of 16)
and feed the same signal to the co-located speakers.
(not sure if i’m clear ?)

4) Another problematic aspect (for Spat):
the listener (depicted with a small grey head) shall be inside the volume made with your speakers.
In other words you shall translate all your loudspeakers downwards.
I mean, translate them virtually, in Spat (not in the room !).
E.g. translate them so that the lower ring is approx at the 0 deg elevation.
You can use spat.transform to do that easily.

5) You will need to align your speakers signals in terms of delays/gains.
(this could be done on by the sound engineer at the mixing desk or directly in Spat)

Let us know how it goes…

June 18, 2015 at 10:51 #13895
Profile photo of LasseMunk

Hi T.

Thank you for the quick reply.

We just now tried out the SPCAP method. This seem to work better.

I will look at the 3d methods and spat.pan- and spat.decoder-

3) ah yes ok. The reason for the two co-located rings is, that the audience are ment to be walking around during the concerts, and we wanted to make sure there were ‘presence’ in the signal when audience is listening from outside the ‘dome of speakers’. This meaning the co-located rings are pointed exactly not-the-same-way (<< insert right word here), but are fed two different signals. In this situation, it would be better to feed the same signal to each pair of co-located loudspeakers?

4) Aha !! Just to be sure: It’s only the lower ring that should be moved virtually towards the floor (0 degrees), right? The other loudspeakers should not be moved virtually?

We have aligned all loudspeakers in loudness, measured 2 meters from each loudspeaker. Meaning – we moved the measuring microphone for each measurement.

Would it be better to measure at a fixed position in the center of the system, and adjust the loudness to be equal for all loudspeakers?

This could possibly create some issues when you walk around inside the loudspeaker installation – meaning if you are closer to one speaker, then that one would be much dominant – right?

Delays: Are there a quick way of measuring delays using a microphone and some-object-in-spat, or should I just calculate them approximately by the speed of sound (roughly 3 ms pr. meter) ?

June 18, 2015 at 11:24 #13897
Profile photo of T.

Hi again,

‘spcap’ is also for 2D not 3D.

3) well, ok. It’s difficult to tell if it’s gonna be good with people walking around.
vbap or hoa are meant to create a proper spatialization effect at the sweet-spot (i.e. at the center of the setup).
hoa with the proper settings can provide a rather large sweet spot so that it’s possible to walk while keeping a good spatial image.

4) No, you should shift down the whole system
(so that it respects the overall arrangement of your setup).

5) as vbap and hoa intend to recreate spatial sound field at the sweet-spot, the system shall be calibrated/aligned with respect to the center of the array.
(not each speaker at 2 meters).
This can be done either based on the geometry of the setup : [spat.align~]
or based on in-situ measurements (in the center) : [spat.delaycalibration~] and [spat.gaincalibration~]


June 18, 2015 at 11:43 #13898

You must be logged in to reply to this topic.

Log in now