panning

class Balance2(*, calculation_rate: CalculationRate | SupportsInt | str | None, left: SupportsFloat | UGenScalar, right: SupportsFloat | UGenScalar, position: SupportsFloat | UGenScalar = 0.0, level: SupportsFloat | UGenScalar = 1.0, **kwargs)

Bases: UGen

A stereo signal balancer.

>>> left = supriya.ugens.WhiteNoise.ar()
>>> right = supriya.ugens.SinOsc.ar()
>>> balance_2 = supriya.ugens.Balance2.ar(
...     left=left,
...     level=1,
...     position=0,
...     right=right,
... )
>>> balance_2
<Balance2.ar()>
classmethod ar(*, left: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], right: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
classmethod kr(*, left: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], right: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
property left : UGenScalar
property level : UGenScalar
property position : UGenScalar
property right : UGenScalar
class BiPanB2(*, calculation_rate: CalculationRate | SupportsInt | str | None, in_a: SupportsFloat | UGenScalar, in_b: SupportsFloat | UGenScalar, azimuth: SupportsFloat | UGenScalar, gain: SupportsFloat | UGenScalar = 1.0, **kwargs)

Bases: UGen

A 2D ambisonic b-format panner.

>>> in_a = supriya.ugens.SinOsc.ar()
>>> in_b = supriya.ugens.WhiteNoise.ar()
>>> bi_pan_b_2 = supriya.ugens.BiPanB2.ar(
...     azimuth=-0.5,
...     gain=1,
...     in_a=in_a,
...     in_b=in_b,
... )
>>> bi_pan_b_2
<BiPanB2.ar()>
>>> w, x, y = bi_pan_b_2
classmethod ar(*, in_a: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], in_b: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
classmethod kr(*, in_a: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], in_b: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
property azimuth : UGenScalar
property gain : UGenScalar
property in_a : UGenScalar
property in_b : UGenScalar
class DecodeB2(*, calculation_rate: CalculationRate | SupportsInt | str | None, channel_count: int = 4, w: SupportsFloat | UGenScalar, x: SupportsFloat | UGenScalar, y: SupportsFloat | UGenScalar, orientation: SupportsFloat | UGenScalar = 0.5, **kwargs)

Bases: UGen

A 2D Ambisonic B-format decoder.

>>> source = supriya.ugens.PinkNoise.ar()
>>> w, x, y = supriya.ugens.PanB2.ar(
...     source=source,
...     azimuth=supriya.ugens.SinOsc.kr(),
... )
>>> decode_b_2 = supriya.ugens.DecodeB2.ar(
...     channel_count=4,
...     orientation=0.5,
...     w=w,
...     x=x,
...     y=y,
... )
>>> decode_b_2
<DecodeB2.ar()>
classmethod ar(*, w: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], x: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], y: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], orientation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.5, channel_count: int = 4) UGenOperable
classmethod kr(*, w: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], x: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], y: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], orientation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.5, channel_count: int = 4) UGenOperable
property orientation : UGenScalar
property w : UGenScalar
property x : UGenScalar
property y : UGenScalar
class Pan2(*, calculation_rate: CalculationRate | SupportsInt | str | None, source: SupportsFloat | UGenScalar, position: SupportsFloat | UGenScalar = 0.0, level: SupportsFloat | UGenScalar = 1.0, **kwargs)

Bases: UGen

A two channel equal power panner.

>>> source = supriya.ugens.WhiteNoise.ar()
>>> pan_2 = supriya.ugens.Pan2.ar(
...     source=source,
... )
>>> pan_2
<Pan2.ar()>
classmethod ar(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
classmethod kr(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1.0) UGenOperable
property level : UGenScalar
property position : UGenScalar
property source : UGenScalar
class Pan4(*, calculation_rate: CalculationRate | SupportsInt | str | None, source: SupportsFloat | UGenScalar, x_position: SupportsFloat | UGenScalar = 0, y_position: SupportsFloat | UGenScalar = 0, gain: SupportsFloat | UGenScalar = 1, **kwargs)

Bases: UGen

A four-channel equal-power panner.

>>> source = supriya.ugens.In.ar(bus=0)
>>> pan_4 = supriya.ugens.Pan4.ar(
...     gain=1,
...     source=source,
...     x_position=0,
...     y_position=0,
... )
>>> pan_4
<Pan4.ar()>
classmethod ar(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], x_position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, y_position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
classmethod kr(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], x_position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, y_position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
property gain : UGenScalar
property source : UGenScalar
property x_position : UGenScalar
property y_position : UGenScalar
class PanAz(*, calculation_rate: CalculationRate | SupportsInt | str | None, channel_count: int = 1, source: SupportsFloat | UGenScalar, position: SupportsFloat | UGenScalar = 0, amplitude: SupportsFloat | UGenScalar = 1, width: SupportsFloat | UGenScalar = 2, orientation: SupportsFloat | UGenScalar = 0.5, **kwargs)

Bases: UGen

A multi-channel equal-power panner.

>>> source = supriya.ugens.In.ar(bus=0)
>>> pan_az = supriya.ugens.PanAz.ar(
...     channel_count=8,
...     amplitude=1,
...     orientation=0.5,
...     position=0,
...     source=source,
...     width=2,
... )
>>> pan_az
<PanAz.ar()>
classmethod ar(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, amplitude: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1, width: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 2, orientation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.5, channel_count: int = 1) UGenOperable
classmethod kr(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, amplitude: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1, width: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 2, orientation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0.5, channel_count: int = 1) UGenOperable
property amplitude : UGenScalar
property orientation : UGenScalar
property position : UGenScalar
property source : UGenScalar
property width : UGenScalar
class PanB(*, calculation_rate: CalculationRate | SupportsInt | str | None, source: SupportsFloat | UGenScalar, azimuth: SupportsFloat | UGenScalar = 0, elevation: SupportsFloat | UGenScalar = 0, gain: SupportsFloat | UGenScalar = 1, **kwargs)

Bases: UGen

A 3D ambisonic b-format panner.

>>> source = supriya.ugens.In.ar(bus=0)
>>> pan_b = supriya.ugens.PanB.ar(
...     azimuth=0,
...     elevation=0,
...     gain=1,
...     source=source,
... )
>>> pan_b
<PanB.ar()>
classmethod ar(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, elevation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
classmethod kr(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, elevation: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
property azimuth : UGenScalar
property elevation : UGenScalar
property gain : UGenScalar
property source : UGenScalar
class PanB2(*, calculation_rate: CalculationRate | SupportsInt | str | None, source: SupportsFloat | UGenScalar, azimuth: SupportsFloat | UGenScalar = 0, gain: SupportsFloat | UGenScalar = 1, **kwargs)

Bases: UGen

A 2D ambisonic b-format panner.

>>> source = supriya.ugens.In.ar(bus=0)
>>> pan_b_2 = supriya.ugens.PanB2.ar(
...     azimuth=0,
...     gain=1,
...     source=source,
... )
>>> pan_b_2
<PanB2.ar()>
classmethod ar(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
classmethod kr(*, source: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], azimuth: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, gain: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
property azimuth : UGenScalar
property gain : UGenScalar
property source : UGenScalar
class Rotate2(*, calculation_rate: CalculationRate | SupportsInt | str | None, x: SupportsFloat | UGenScalar, y: SupportsFloat | UGenScalar, position: SupportsFloat | UGenScalar = 0, **kwargs)

Bases: UGen

Equal-power sound-field rotator.

>>> x = supriya.ugens.PinkNoise.ar() * 0.4
>>> y = supriya.ugens.LFTri.ar(frequency=880)
>>> y *= supriya.ugens.LFPulse.kr(frequency=3, width=0.1)
>>> position = supriya.ugens.LFSaw.kr(frequency=0.1)
>>> rotate_2 = supriya.ugens.Rotate2.ar(
...     x=x,
...     y=y,
...     position=position,
... )
>>> rotate_2
<Rotate2.ar()>

Returns an array of the rotator’s left and right outputs.

classmethod ar(*, x: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], y: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0) UGenOperable
classmethod kr(*, x: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], y: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], position: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0) UGenOperable
property position : UGenScalar
property x : UGenScalar
property y : UGenScalar
class Splay

Bases: PseudoUGen

A stereo signal spreader.

>>> source = supriya.ugens.SinOsc.ar(frequency=[333, 444, 555, 666, 777])
>>> splay = supriya.ugens.Splay.ar(source=source)
>>> splay
<UGenVector([<BinaryOpUGen.ar(MULTIPLICATION)[0]>, <BinaryOpUGen.ar(MULTIPLICATION)[0]>])>
>>> print(splay)
synthdef:
    name: ...
    ugens:
    -   SinOsc.ar/0:
            frequency: 333.0
            phase: 0.0
    -   Pan2.ar/0:
            source: SinOsc.ar/0[0]
            position: -1.0
            level: 1.0
    -   SinOsc.ar/1:
            frequency: 444.0
            phase: 0.0
    -   Pan2.ar/1:
            source: SinOsc.ar/1[0]
            position: -0.5
            level: 1.0
    -   SinOsc.ar/2:
            frequency: 555.0
            phase: 0.0
    -   Pan2.ar/2:
            source: SinOsc.ar/2[0]
            position: 0.0
            level: 1.0
    -   SinOsc.ar/3:
            frequency: 666.0
            phase: 0.0
    -   Pan2.ar/3:
            source: SinOsc.ar/3[0]
            position: 0.5
            level: 1.0
    -   Sum4.ar/0:
            input_one: Pan2.ar/0[0]
            input_two: Pan2.ar/1[0]
            input_three: Pan2.ar/2[0]
            input_four: Pan2.ar/3[0]
    -   Sum4.ar/1:
            input_one: Pan2.ar/0[1]
            input_two: Pan2.ar/1[1]
            input_three: Pan2.ar/2[1]
            input_four: Pan2.ar/3[1]
    -   SinOsc.ar/4:
            frequency: 777.0
            phase: 0.0
    -   Pan2.ar/4:
            source: SinOsc.ar/4[0]
            position: 1.0
            level: 1.0
    -   BinaryOpUGen(ADDITION).ar/0:
            left: Sum4.ar/0[0]
            right: Pan2.ar/4[0]
    -   BinaryOpUGen(MULTIPLICATION).ar/0:
            left: BinaryOpUGen(ADDITION).ar/0[0]
            right: 0.4472135954999579
    -   BinaryOpUGen(ADDITION).ar/1:
            left: Sum4.ar/1[0]
            right: Pan2.ar/4[1]
    -   BinaryOpUGen(MULTIPLICATION).ar/1:
            left: BinaryOpUGen(ADDITION).ar/1[0]
            right: 0.4472135954999579
classmethod ar(*, source, center=0, level=1, normalize=True, spread=1)
classmethod kr(*, source, center=0, level=1, normalize=True, spread=1)
class XFade2(*, calculation_rate: CalculationRate | SupportsInt | str | None, in_a: SupportsFloat | UGenScalar, in_b: SupportsFloat | UGenScalar = 0, pan: SupportsFloat | UGenScalar = 0, level: SupportsFloat | UGenScalar = 1, **kwargs)

Bases: UGen

Two channel equal power crossfader.

>>> xfade_3 = supriya.ugens.XFade2.ar(
...     in_a=supriya.ugens.Saw.ar(),
...     in_b=supriya.ugens.SinOsc.ar(),
...     level=1,
...     pan=supriya.ugens.LFTri.kr(frequency=0.1),
... )
>>> xfade_3
<XFade2.ar()[0]>
classmethod ar(*, in_a: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], in_b: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, pan: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
classmethod kr(*, in_a: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]], in_b: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, pan: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 0, level: SupportsFloat | UGenOperable | UGenSerializable | Sequence[SupportsFloat | UGenOperable | UGenSerializable | Sequence[UGenRecursiveInput]] = 1) UGenOperable
property in_a : UGenScalar
property in_b : UGenScalar
property level : UGenScalar
property pan : UGenScalar