1title:: PV_OddBin
2summary:: Return the odd numbered bins in an FFT buffer
3categories:: Libraries>JoshUGens, UGens>FFT
4related:: Classes/PV_EvenBin
5
6DESCRIPTION::
7code::
8PV_OddBin(buffer)
9::
10
11
12CLASSMETHODS::
13
14
15INSTANCEMETHODS::
16
17
18EXAMPLES::
19
20code::
21// resynthesize only odd or even bins
22s.boot;
23
24// a sample sig
25{SinOsc.ar(440 + SinOsc.kr(0.05).range(0, 440), 0, 0.5)}.play;
26
27(
28SynthDef(\evenbin, {arg fftbuf1, fftbuf2;
29    var in, chain1, chain2, out1, out2;
30    in = SinOsc.ar(440 + SinOsc.kr(0.05).range(0, 440), 0, 0.5);
31    chain1 = FFT(fftbuf1, in);
32    chain1 = PV_EvenBin(chain1);
33    out1 = IFFT(chain1);
34    chain2 = FFT(fftbuf2, in);
35    chain2 = PV_OddBin(chain2);
36    out2 = IFFT(chain2);
37    //   Out.ar(0, out1 + out2); // add back together
38    Out.ar(0, [out1, out2]); // or split apart
39}).add;
40)
41
42// the fft buf
43s.sendMsg(\b_alloc, 0, 2048);
44s.sendMsg(\b_alloc, 1, 2048);
45
46// start the synth
47s.sendMsg(\s_new, \evenbin, z = s.nextNodeID, 0, 1, \fftbuf1, 0, \fftbuf2, 1);
48// free it
49s.sendMsg(\n_free, z);
50s.sendMsg(\b_free, 0);
51s.sendMsg(\b_free, 1);
52
53s.quit
54::