PV_BinGap pseudo ugen keeping the complement of a spectral range


Part of: miSCellaneous


Inherits from: PV_ChainUGen


Based on PV_BrickWall, but instead of wipe parameters it takes two bin numbers.


See also: PV_BinRange, FFT Overview



Creation / Class Methods


*new (buffer, loBin, hiBin)

Creates a new PV_BinGap object.

buffer - FFT buffer.

loBin - low bin index of excluded range.

hiBin - high bin index of excluded range.


Examples


(

s = Server.local;

Server.default = s;

s.boot;

)



// frequencies are rounded to nearest bins


(

f = { |loFreq = 800, hiFreq = 1500, fundFreq = 50, amp = 0.1|

var bufSize = 1024, binRange, loBin, hiBin, sig, chain;


sig = Saw.ar(fundFreq, amp);


binRange = s.sampleRate / bufSize;

loBin = (loFreq / binRange).round;

hiBin = (hiFreq / binRange).round;


chain = FFT(LocalBuf(bufSize), sig);

chain = PV_BinGap(chain, loBin, hiBin);

IFFT(chain) ! 2;

};


x = f.play;


s.freqscope;

)


x.set(\loFreq, 300);


x.set(\hiFreq, 3000);


x.release;