Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / Pset.schelp
blob298977c6b9fc60aba549dadce4306adc13ae169d
1 class:: Pset
2 summary:: event pattern that sets values of one key
3 related:: Classes/Pbindf, Classes/Psetp
4 categories:: Streams-Patterns-Events>Patterns>Filter
6 description::
8 Pset sets a value in an event stream. It acts like one key in a link::Classes/Pbindf::.
9 code::
11 var a, b;
12 a = Pset(\freq, 801, Pbind(\dur, 0.5));
13 x = a.asStream;
14 9.do({ x.next(Event.new).postln; });
18 ClassMethods::
20 method::new
22 argument::name
23 the key.
25 argument::value
26 can be a pattern or a stream. The resulting stream ends when that incoming stream ends.
28 argument::pattern
29 the pattern.
31 Examples::
33 code::
34 //Pset overrides incoming values:
37 var a, b;
38 a = Pset(\freq, 801, Pbind(\freq, 108));
39 x = a.asStream;
40 9.do({ x.next(Event.new).postln; });
45 var a, b;
46 a = Pset(\freq, Pseq([401, 801], 2), Pbind(\dur, 0.5));
47 x = a.asStream;
48 9.do({ x.next(Event.new).postln; });
52 //sound example
55 SynthDef(\sinegrain,
56         { arg out=0, freq=440, sustain=0.02;
57                 var env;
58                 env = EnvGen.kr(Env.perc(0.001, sustain), 1, doneAction:2);
59                 Out.ar(out, SinOsc.ar(freq, 0, env * 0.1))
60         }).add;
64 a = Pbind(\dur, 0.5, \instrument, \sinegrain);
65 a = Pset(\freq, Pseq([500, 600, 700], inf), a);
66 a = Pset(\legato, Pseq([0.01, 1],inf), a);
67 a.play;