scide: implement selectionLength for openDocument
[supercollider.git] / HelpSource / Classes / Pbinop.schelp
blob08af969b14a6234150d5def8b979a4a0b1e29401
1 class:: Pbinop
2 summary:: binary operator pattern
3 related:: Classes/Pnaryop, Classes/Punop, Classes/BinaryOpFunction
4 categories:: Streams-Patterns-Events>Patterns>Math
6 description::
8 Returns a stream that applies the binary operator to the stream values of the receiver. Usually, this is the result of applying a binary operator (i.e. a method with one argument) to a pattern.
10 Examples of binary operators are: +, -, /, *, min, max, hypot ...
12 ClassMethods::
14 method::new
16 argument::operator
17 operator to be applied
19 argument::a
20 a pattern (or compatible pattern input)
22 argument::b
23 a pattern (or compatible pattern input)
25 argument::adverb
27 Examples::
29 code::
31 var a;
32 a = Pbinop(\hypot, Pseries(0, 1, 12), Pseries(3, -1, 12));
33 a.asStream.all;
36 // this is the same as:
38 var a;
39 a = Pseries(0, 1, 12).hypot(Pseries(3, -1, 12));
40 a.asStream.all;
43 // also written as:
45 var a;
46 a = Pseries(0, 1, 12) hypot: Pseries(3, -1, 12);
47 a.asStream.all;
50 // some common cases:
51 Pseq([1, 2, 3]) + 2;
52 Pseq([1, 2, 3]) / Pseq([3, 4, 5, 6]);
53 max(Pwhite(-10, 10, inf), Pseq([0, 2, 3, 4]));
56 code::
57 // sound example
59 SynthDef(\help_sinegrain,
60         { arg out=0, freq=440, sustain=0.05, amp=0.1;
61                 var env;
62                 env = EnvGen.kr(Env.perc(0.01, sustain, 0.2, amp), doneAction:2);
63                 Out.ar(out, SinOsc.ar(freq, 0, env))
64         }).add;
68 var a;
69 a = Pn(Pbinop(\hypot, Pseries(0, 1, 34), Pseries(3, -1, 34)), inf).asStream;
71         a.do { |val|
72                 Synth(\help_sinegrain, [\freq, a * 200 + 300].postln);
73                 0.05.wait;
74         }
75 }.fork;
79 Pbind(
80         \dur, 0.01,
81         \instrument, \help_sinegrain,
82         \note, Pn(Pbinop(\hypot, Pwhite(0, 12, 13), Pseries(3, -1, 12)))
83 ).play;
88 // these are the same as:
91 var a;
92 a = Pn(Pseries(0, 1, 34) hypot: Pseries(3, -1, 34), inf).asStream;
94         a.do { |val|
95                 Synth(\help_sinegrain, [\freq, a * 200 + 300].postln);
96                 0.05.wait;
97         }
98 }.fork;
103 Pbind(
104         \dur, 0.01,
105         \instrument, \help_sinegrain,
106         \note, Pn(Pwhite(0, 12, 13) hypot: Pseries(3, -1, 12))
107 ).play;