supernova: fix for small audio vector sizes
[supercollider.git] / examples / demonstrations / single_sample_feedback_02.scd
blob002bb066ac0cb9d4ee831dd3e46bd27078f5c5e2
1 // some more tests
6 var x, y, rate, a, b;
7         b = LocalBuf(1);
8         rate = MouseX.kr(100, SampleRate.ir);
9         a = 0.1;
10         x = Dbufrd(b); // read from buffer
11         x = x + a;
12         x = if(x > 1, Dwhite(-1, 1, inf), x);
13         y = Dbufwr(x, b); // write to buffer
14         Duty.ar(1 / rate, 0, y) * 0.1.dup;
15 }.scope;
21 var x, y, rate, a, mod, b;
22         b = LocalBuf(1);
23         rate = SampleRate.ir;
24         a = 0.1;
25         mod = Drand([Dseries(-1, 0.01, 200), Dseries(1, -0.1, 20)], inf);
26         x = Dbufrd(b); // read from buffer
27         x = x + a;
28         x = if(x.abs < 0.1, x * mod, x);
29         x = x.wrap2(1.0);
30         y = Dbufwr(x, b); // write to buffer
31         Duty.ar(1 / rate, 0, y) * 0.1.dup;
32 }.scope;
39 var x, y, rate, a, mod, b;
40         b = LocalBuf(1);
41         rate = SampleRate.ir;
42         a = 0.1 * 0.8;
43         mod = Drand([Dseries(-1, 0.01, MouseX.kr(0, 200)), Dseries(1, -0.1, MouseY.kr(0, 200))], inf);
44         x = Dbufrd(b); // read from buffer
45         x = x + a;
46         x = if(x.abs < 0.1, x * mod, x);
47         x = x.wrap2(1.0);
48         y = Dbufwr(x, b); // write to buffer
49         Duty.ar(1 / rate, 0, y) * 0.1.dup;
50 }.scope;
53 // brown noise
56 var x, y, rate, a, mod, b;
57         b = LocalBuf(1);
58         rate = SampleRate.ir;
59         a = Dwhite(-1, 1, inf) * 0.2;
60         x = Dbufrd(b); // read from buffer
61         x = x + a;
62         x = x.fold2(1.0);
63         y = Dbufwr(x, b); // write to buffer
64         Duty.ar(1 / rate, 0, y) * 0.1.dup;
65 }.scope;
68 // harsher brown noise
71 var x, y, rate, a, mod, b;
72         b = LocalBuf(1);
73         rate = SampleRate.ir;
74         a = Dwhite(-1, 1, inf) * Drand([0.2, 0.2, 1, 10], inf);
75         x = Dbufrd(b); // read from buffer
76         x = x + a;
77         x = x.fold2(1.0);
78         y = Dbufwr(x, b); // write to buffer
79         Duty.ar(1 / rate, 0, y) * 0.1.dup;
80 }.scope;
85 // other noise
88 var b = LocalBuf(1);
89 var read = { Dbufrd(b) };
90 var write = { |x| Dbufwr(x, b) };
91 var x, y, rate, a, mod;
92         rate = SampleRate.ir;
93         a = Dwhite(-1, 1, inf);
94         x = read; // read from buffer
95         x = x ** a + 1;
96         x = x.fold2(1.0);
97         y = write.(x); // write to buffer
98         Duty.ar(1 / rate, 0, y) * 0.1.dup;
99 }.scope;