Server-side audio channel reverse

Dear users,

How do you swap audio channels on the server?
The code block below is my version to do it, but I am unsure if the algorism is good enough.
Could I get some advice?

I appreciate any help you can provide.

Best

(
~test = { |buf, lev=1, rate=1, start=0, dur=1, pan=0, swap=0, loop=0|
	var env, sig;
	rate = rate * BufRateScale.kr(buf);
	start = start * BufFrames.kr(buf);
	env = EnvGen.kr(Env([0, 1, 1, 0], [0.02, dur - 0.04, 0.02]), doneAction: Done.freeSelf);
	sig = PlayBuf.ar(2, buf, rate, 1, start, loop) * env;
	sig = Select.ar(swap, [sig, [sig[1], sig[0]]]);
	Balance2.ar(sig[0], sig[1], pan, lev)
}
)

b = Buffer.read(s, Platform.resourceDir +/+ "sounds/SinedPink.aif")

~test.play(args:[buf: b, swap: 0, loop:1])

~test.play(args:[buf: b, swap: 1, loop:1])

Your code looks good enough in this case.
Working mainly with quadraphonic configuration, I manage by assigning buses to global variables, thus it is easy to redirect them (but it is client-side).
See also this thread Is it possible for Out.ar to output to non-contiguous outputs

1 Like