Forgot a help fix: Drag a dock's title bar, not divider, to reposition
[supercollider.git] / HelpSource / Classes / InterplEnv.schelp
blobdce364c1c29e6856e3958e7289f45c460dab8b76
1 class:: InterplEnv
2 summary:: envelope specification
3 related:: Classes/IEnvGen, Classes/Env
4 categories:: Control, Envelopes
6 description::
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.
14 ClassMethods::
16 private::initClass
18 method::new
19 Create a new envelope specification.
21 argument::levels
22 an array of levels. The first level is the initial value of the envelope.
24 argument::times
25 an array of durations of segments in seconds. There should be one fewer duration than there are levels.
27 argument::curve
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:
31 table::
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.
43 argument::offset
44 used to offset an envelope into negative starttimes.
46 copymethod:: Env *newClear
48 InstanceMethods::
50 private::prAsArray
52 method::plot
53 Plot this envelope's shape in a window.
55 argument::size
56 The size of the plot.
58 argument::bounds
59 The window bounds (a link::Classes/Rect::).
61 argument::minval
63 argument::maxval
65 argument::parent
67 method::asArray
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
72 method::at
73 Returns the value of the InterplEnv at time.
74 code::
75 InterplEnv([0, 1, 0.707], [0.2, 1.3], [\lin, \sin]).at(0.5);