sclang: ServerShmInterface - try to avoid multiple destructor calls
[supercollider.git] / HelpSource / Classes / Psetpre.schelp
blobc974a96681ebc21529beebce6327f730cc61b370
1 class:: Psetpre
2 summary:: set values of one key in an event before it is passed up
3 related:: Classes/Pset, Classes/Psetp
4 categories:: Streams-Patterns-Events>Patterns>Filter
6 description::
8 Sets a value in an event, before it is passed up the stream. To set the value after it has been passed to the stream, use link::Classes/Pset::.
9 code::
11 var a, b;
12 a = Psetpre(\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::value
23 can be a pattern or a stream. The resulting stream ends when that incoming stream ends.
25 Examples::
27 code::
28 //Psetpre does not override incoming values:
31 var a, b;
32 a = Psetpre(\freq, 801, Pbind(\freq, 108));
33 x = a.asStream;
34 9.do({ x.next(Event.new).postln; });
39 var a, b;
40 a = Psetpre(\freq, Pseq([401, 801], 2), Pbind(\dur, 0.5));
41 x = a.asStream;
42 9.do({ x.next(Event.new).postln; });
46 //sound example
49 SynthDef(\sinegrain,
50         { arg out=0, freq=440, sustain=0.02;
51                 var env;
52                 env = EnvGen.kr(Env.perc(0.001, sustain), 1, doneAction:2);
53                 Out.ar(out, SinOsc.ar(freq, 0, env * 0.1))
54         }).add;
58 a = Pbind(\dur, 0.5, \instrument, \sinegrain);
59 a = Psetpre(\freq, Pseq([500, 600, 700], inf), a);
60 a = Psetpre(\legato, Pseq([0.01, 1],inf), a);
61 a.play;