< Back to IRCAM Forum

About moving all the sources relatively


Thanks for this new versions.

I have a new project and maybe it’s the right time to try to do something I thought about for quite a long time. And I’m not the first. And maybe it already exists in spat.

I “just” want to move the listing point between sources. I don’t think the program is made for that, but in my case, it would be enough to move all the sources relatively around the head. I could try something in reaper and/or the oscar.xml file. But before, I prefer ask if there is a simple existing solution.

Is there a way to control all sources with only one type of parameter (like “azim”) ? With a kind of broadcast send.

Is there a way to move a (all) source(s) relatively ? Like y > -0.1m for all.

Of course it’s easy for rotations, but not for the translations.

Thanks a lot.


Hi Christophe,

There are different options that might help you (but might also be a little disappointing because they dont fully answer your request) :

  • spat5.transform is a good tool for these operations, but it’s not straightforwardly compatible with panoramix (meaning : you have to build a little Max patch)
  • for binaural bus in panoramix, you can rotate the listener’s head (equivalent to rotating all sources) with OSC messages (either using quaternion or yaw/pitch/roll Euler angles)
  • The syntax “azim++” applies an offset to the current azimuth. For instance :
    /track/*/azim++ 30 will rotate all tracks by 30 degrees.
    Similarly with elev++, x++, y++, dist++, etc.

Hope that helps,

It will help ! A lot.

Your third option, used with pooled automation items in Reaper is all I need. It took me 10 minutes to make it works. And I hope it will be easy to use and modify.

I just make some tests and come back soon to explain what I did if somebody else want to try.

Thanks again.

By the way, about my illness to always do everything with only Reaper and Panoramix, a friend of mine send me this :




For those who love cheese.

  1. Add the ++x/++y/++z parameters in the oscar.xml with small steps like 10cm.
<parameter index="7" name="x++" pattern="/stereo/$1/x++" min="-0.1" max="0.1" default="0"/>
<parameter index="8" name="y++" pattern="/stereo/$1/y++" min="-0.1" max="0.1" default="0"/>
<parameter index="9" name="z++" pattern="/stereo/$1/z++" min="-0.1" max="0.1" default="0"/>
  1. Then create many tracks in Reaper (2 in my example).

  2. On every track, open the automation line (++Y in my case) and create pooled automation items. It means all the changes you will make to one of this items will be applied to all other items. This is the trick.

  1. In the proprieties of one of the items, create a square shape and put the Baseline at 100. Each square move all the sources of +10cm (-10cm if the squares are in minus part of the item). You can use a lot of different shapes, but this one allows you make some predictions. 10 squares/s during 2s > +2m en 2s.

  2. Finally, the different options allow you to make a lot of things and not only linear moves. For example, by using “Freq skew”, it’s possible increase the speed during the movement.

It works great for my needs.
Thanks again Thibaut


Thanks for sharing !

Cheese / cheers,