PV_OddBin Return the odd numbered bins in an FFT buffer

PV_EvenBin Return the even numbered bins in an FFT buffer


PV_OddBin(buffer)

PV_EvenBin(buffer)


Examples:


// resynthesize only odd or even bins


{SinOsc.ar(440 + SinOsc.kr(0.05).range(0, 440), 0, 0.5)}.play; // a sample sig


SynthDef(\evenbin, {arg fftbuf1, fftbuf2;

var in, chain1, chain2, out1, out2;

in = SinOsc.ar(440 + SinOsc.kr(0.05).range(0, 440), 0, 0.5);

chain1 = FFT(fftbuf1, in);

chain1 = PV_EvenBin(chain1);

out1 = IFFT(chain1);

chain2 = FFT(fftbuf2, in);

chain2 = PV_OddBin(chain2);

out2 = IFFT(chain2);

// Out.ar(0, out1 + out2); // add back together

Out.ar(0, [out1, out2]); // or split apart

}).load(s);


s.boot;


// the fft buf

s.sendMsg(\b_alloc, 0, 2048);

s.sendMsg(\b_alloc, 1, 2048);


// start the synth

s.sendMsg(\s_new, \evenbin, z = s.nextNodeID, 0, 1, \fftbuf1, 0, \fftbuf2, 1);

// free it

s.sendMsg(\n_free, z);

s.sendMsg(\b_free, 0);

s.sendMsg(\b_free, 1);


s.quit