de.sciss.synth.ugen

PanAz

final case class PanAz(rate: Rate, numChannels: Int, in: GE, pos: GE = synth.this.GE.const(0.0), level: GE = synth.this.GE.const(1.0), width: GE = synth.this.GE.const(2.0), orient: GE = synth.this.GE.const(0.0)) extends MultiOut with Product with Serializable

An azimuth-based panorama UGen. It uses vector-based-amplitude panning where the arbitrary number of speakers is supposed to be distributed in a circle with even spacing between them. It uses an equal-power-curve to transition between adjectant speakers. Note the different default value for the orient argument!

Use case: To spread an multi-channel input signal across an output bus with a different number of channels, such that the first input channel is played on the first output channel (no spread to adjectant channels) and the last input channel is played to the last output channel (no spread to adjectant channels), you would create a dedicated PanAz per input channel where the pan position is inChanIdx * 2f / (inChannels - 1) * (outChannels - 1) / outChannels.

numChannels

the number of output channels

in

the input signal

pos

the pan position. Channels are evenly spaced over a cyclic period of 2.0. the output channel position is pos / 2 * numChannels + orient. Thus, assuming an orient of 0.0, and numChannels being for example 3, a pos of 0*2.0/3 == 0.0 corresponds to the first output channel, a pos of 1*2.0/3 corresponds to the second output channel, a pos of 2*2.0/3=4.0/3 corresponds to the third and last output channel, and a pos of 3*2.0/3=2.0 completes the circle and wraps again to the first channel. Using a bipolar pan position, such as a sawtooth that ranges from -1 to +1, all channels will be cyclically panned through.

level

a control rate level input (linear multiplier).

width

the width of the panning envelope. The default of 2.0 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.

orient

the offset in the output channels regarding a pan position of zero. Note that ScalaCollider uses a default of zero which means that a pan pos of zero outputs the signal exactly on the first output channel. This is different in sclang where the default is 0.5 which means that a pan position of zero will output the signal inbetween the first and second speaker. Accordingly, an orient of 1.0 would result in a channel offset of one, where a pan position of zero would output the signal exactly on the second output channel, and so forth.

Linear Supertypes
MultiOut, SomeOut, GE.Lazy, GE, UGenSource[UGenInLike], Product, Equals, Expander[UGenInLike], Lazy, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. PanAz
  2. MultiOut
  3. SomeOut
  4. Lazy
  5. GE
  6. UGenSource
  7. Product
  8. Equals
  9. Expander
  10. Lazy
  11. Serializable
  12. Serializable
  13. AnyRef
  14. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PanAz(rate: Rate, numChannels: Int, in: GE, pos: GE = synth.this.GE.const(0.0), level: GE = synth.this.GE.const(1.0), width: GE = synth.this.GE.const(2.0), orient: GE = synth.this.GE.const(0.0))

    numChannels

    the number of output channels

    in

    the input signal

    pos

    the pan position. Channels are evenly spaced over a cyclic period of 2.0. the output channel position is pos / 2 * numChannels + orient. Thus, assuming an orient of 0.0, and numChannels being for example 3, a pos of 0*2.0/3 == 0.0 corresponds to the first output channel, a pos of 1*2.0/3 corresponds to the second output channel, a pos of 2*2.0/3=4.0/3 corresponds to the third and last output channel, and a pos of 3*2.0/3=2.0 completes the circle and wraps again to the first channel. Using a bipolar pan position, such as a sawtooth that ranges from -1 to +1, all channels will be cyclically panned through.

    level

    a control rate level input (linear multiplier).

    width

    the width of the panning envelope. The default of 2.0 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.

    orient

    the offset in the output channels regarding a pan position of zero. Note that ScalaCollider uses a default of zero which means that a pan pos of zero outputs the signal exactly on the first output channel. This is different in sclang where the default is 0.5 which means that a pan position of zero will output the signal inbetween the first and second speaker. Accordingly, an orient of 1.0 would result in a channel offset of one, where a pan position of zero would output the signal exactly on the second output channel, and so forth.

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  10. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  11. val in: GE

    the input signal

  12. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  13. val level: GE

    a control rate level input (linear multiplier).

  14. def makeUGen(_args: IndexedSeq[UGenIn]): UGenInLike

    Attributes
    protected
    Definition Classes
    PanAz → UGenSource
  15. def makeUGens: UGenInLike

    Attributes
    protected
    Definition Classes
    PanAz → Expander
  16. final def name: String

    Definition Classes
    UGenSource
  17. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  20. val numChannels: Int

    the number of output channels

  21. val orient: GE

    the offset in the output channels regarding a pan position of zero.

    the offset in the output channels regarding a pan position of zero. Note that ScalaCollider uses a default of zero which means that a pan pos of zero outputs the signal exactly on the first output channel. This is different in sclang where the default is 0.5 which means that a pan position of zero will output the signal inbetween the first and second speaker. Accordingly, an orient of 1.0 would result in a channel offset of one, where a pan position of zero would output the signal exactly on the second output channel, and so forth.

  22. val pos: GE

    the pan position.

    the pan position. Channels are evenly spaced over a cyclic period of 2.0. the output channel position is pos / 2 * numChannels + orient. Thus, assuming an orient of 0.0, and numChannels being for example 3, a pos of 0*2.0/3 == 0.0 corresponds to the first output channel, a pos of 1*2.0/3 corresponds to the second output channel, a pos of 2*2.0/3=4.0/3 corresponds to the third and last output channel, and a pos of 3*2.0/3=2.0 completes the circle and wraps again to the first channel. Using a bipolar pan position, such as a sawtooth that ranges from -1 to +1, all channels will be cyclically panned through.

  23. val rate: Rate

    Definition Classes
    PanAz → GE
  24. final def rewrap(args: IndexedSeq[UGenInLike], exp: Int): UGenInLike

    Attributes
    protected
    Definition Classes
    SomeOut → UGenSource
  25. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  26. final def unwrap(args: IndexedSeq[UGenInLike]): UGenInLike

    Attributes
    protected
    Definition Classes
    UGenSource
  27. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  28. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  29. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  30. val width: GE

    the width of the panning envelope.

    the width of the panning envelope. The default of 2.0 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.

Inherited from MultiOut

Inherited from SomeOut

Inherited from GE.Lazy

Inherited from GE

Inherited from UGenSource[UGenInLike]

Inherited from Product

Inherited from Equals

Inherited from Expander[UGenInLike]

Inherited from Lazy

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped