Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / Pfuncn.schelp
blob4d5cccdf7b750be0d20c13f33217440080122c8a
1 class:: Pfuncn
2 summary:: Function pattern of given length
3 categories:: Streams-Patterns-Events>Patterns>Function
4 related:: Classes/Pfunc
6 description::
7 Returns a stream that returns values from the code::func::.
10 classmethods::
12 method:: new
13 argument:: func
14 Stream function. In an event stream receives the current link::Classes/Event:: as argument.
15 argument:: repeats
16 End after this number of times.
19 examples::
20 code::
22 var a, b, c;
23 a = Pfuncn({ exprand(0.1, 2.0) + #[1, 2, 3, 6].choose }, 2);
24 b = Pfuncn({ #[-2, -3].choose }, 2);
25 Pseq([a, b], inf).asStream.nextN(20).postln;
29 Sound example
30 code::
32 SynthDef(\help_sinegrain,
33         { arg out = 0, freq = 440, sustain = 0.05;
34                 var env;
35                 env = EnvGen.kr(Env.perc(0.01, sustain, 0.2), doneAction:2);
36                 Out.ar(out, SinOsc.ar(freq, 0, env))
37         }).add;
42 var a, b, c;
43 a = Pfuncn({ exprand(0.1, 2.0) + #[1, 2, 3, 6].choose }, 2);
44 b = Pfuncn({ #[-2, -3].choose }, 7);
45 c = Pseq([a, b], inf).asStream;
47         c.do { |val|
48                 Synth(\help_sinegrain, [\freq, val * 100 + 300]);
49                 0.02.wait;
50         }
51 }.fork;