supernova: fix for small audio vector sizes
[supercollider.git] / examples / demonstrations / fft.scd
blobbf429a733869108d5d1de8f1a724f2684fc8ff95
2 s.boot;
3 s.quit;
6 SynthDef("silenceFFT", {
7         var in, chain;
8         in = WhiteNoise.ar(0.01);
9         chain = FFT(0, in);
10         Out.ar(0, IFFT(chain));
11 }).add;
14 s.sendMsg("/b_alloc", 0, 2048, 1);
15 s.sendMsg("/s_new", "silenceFFT", 2002, 1, 0);
16 s.sendMsg("/n_free", 2002);
19 SynthDef("sineFFT", {
20         var in, chain;
21         in = SinOsc.ar(SinOsc.kr(SinOsc.kr(0.08,0,6,6.2).squared, 0, 100,800));
22         chain = FFT(0, in);
23         Out.ar(0, IFFT(chain));
24 }).add;
27 s.sendMsg("/b_alloc", 0, 2048, 1);
28 s.sendMsg("/s_new", "sineFFT", 2002, 1, 0);
29 s.sendMsg("/n_free", 2002);
32 SynthDef("magAbove", {
33         var in, chain;
34         in = SinOsc.ar(SinOsc.kr(SinOsc.kr(0.08,0,6,6.2).squared, 0, 100,800));
35         //in = WhiteNoise.ar(0.2);
36         chain = FFT(0, in);
37         chain = PV_MagAbove(chain, 310); 
38         Out.ar(0, 0.5 * IFFT(chain));
39 }).add;
42 s.sendMsg("/b_alloc", 0, 2048, 1);
43 s.sendMsg("/s_new", "magAbove", 2002, 1, 0);
44 s.sendMsg("/s_trace", 2002)
45 s.sendMsg("/n_free", 2002);
48 SynthDef("brick", {
49         var in, chain;
50         in = {WhiteNoise.ar(0.2)}.dup;
51         chain = FFT(0, in);
52         chain = PV_BrickWall(chain, SinOsc.kr(0.1)); 
53         Out.ar(0, IFFT(chain));
54 }).add;
57 s.sendMsg("/b_alloc", 0, 2048, 1);
58 s.sendMsg("/s_new", "brick", 2002, 1, 0);
59 s.sendMsg("/s_trace", 2002)
60 s.sendMsg("/n_free", 2002);
63 SynthDef("randcomb", { arg bufnum=0;
64         var in, chain;
65         in = {WhiteNoise.ar(0.8)}.dup;
66         chain = FFT(bufnum, in);
67         chain = PV_RandComb(chain, 0.95, Impulse.kr(0.4)); 
68         Out.ar(0, IFFT(chain));
69 }).add;
72 s.sendMsg("/b_alloc", 1, 2048, 1);
73 s.sendMsg("/s_new", "randcomb", 2003, 1, 0, \bufnum, 1);
74 s.sendMsg("/s_trace", 2003)
75 s.sendMsg("/n_free", 2003);
78 SynthDef("rectcomb", { arg bufnum=0;
79         var in, chain;
80         in = {WhiteNoise.ar(0.2)}.dup;
81         chain = FFT(bufnum, in);
82         chain = PV_RectComb(chain, 8, LFTri.kr(0.097,0,0.4,0.5), 
83                 LFTri.kr(0.24,0,-0.5,0.5)); 
84         Out.ar(0, IFFT(chain));
85 }).add;
88 s.sendMsg("/b_alloc", 0, 2048, 1);
89 s.sendMsg("/s_new", "rectcomb", 2002, 1, 0, \bufnum, 1);
90 s.sendMsg("/s_trace", 2002)
91 s.sendMsg("/n_free", 2002);
93 s.quit;