BFEncodeSter Ambisonic B format encoder for stereo signals
BFEncodeSter.ar(l, r, azimuth, width elevation, rho, gain, wComp)
l - left side of the input signal
r - right side of the input signal
azimuth - in radians, -pi to pi
width - in radians, width of stereo image
elevation - in radians, -0.5pi to +0.5pi
rho - the speaker radius (1 places shound at the radius, <1 within the radius, >1 is outside the radius)
beyond the radius, a distance scaling is applied (no filtering is done).
gain - a control rate level input.
wComp - chooses how the W channels is scaled. If 0, a scaler of 0.707 is used. If 1, W is varied according to the scaling of the X, Y and Z channels. 1 is the default.
Output channels are in order W,X,Y,Z.
Because of the way the W component is scaled, it is recommended that you only decode with BFDecode1 and it's methods.
s=Server.internal.boot;
s.scope;
// You'll only hear the first two channels on a stereo setup.
SynthDef(\testster, {
var w, x, y, z;
#w, x, y, z = BFEncodeSter.ar(
PinkNoise.ar(Decay.ar(Impulse.ar(2, 0, 0.25))),
SinOsc.ar(440, 0, Decay.ar(Impulse.ar(2, 0.5, 0.25))),
MouseY.kr(0, pi), // center position of image
MouseX.kr(0, pi) // width
);
Out.ar(0, B2Ster.ar(w, x, y))
}).load(s);
s.sendMsg(\s_new, \testster, a=s.nextNodeID, 0, 1);
s.sendMsg(\n_free, a);