scide: LookupDialog - redo lookup on classes after partial lookup
[supercollider.git] / HelpSource / Classes / SOS.schelp
blobe07bc9dfb35cdecbb5332d99390e991257cff41a
1 class:: SOS
2 summary:: Second order filter section (biquad).
3 related:: Classes/FOS
4 categories::  UGens>Filters>Linear
7 Description::
9 A standard second order filter section. Filter coefficients are given
10 directly rather than calculated for you. Formula is equivalent to:
12 code::
14 out(i) = (a0 * in(i)) + (a1 * in(i-1)) + (a2 * in(i-2)) + (b1 * out(i-1)) + (b2 * out(i-2))
19 classmethods::
21 method::ar, kr
23 argument::in
25 signal input
27 argument::a0
28 See formula above.
30 argument::a1
31 See formula above.
33 argument::a2
34 See formula above.
36 argument::b1
37 See formula above.
39 argument::b2
40 See formula above.
42 argument::mul
44 argument::add
46 Examples::
48 code::
50 // example: same as TwoPole
53         var rho, theta, b1, b2;
54         theta = MouseX.kr(0.2pi, pi);
55         rho = MouseY.kr(0.6, 0.99);
56         b1 = 2.0 * rho * cos(theta);
57         b2 = rho.squared.neg;
58         SOS.ar(LFSaw.ar(200, 0, 0.1), 1.0, 0.0, 0.0, b1, b2)
59 }.play
65         var rho, theta, b1, b2;
66         theta = MouseX.kr(0.2pi, pi);
67         rho = MouseY.kr(0.6, 0.99);
68         b1 = 2.0 * rho * cos(theta);
69         b2 = rho.squared.neg;
70         SOS.ar(WhiteNoise.ar(0.1 ! 2), 1.0, 0.0, 0.0, b1, b2)
71 }.play
74 // example with SOS.kr kr as modulator
77         var rho, theta, b1, b2, vib;
78         theta = MouseX.kr(0.2pi, pi);
79         rho = MouseY.kr(0.6, 0.99);
80         b1 = 2.0 * rho * cos(theta);
81         b2 = rho.squared.neg;
83         vib = SOS.kr(LFSaw.kr(3.16), 1.0, 0.0, 0.0, b1, b2);
84         SinOsc.ar( vib * 200 + 600) * 0.2
85 }.play