sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / HelpSource / Classes / Pwrand.schelp
blob0feead73e33dfc765e3d176930f98b4cdf85dc3b
1 class:: Pwrand
2 summary:: embed values randomly chosen from a list
3 related:: Classes/Prand, Classes/Pxrand
4 categories:: Streams-Patterns-Events>Patterns>List
6 description::
7 Returns one item from the list at random for each repeat, the probability for each item is determined by a list of weights which should sum to 1.0.
9 Examples::
11 code::
13 var a, b;
14 a = Pwrand.new([1, 2, 3], [1, 3, 5].normalizeSum, 6);   // return 6 items
15 b = a.asStream;
16 7.do({ b.next.postln; });
19 //Prand used as a sequence of pitches:
22 SynthDef(\help_sinegrain,
23         { arg out=0, freq=440, sustain=0.05;
24                 var env;
25                 env = EnvGen.kr(Env.perc(0.01, sustain, 0.2), doneAction:2);
26                 Out.ar(out, SinOsc.ar(freq, 0, env))
27         }).add;
32 a = Pwrand([60, 61, 63, 65, 72], [10, 2, 3, 1, 3].normalizeSum, inf).asStream;
33 Routine({
34         loop({
35                 Synth(\help_sinegrain, [\freq, a.next.midicps]);
36                 0.1.wait;
37         })
38 }).play;