SuperCollider CLASSES


Azimuth panner


Multichannel equal power panner.

Class Methods

*ar (numChans, in, pos: 0, level: 1, width: 2, orientation: 0.5)

*kr (numChans, in, pos: 0, level: 1, width: 2, orientation: 0.5)



Number of output channels.


The input signal.


pan position. Channels are evenly spaced over a cyclic period of 2.0 in pos with 0.0 equal to channel zero and 2.0/numChans equal to channel 1, 4.0/numChans equal to channel 2, etc.

Thus all channels will be cyclically panned through if a sawtooth wave from -1 to +1 is used to modulate the pos.


A control rate level input.


The width of the panning envelope. Nominally this is 2.0 which pans between pairs of adjacent speakers. Width values greater than two will spread the pan over greater numbers of speakers. Width values less than one will leave silent gaps between speakers.


Should be zero if the front is a vertex of the polygon. The first speaker will be directly in front. Should be 0.5 if the front bisects a side of the polygon. Then the first speaker will be the one left of center.

Inherited class methods

Instance Methods

Inherited instance methods


// five channel circular panning
        5,                 // numChans,     // in, 8, 'exponential')), // pos
        0.5,            // level
        3            // width

Comparison to Pan2

Despite a certain similarity, Pan2 and PanAz with 2 channels behave differently.

// one full cycle for PanAz: from 0 to 1
{,,, 1, 0.1)) }.plot(0.1)
// one full cycle for Pan2: from -1 to 1 and back to -1
{,[-1, 1, -1], [0.05, 0.05]))) }.plot(0.1)

// in other words, while Pan2 makes one full transition
{,, 1, 0.1)) }.plot(0.1)
// we need only a half one in PanAz:
{,,, 1/2, 0.1)) }.plot(0.1)