Table of Contents

Working with Envelopes

Envelopes are used to control property values with a predefined shape. An envelope has an ADSR shape:

Interface Element

Description

Attack Time

Defines the time taken for initial run-up of level from nil to peak, beginning when the key is first pressed.

Default value: 0.2
Range: 0 to 10000
Units: s

Attack Curve

Adjusts the Attack Curve from its linear default slope (50%) to either:

  • an exponential-style envelope (0%) where the rate of change starts slow and then increases
  • a logarithmic envelope (100%) where the rate of change starts fast, then decreases

Default value: 50
Range: 0 to 100
Units: %

Decay Time

Defines the time taken for the subsequent run down from the attack level to the designated sustain level.

Default value: 0.2
Range: 0 to 10000
Units: s

Sustain Level

Defines the level during the main sequence of the sound’s duration, until the key is released.

Default value: 100
Range: 0 to 100
Units: %

Release Time

Defines the time taken for the level to decay from the sustain level to zero after the key is released.

Default value: 0.5
Range: 0 to 10000
Units: s

Scope

Define how envelope instances are created:

  • Voice: An envelope instance is created for every sound/object playback.
  • Note/Event: An envelope instance is created for every playing instance, or note when used in MIDI context.

Default value: Note or Event

Trigger On

The Actions/MIDI Events that may Trigger the envelope (i.e. enter the attack phase):

  • Play: Either a Play Action or a MIDI note Event
  • Note-Off: Only a MIDI Note-Off Event

Default value: Play

Auto Release

Determines if the envelope requires an Action/MIDI Event to exit the sustain phase and enter the release phase. If set, the envelope exits the sustain phase after Sustain Time. If not set, the envelope exits the sustain phase following a certain condition:

The envelope may be released by the game via a Release Envelope Event.

An envelope may also enter the release phase via a MIDI Note-Off Event, provided the envelope was triggered by a MIDI Note-On Event.

Default value: false

Maximum Sustain Time

Defines the time which the envelope will remain in the sustain phase before entering the release phase. This value is valid only if Auto Release is set.

Default value: 0
Range: 0 to 10000
Units: s

Stop playback after release

If set, the playback of the associated sound is terminated once the release phase is complete.

Default value: true

Envelopes can either be used in the context of MIDI or in the context of a normal playback.

When used in the context of MIDI, the envelope is configured for a sound to be played either on note-on or note-off. In the case of a sound to be played on note-on:

  • The envelope is configured to trigger on note-on (Trigger On parameter).

  • The envelope sustains until the first occurrence of:

    • reception of a Release Envelope Event,

    • reception of a MIDI note-off Event,

    • max duration of sustain phase (Auto Release is set).

In the case of a sound to be played on note-off:

  • The envelope is configured to trigger on note-off (Trigger On parameter).

  • The envelope sustains until the first occurrence of:

    • reception of a Release Envelope Event,

    • max duration of sustain phase (Auto Release is set).

When used in the general context of a play sound:

  • The envelope is configured to trigger on a Play Action (Trigger On parameter).

  • The envelope sustains until the first occurrence of:

    • reception of a Release Envelope Event,

    • max duration of sustain phase (Auto Release is set).

[Caution] Caution

LFO and Envelope modulators' processing time depends on their RTPC usage. For most properties, a modulator is evaluated once per audio control frame. However, for the property Voice Volume, these modulators are evaluated at every audio sample frame. Use them selectively because they can consume a significant amount of a platform's memory and CPU.

[Note] Note

The RTPC cursors for LFO and Envelope modulators do not tell you their specific values at any point in time since they are determined by the modulator's internal properties.