scide: implement selectionLength for openDocument
[supercollider.git] / HelpSource / Classes / Pseed.schelp
blob130e81d3791dd6e72b2a7acdb5bd1a81003c7d0c
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 argument::pattern
32 Examples::
34 code::
35 a = Pseed(1972, Prand([1,2,3], inf));
37 b = a.asStream;
38 10.do({ b.next.post });
40 c = a.asStream;
41 10.do({ c.next.post });
44 // using a seed pattern as input:
46 a = Pseed(Pseq([1812, 1912], inf), Prand([1,2,3], 5));
48 b = a.asStream;
49 2.do({ 5.do({ b.next.post });"".postln;  });
51 c = a.asStream;
52 2.do({ 5.do({ c.next.post });"".postln;  });
55 // outer thread is independant:
57 a = Pseed(Prand([1534, 1600, 1798, 1986, 2005], inf), Pshuf([1, Prand([7, 9], 2), 1, 2, 3], 1));
59 // returns random streams
60 b = a.asStream;
61 2.do({ 5.do({ b.next.post });"".postln;  });
63 c = a.asStream;
64 2.do({ 5.do({ c.next.post });"".postln;  });