Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / IEnvGen.schelp
blobe4cd30ba4e502901027f1efa018e337db418e55b
1 class:: IEnvGen
2 summary:: Envelope generator for polling values from an Env
3 categories:: UGens>Envelopes
4 related:: Classes/Env
6 description::
7 Envelope generator for polling values from an envelope. IEnvGen plays back break point envelopes from the code::index:: point. The envelopes are instances of the link::Classes/Env:: class.
9 classmethods::
10 private:: categories, new1
12 method:: ar, kr
14 argument:: envelope
15 an instance of Env (this is static for the life of the UGen)
16 argument:: index
17 a point to access within the Env
18 argument:: mul
19 argument:: add
21 instancemethods::
22 private:: init, argNamesInputsOffset, convertEnv
24 examples::
26 code::
29         var env =  Env([0, 0.6, 0.3, 1.0, 0], [0.1, 0.02, 0.4, 1.1], [\lin, \exp, -6, \sin]);
30         var envgen = IEnvGen.kr(env, MouseX.kr(0, env.times.sum));
31         env.plot;
32         SinOsc.ar(envgen * 500 + 440)
33 }.play;
36 // index with an SinOsc ... mouse controls amplitude of SinOsc
37 // use offset so negative values of SinOsc will map into the Env
40         var sin = SinOsc.ar(440, 0, MouseX.kr(0, 1));
41         // use offset so negative values of SinOsc will map into the Env
42         var env = Env([-1, -0.7, 0.7, 1], [ 0.8666, 0.2666, 0.8668 ], \lin, -1.0);
43         IEnvGen.ar(env, sin) * 0.1
44 }.play;
47 // index with Amplitude of input, control freq of SinOsc (uses SoundIn)
50         var point = Amplitude.ar(SoundIn.ar(0), 0.01, 0.2);
51         // use offset so negative values of SinOsc will map into the Env
52         var env = Env.xyc([[0, 330, \exp], [0.5, 440, \exp], [1.0, 1760]]);
53         SinOsc.ar(IEnvGen.kr(env, point)) * 0.2
54 }.play;