linux: shared memory interface - link with librt
[supercollider.git] / HelpSource / Classes / InterplEnv.schelp
blobab36199f1c3c521c484192a5268f7c4e8e69d321
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 subsection::Differences between InterplEnv and Env
10 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.
12 ClassMethods::
14 private::initClass
16 method::new
17 Create a new envelope specification.
19 argument::levels
20 an array of levels. The first level is the initial value of the envelope.
22 argument::times
23 an array of durations of segments in seconds. There should be one fewer duration than there are levels.
25 argument::curve
26 a link::Classes/Symbol::, link::Classes/Float::, or an link::Classes/Array:: of those. Determines the shape of the envelope segments.
28 The possible values are:
29 table::
30 ## code::\step:: || || flat segments
31 ## code::\linear:: || code::\lin:: || linear segments, the default
32 ## code::\exponential:: || code::\exp:: || natural exponential growth and decay. In this case, the levels must all be nonzero and the have the same sign.
33 ## code::\sine:: || code::\sin:: || sinusoidal S shaped segments.
34 ## code::\welch:: || code::\wel:: || sinusoidal segments shaped like the sides of a Welch window.
35 ## code::\squared::  || code::\sqr:: || squared segment
36 ## code::\cubed:: || code::\cub:: || cubed segment
37 ## a link::Classes/Float:: || || a curvature value for all segments. 0 means linear, positive and negative numbers curve the segment up and down.
38 ## an link::Classes/Array:: of symbols or floats || || curvature values for each segment.
41 argument::offset
42 used to offset an envelope into negative starttimes.
44 copymethod:: Env *newClear
46 InstanceMethods::
48 private::prAsArray
50 method::plot
51 Plot this envelope's shape in a window.
53 argument::size
54 The size of the plot.
56 method::asArray
57 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::.
59 subsection::Client-side Access and Stream Support
61 method::at
62 Returns the value of the InterplEnv at time.
63 code::
64 InterplEnv([0, 1, 0.707], [0.2, 1.3], [\lin, \sin]).at(0.5);