class library: SynthDef - lazy implementation of removeUGen
[supercollider.git] / HelpSource / Classes / Pseed.schelp
blob54fb4fc25377511d0203a3825e51a245d38017df
1 class:: Pseed
2 summary:: set the random seed in subpattern
3 related:: Reference/randomSeed
4 categories:: Streams-Patterns-Events>Patterns>Language Control
6 description::
8 Set the random generator seed of the resulting stream.
10 ClassMethods::
12 method::new
14 argument::randSeed
15 integer number, pattern or stream that return an integer number.
17 note::
18 randSeed is always treated as a pattern/stream. If you provide a single, constant seed value, it will behave as an infinite-length stream. This will cause the subpattern to be embedded an infinite number of times. Compare:
20 code::
21 // Pwhite repeats its three values forever
22 Pseed(1000, Pwhite(1, 10, 3)).asStream.nextN(10);
24 // Pwhite runs once:
25 // the output stream consists of three values, then 'nil' ad infinitum
26 Pseed(Pn(1000, 1), Pwhite(1, 10, 3)).asStream.nextN(10);
30 Examples::
32 code::
33 a = Pseed(1972, Prand([1,2,3], inf));
35 b = a.asStream;
36 10.do({ b.next.post });
38 c = a.asStream;
39 10.do({ c.next.post });
42 // using a seed pattern as input:
44 a = Pseed(Pseq([1812, 1912], inf), Prand([1,2,3], 5));
46 b = a.asStream;
47 2.do({ 5.do({ b.next.post });"".postln;  });
49 c = a.asStream;
50 2.do({ 5.do({ c.next.post });"".postln;  });
53 // outer thread is independant:
55 a = Pseed(Prand([1534, 1600, 1798, 1986, 2005], inf), Pshuf([1, Prand([7, 9], 2), 1, 2, 3], 1));
57 // returns random streams
58 b = a.asStream;
59 2.do({ 5.do({ b.next.post });"".postln;  });
61 c = a.asStream;
62 2.do({ 5.do({ c.next.post });"".postln;  });