4 channels to 2 channels

Hi,

I have a code where everything is going in to a ~masterBus.

SynthDef(\master, {|in|
	var sig;
	sig = In.ar(in, 4);
	Out.ar(0, Limiter.ar(HPF.ar(sig, 20)));
}).add;

The project is a quad-channel project. So all of my SynthDefs have a Pan4.
My problem is that I need to do a lot of coding with headphones. At the same time I need to prepare my code so that it is all setup for a 4 channel distribution. Is there a way to convert my 4 channels to 2 channels in my “mastersynth”?
I tried to use Splay and Pan2 but that did not work.

Basically I want to be able to keep setting the pan-parameters on my Patterns but here it in stereo until I have the possibility to use my 4 speakers.

You could put a synth after your master synth, which collapses (for instance) front-left and rear-left together, and similar for right.

hjh

I find the Monitor class convenient for this kind of thing - if you want your synth to rebuild after command-. remember to add it to ServerTree. In my system I have a function which checks which output device is active in s.options and adds appropriate fold-down synths to ServerTree during boot

I am not sure that I understand what you mean.
My mastersynth is picking up from a ~masterBus and sends to bus 0. Should I pick up from 0 and send to 0 in my new synth?

Did not understand this either. Tried to follow the helpfile but I got error messages about a node that did not exist…

If you are working in quad starting at bus 0 and your channel mapping is 0-L 1-R 2-L-rear 3-R-rear then what you want to do is mix bus 2 into bus 0 and bus 3 into bus 1

So a basic fold down synthDef would look like

SynthDef(\foldDown, { 
  var sig = In.ar(2, 2);
  Out.ar(0, sig)
})

using Monitor

~foldDown = Monitor();
~foldDown.play(1, 2, 0, 2);

If you want this to persist you need to add for example:

CmdPeriod.add(
  { ~foldDown.play(1, 2, 0, 2)}
)

In both cases you need to take care to add the synths after your master synth

I like to use a Group after my default Group for this purpose

AFAICS, yes.

I was assuming that you’re keeping the signal-flow graph in your mind, e.g. “all my stuff, mixed down to quad” and the quad signal lives on bus in → “limiter/DC blocker” result on bus 0. So if you want to take the limiter/DC block result and collapse it to stereo, then you would pick up the limiter/DC block result from bus 0. (It’s up to you to know your signal/bus architecture.)

This is also assuming that you’re always booting the server with at least 4 output channels. (In SC, the number of hardware output channels is independent of hardware – extra output bus channels will simply not be heard.)

I haven’t written a SynthDef for you because I don’t know your quad layout.

To clarify – these are two different solutions. You wouldn’t use both at the same time.

hjh

Thank you! After reading the helpfile with your example it was easier to understand!

1 Like