Envelope Controller
Description
A break-point envelope controller.
(make-controller 'envelope ... )
Lisp Syntax and Default Values
An 'envelope controller can be created using the following Lisp syntax:
(make-controller 'envelope dimension
(list (list time1 value value ... )
(list time2 value value ... )
... ) )
Parameters
The 'envelope controller takes the following arguments:
- dimension: number of values controlled by the envelope.
- time1, time2, etc...: the absolute times of the breakpoints.
- value: the value(s) output by the controller at the given time.
The number of values given for each associated time will depend on the dimension of the controller.
Discussion
The envelope controller follows a predetermined course from value to value in a given amount of time. Values which fall between those which are specified in the list are interpolated. Thus if we specify that at time zero, the value output by the controller will be one, and at time one, the value will be zero, the value at time .5 will be .5 and the value at time .4 will be .6, etc. Note that time1, time2, time3, etc. are in absolute synthesis time and not relative time. If, for example, one wants to set a breakpoint every second for five seconds, the times are 0 1 2 3 4 5, and not 1 1 1 1 1.
Here is an example showing a typical ADSR envelope over 2 seconds of time (its graph is shown at the top of this page):
(make-controller 'envelope 1
'( (0 0.0)
(0.2 1.0)
(0.4 0.7)
(1.2 0.7)
(2 0) ) )