Class/Object

de.sciss.synth.ugen

EnvGen

Related Docs: object EnvGen | package ugen

Permalink

final case class EnvGen(rate: Rate, envelope: GE, gate: GE = 1, levelScale: GE = 1.0f, levelBias: GE = 0.0f, timeScale: GE = 1.0f, doneAction: GE = doNothing) extends SingleOut with HasSideEffect with HasDoneFlag with Product with Serializable

An envelope generator UGen. It uses a break point description in its envelope input, typically coming from an Env object. The envelope may be re-triggered using the gate input. Upon start and upon re-triggering, the envelope , levelScale , levelBias and timeScale parameters are polled and remain constant for the duration of the envelope.

To construct a manual envelope without the use of the Env class, the format should be as follows:

val env = Seq[GE](startLevel, numSegments, releaseNode, loopNode,
targetLevel1, duration1, curveType1, curvature1,
targetLevel2, duration2, curveType2, curvature2,
...)

Where the curve-type is one of Curve.step.id , Curve.lin.id , Curve.exp.id , etc. The curvature values are only relevant for the parametric curve type. The releaseNode and loopNode parameters are segment indices or the special value -99 indicating that there are no release or loop segments.

Note: The actual minimum duration of a segment is not zero, but one sample step for audio rate and one block for control rate. This may result in asynchronicity when in two envelopes of different number of levels, the envelope times add up to the same total duration. Similarly, when modulating times, the new time is only updated at the end of the current segment; this may lead to asynchronicity of two envelopes with modulated times.

envelope

the description of the envelope break-points. Typically you pass an instance of Env which will then automatically expand to the correct format.

gate

triggers the envelope and holds it open while greater than zero. If the envelope is of fixed duration (e.g. Env.linen , Env.perc ), the gate argument is used as a simple trigger. If it contains a sustained segment (e.g. Env.adsr , Env.asr ), the envelope is held open until the gate becomes 0, at which point is released. If gate is less than zero, a release is enforced with duration -1.0 - gate .

levelScale

amplitude factor with which the nominal envelope is multiplied.

levelBias

amplitude offset which is added to the nominal envelope.

timeScale

time scale factor with which the envelope segment durations are multiplied.

doneAction

action to be performed when the envelope reaches its end point.

See also

Decay

Linen

XLine

Line

IEnvGen

Env

Linear Supertypes
Serializable, Serializable, HasDoneFlag, HasSideEffect, SingleOut, SomeOut, GE.Lazy, GE, UGenSource[UGenInLike], Expander[UGenInLike], Lazy, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EnvGen
  2. Serializable
  3. Serializable
  4. HasDoneFlag
  5. HasSideEffect
  6. SingleOut
  7. SomeOut
  8. Lazy
  9. GE
  10. UGenSource
  11. Expander
  12. Lazy
  13. Product
  14. Equals
  15. AnyRef
  16. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new EnvGen(rate: Rate, envelope: GE, gate: GE = 1, levelScale: GE = 1.0f, levelBias: GE = 0.0f, timeScale: GE = 1.0f, doneAction: GE = doNothing)

    Permalink

    envelope

    the description of the envelope break-points. Typically you pass an instance of Env which will then automatically expand to the correct format.

    gate

    triggers the envelope and holds it open while greater than zero. If the envelope is of fixed duration (e.g. Env.linen , Env.perc ), the gate argument is used as a simple trigger. If it contains a sustained segment (e.g. Env.adsr , Env.asr ), the envelope is held open until the gate becomes 0, at which point is released. If gate is less than zero, a release is enforced with duration -1.0 - gate .

    levelScale

    amplitude factor with which the nominal envelope is multiplied.

    levelBias

    amplitude offset which is added to the nominal envelope.

    timeScale

    time scale factor with which the envelope segment durations are multiplied.

    doneAction

    action to be performed when the envelope reaches its end point.

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. val doneAction: GE

    Permalink

    action to be performed when the envelope reaches its end point.

  7. val envelope: GE

    Permalink

    the description of the envelope break-points.

    the description of the envelope break-points. Typically you pass an instance of Env which will then automatically expand to the correct format.

  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. val gate: GE

    Permalink

    triggers the envelope and holds it open while greater than zero.

    triggers the envelope and holds it open while greater than zero. If the envelope is of fixed duration (e.g. Env.linen , Env.perc ), the gate argument is used as a simple trigger. If it contains a sustained segment (e.g. Env.adsr , Env.asr ), the envelope is held open until the gate becomes 0, at which point is released. If gate is less than zero, a release is enforced with duration -1.0 - gate .

  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  13. val levelBias: GE

    Permalink

    amplitude offset which is added to the nominal envelope.

  14. val levelScale: GE

    Permalink

    amplitude factor with which the nominal envelope is multiplied.

  15. def makeUGens: UGenInLike

    Permalink

    Abstract method which must be implemented by creating the actual UGens during expansion.

    Abstract method which must be implemented by creating the actual UGens during expansion. This method is at most called once during graph expansion

    returns

    the expanded object (depending on the type parameter U)

    Attributes
    protected
    Definition Classes
    EnvGenExpander
  16. final def name: String

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

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

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

    Permalink
    Definition Classes
    AnyRef
  20. val rate: Rate

    Permalink
    Definition Classes
    EnvGenGE
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  22. val timeScale: GE

    Permalink

    time scale factor with which the envelope segment durations are multiplied.

  23. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from HasDoneFlag

Inherited from HasSideEffect

Inherited from SingleOut

Inherited from SomeOut

Inherited from GE.Lazy

Inherited from GE

Inherited from UGenSource[UGenInLike]

Inherited from Expander[UGenInLike]

Inherited from Lazy

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped