SuperCollider CLASSES (extension)

BFEncodeSter
ExtensionExtension

Ambisonic B format encoder for stereo signals
 

Description

NOTE: Output channels are in order W,X,Y,Z.

WARNING: Because of the way the W component is scaled, it is recommended that you only decode with BFDecode1 and it's methods.

Class Methods

*ar (l, r, azimuth: 0, width: 1.5707963267949, elevation: 0, rho: 1, gain: 1, wComp: 0)

Arguments:

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.

Inherited class methods

Instance Methods

-checkInputs

-init ( ... theInputs)

Inherited instance methods

Examples

s.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))
    }).add;

s.sendMsg(\s_new, \testster, a=s.nextNodeID, 0, 1);
s.sendMsg(\n_free, a);