Stereo to multichannel

Hi guys,

I’m working with stereo soruces to be placed inside a multi-speaker setup.
I know thata PanAz UGen doesn’t work with stereo input so I came out with this:

~nspeakers = 8;
~spotoffset = 1.0/~nspeakers;
s.options.numOutputBusChannels = ~nspeakers;

SynthDef(\source, {
    var sig;
    var pos =; // autopan
    sig =, mul:0.25);,, pos));

SynthDef(\outputstage, {
    |in=0, pos=0, orientation=0.0, w=2|
    var sig =, 2);,, sig[0], (pos - ~spotoffset), width:w, orientation:orientation ));,, sig[1], (pos + ~spotoffset), width:w, orientation:orientation ));

c =, 2);
a = Synth(\outputstage, [\in, c]);
b = Synth(\source, [\out, c], a, \addBefore);

// make some modification
a.set(\pos, 0.375);
a.set(\orientation, 0.0);

Is there a better way to place a stereo source inside a 360/multi-speaker arrangement?
Thank you very much fro your support!

See SplayAz

Besides, going from stereo to multichannel is an interesting demand which opens a field for experimenting with alternative methods. In my last pieces I splitted stereo signals into frequency bands, did MS-encoding and defined slightly differentiated movements for the results, which, I think, worked quite well. I might document that on occasion.

Thank you @dkmayer.
Really interesting approach of yours, did you have a repo for your pieces?

Sorry, no. I might polish the spatial distribution part when I have the time.

1 Like

Also, consider VBAP

This is useful for 2- and 3-dimensional arrays and has a ‘spread’ function for panning the sources across multiple speakers.


Thank you too @Richard!
I will try it :slight_smile:

Is there any progress for this type of idea, I’m looking for something simpler and educative that can be little bit a less advanced to make static measurements by microphone input before playing?