2 summary:: envelope specification
3 related:: Classes/IEnvGen, Classes/Env
4 categories:: Control, Envelopes
7 An InterplEnv is a specification for a segmented envelope. InterplEnvs can be used both server-side, by an link::Classes/IEnvGen:: within a SynthDef, and clientside, with methods such as at. An InterplEnv can have any number of segments. An InterplEnv can have several shapes for its segments.
9 note::InterplEnv is now replaced by Env, and will be removed in the future. Env supports all functionality of InterplEnv::
11 subsection::Differences between InterplEnv and Env
12 InterplEnvs do not have release or loop nodes. They are of a fixed duration. Mostly, it is meant to be used with IEnvGen, where 'times' are actually an strong::index into the envelope:: shape.
19 Create a new envelope specification.
22 an array of levels. The first level is the initial value of the envelope.
25 an array of durations of segments in seconds. There should be one fewer duration than there are levels.
28 a link::Classes/Symbol::, link::Classes/Float::, or an link::Classes/Array:: of those. Determines the shape of the envelope segments.
30 The possible values are:
32 ## code::\step:: || || flat segments
33 ## code::\linear:: || code::\lin:: || linear segments, the default
34 ## code::\exponential:: || code::\exp:: || natural exponential growth and decay. In this case, the levels must all be nonzero and the have the same sign.
35 ## code::\sine:: || code::\sin:: || sinusoidal S shaped segments.
36 ## code::\welch:: || code::\wel:: || sinusoidal segments shaped like the sides of a Welch window.
37 ## code::\squared:: || code::\sqr:: || squared segment
38 ## code::\cubed:: || code::\cub:: || cubed segment
39 ## a link::Classes/Float:: || || a curvature value for all segments. 0 means linear, positive and negative numbers curve the segment up and down.
40 ## an link::Classes/Array:: of symbols or floats || || curvature values for each segment.
44 used to offset an envelope into negative starttimes.
46 copymethod:: Env *newClear
53 Plot this envelope's shape in a window.
59 The window bounds (a link::Classes/Rect::).
68 Converts the InterplEnv to an Array in a specially ordered format. This allows for InterplEnv parameters to be settable arguments in a link::Classes/SynthDef::.
70 subsection::Client-side Access and Stream Support
73 Returns the value of the InterplEnv at time.
75 InterplEnv([0, 1, 0.707], [0.2, 1.3], [\lin, \sin]).at(0.5);