The MultiStage Envelope creates a control signal that changes over time in both deterministic and non-deterministic ways. It is a control-signal generator that generates a signal that changes over time by successively interpolating from one stage to the next, where each stage consists of a time and level pair.
It enables the randomization or adjustment of time, level, and curve shape within deterministic ranges. When the final stage is reached, it is possible to loop back to a specific segment.
MultiStage Envelope Properties
Below table describes about the MultiStage Envelope audio object properties and functionality.

| Properties | Description |
| No. of Steps |
Enter the number of stages or steps (nSteps). Multistage Envelope supports up to a maximum of 16 stages and looping back to any stage based on the configuration is allowed. So, the envelope generation can be continued in loop between stages. Time and level of each step is controlled by a fade parameter enabling the randomness and adjustments.
|
| Display Name | Display name of the MultiStage Envelope audio object in signal flow design. It can be changed based on the intended usage of the object. |
Below are the control input params:
- Reset
- Loop
- Shape
- Shape_Random
- Fader
- Fader_Random
First 6 of the Tuning params mentioned below are same as the control input params above. So, these 6 params can be controlled externally as well as internally.

Mode
There are no mode available for MultiStage Envelope audio object.
Additional Parameters
There are no additional parameters available for MultiStage Envelope audio object.
Tuning Parameters
The following are the parameters you can tune in GTT.
| Parameter | Data Type | Default Value | Range | Details |
| Reset | UInt | 0 | 0 to 2 |
|
| Loop | UInt | 0 | 0 to nSteps | Loop back to specified segment when last step is completed and continues envelope generation in loop when Loop is not 0. |
| Shape | Float | 0.0 | -1.0 to 1.0 | Specify shape or slope of envelope segments. The shape shall be varied in between the values.
|
| Shape_Random | Float | 0.0 | 0.0 to 1.0 | For a new random value to be created on start of each new segment, the value is added to SHAPE, and result is limited to [-1:1]. Full scale generated shape value will then be in the range [SHAPE_RND to SHAPE_RANDOM] |
| Fader | Float | 0.0 | 0.0 to 1.0 | Specify fade to linearly vary between levels/times. Pair of values of level and time is configured for each step. For each next level/time, the value is varied linearly between the pairs with FADER and FADER_RANDOM to get the target level/time. |
| Fader_Random | Float | 0.0 | 0.0 to 1.0 | For a new random value to be created on start of each new segment, the value is added to FADER and result is limited to [0:1]. Full scale generated fader value will then be in the range[-FADER_RANDOM to SHAPE_RANDOM] |
| OutScalFac | Float | 1.0 | -32767.0 to 32767.0 | Scale the envelope output level. This parameter is used to scale the envelope output range. By default, the env output range will be between 0.0 to 1.0. So, this param value is used to scale that value to a bigger range specified in the next column. |
| LevelMinValue | Float | 0.0 | -32767.0 to 32767.0 | Used to set lower value of envelope output range. By default, the env output range is between 0.0 to 1.0. The output envelope is scaled in range LevelMinValue and LevelMaxValue. |
| LevelMaxValue | Float | 1.0 | -32767.0 to 32767.0 | Used to set highest value of envelope output range. By default, the env output range will be between 0.0 to 1.0. The output envelope is scaled in range LevelMinValue and LevelMaxValue. |
| TimeA1 | Float | 100.0 ms | 1.0 to 10000.0 ms | First time value from the time pair of Step 1. The time duration to reach next step from Step1 is varied between TimeA1 and TimeB1. |
| TimeB1 | Float | 100.0 ms | 1.0 to 10000.0 ms | Second time value from the time pair of Step 1. The time duration to reach next step from Step1 is varied between TimeA1 and TimeB1. |
| LevelA1 | Float | 0.0 | 0.0 to 1.0 | First level value from the level pair of Step1. The source level of Step1 is varied between LevelA1 and LevelB1. |
| LevelB1 | Float | 0.0 | 0.0 to 1.0 | Second level value from the level pair of Step1. The source level of Step1 is varied between LevelA1 and LevelB1. |
| Shape1 | Float | 0.0 | -1.0 to 1.0 | This value determines the shape of the envelope from step1 to the next step. This value can be overridden by the 3rd tuning param, i.e. Shape which overwrites the shape of all steps. |
| TimeAN | Float | 100.0 ms | 1.0 to 10000.0 ms | First time value from the time pair of Step N. The time duration to reach next step from Step N is varied between TimeAN and TimeBN. |
| TimeBN | Float | 100.0 ms | 1.0 to 10000.0 ms | Second time value from the time pair of Step N. The time duration to reach next step from Step N is varied between TimeAN and TimeBN. |
| LevelAN | Float |
0.0 if N is odd 1.0 if N is even |
0.0 to 1.0 | First level value from the level pair of Step N. The source level of Step N is varied between LevelAN and LevelBN. |
| LevelBN | Float |
0.0 if N is odd 1.0 if N is even |
0.0 to 1.0 | Second level value from the level pair of Step N. The source level of Step N is varied between LevelAN and LevelBN. |
| ShapeN | Float | 0.0 | -1.0 to 1.0 |
Specify shape of the envelope between Step N and the next Step. This value can be overridden by the 3rd Tuning param, i.e. Shape, which is common for all the steps. |
State Parameters
| Parameter | Data Type | Default Value | Range | Notes |
| Envelope | Float | 0.0 | -32767.0 to 32767.0 | To stream the control output. This parameter is streamable. |
Control Parameters
The following are the control input parameters in GTT, there are 6 control inputs.
| Parameter | Description | Range |
| RESET |
RESET = 1: Reset the envelope generation from initial stage. RESET = 2: Deactivate envelope generation. Outputs last stage level value. RESET = 0: Do nothing |
0 or 2 |
| LOOP | Loop back to specified segment when last step is completed and continues envelope generation in loop. | 0 to nSteps |
| SHAPE | Specify shape or slope of envelope segments. The shape shall be varied in between the values.
|
-1.0 to 1.0 |
| SHAPE_RND |
For a new random value to be created on start of each new segment, the value is added to SHAPE and result limited to [-1:1] Full scale generated random value is in the range -SHAPE_RND…SHAPE_RND, |
0.0 to 1.0 |
| FADER | Specify fade to linearly vary between levels/times. Pair of values of level and time is configured for each step. For each next level/time, the value is varied linearly between the pairs with FADER and FADER_RND to get the target level/time. | 0.0 to 1.0 |
| FADER_RND | For a new random value to be created on start of each new segment. the value is added to FADER and result limited to [0:1] Full scale generated random value is in the range 0…FADER_RND, | 0.0 to 1.0 |
Illustration
The below diagram shows four 8-stage envelopes obtained from different settings of Time, Level and Shape. Each color-coding describes envelopes obtained from different runs of the algorithm.

For Example, settings of orange color envelope are show below.
- nSteps = 8
- So, Time and Level pairs will be: TimeA1,TimeB1,LevelA1,LevelB1,…,TimeA8,TimeB8,LevelA8,LevelB8
- TimeA1=30ms, TimeB1=30ms
- TimeA2=20ms, TimeB2=100ms
- Fader=1.0
- Fader_Random=0.0
- LevelA1=0.8, LevelB1=0.8
- LevelA2=0.1, LevelB2=0.03
To scale envelope output tuning parameter “LevelMinValue” and “LevelMaxValue” are used. There is no restriction added for “LevelMinValue” to be lower than “LevelMaxValue” in Tuning. It is required to set “LevelMinValue” to be smaller than “LevelMaxValue”. User can choose the values as per requirement of envelope output scaling.
Linear regrssion is used to scale the envelope output. Below is formula used for scaling the output.
outValue = LevelMinValue + (LevelMaxValue – LevelMinValue)*stepLevelValue
if want to scale level value from 0 to 1 to -128 to 128 LevelMinValue and LevelMaxValue value used should be
LevelMinValue = -128
LevelMaxValue = 128
Native Panel
MultiStage Envelope audio object does not support native panel.