Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / Pslide.schelp
blobc4a8435e5c3853415ad6316a2a48e5d30f166e1c
1 class:: Pslide
2 summary:: slide over a list of values and embed them
3 related:: Classes/Ptuple
4 categories:: Streams-Patterns-Events>Patterns>List
6 ClassMethods::
8 method::new
10 argument::list
12 argument::repeats
13 number of segments.
15 argument::len
16 length of each segment.
18 argument::step
19 how far to step the start of each segment from previous. step can be negative.
21 argument::start
22 what index to start at.
24 argument::wrapAtEnd
25 if true (default), indexing wraps around if goes past beginning or end. If false, the pattern stops if it hits a nil element or goes outside the list bounds.
27 Examples::
29 code::
31 var a, b;
32 a = Pslide([1, 2, 3, 4, 5], inf, 3, 1, 0);
33 x = a.asStream;
34 13.do({ x.next.postln; });
37 //Pslide used as a sequence of pitches:
40 SynthDef(\help_sinegrain,
41         { arg out=0, freq=440, sustain=0.05;
42                 var env;
43                 env = EnvGen.kr(Env.perc(0.01, sustain, 0.2), doneAction:2);
44                 Out.ar(out, SinOsc.ar(freq, 0, env))
45         }).add;
49 c = Pslide(#[1, 2, 3, 4, 5], inf, 3, 1, 0) * 3 + 67;
50 x = c.asStream;
51 Routine({
52         loop({
53                 Synth(\help_sinegrain, [\freq, x.next.midicps]);
54                 0.17.wait;
55         })
56 }).play;