BlitB3 Band limted impulse generation


BlitB3.ar(freq, mul, add )


Band limited impulse generator based on B-Spline interpolation of order 3. For technical details of this and the other BlitB3 UGens see: 

Juhan Nam, Vesa Valimaki, Jonathan S. Abel, and Julius O. Smith

Efficient Antialiasing Oscillator Algorithms Using Low-Order Fractional Delay Filters

IEEE Transactions on Audio, Speech, and Language Processing 18(4) May 2010, pp 773--785



See also: BlitB3Saw, BlitB3Square, BlitB3Tri 



{ BlitB3.ar(XLine.kr(10000, 20, 10), 0.5) }.play;


//spot the aliasing

{ Impulse.ar(XLine.kr(10000, 20, 10), 0.0, 0.5) }.play;


//sawtooth

x = { LeakDC.ar(Integrator.ar(BlitB3.ar(MouseX.kr(20,1000,'exponential'), 0.5), 0.99)) }.play;



//sawtooth; super-saw, can integrate mix

//leaks dealt with one by one so don't accumulate

x = {Mix(LeakDC.ar( Integrator.ar(BlitB3.ar(MouseX.kr(1,4)*[220,221,223,224], 0.125), 0.99)) ) }.play;




//sound very similar, but BlitB3 more efficient 

x = {MoogFF.ar(Mix(LeakDC.ar( Integrator.ar(BlitB3.ar(MouseX.kr(0.125,4)*[220,221,223,224], 0.125), 0.99)) ), MouseY.kr(200,10000,'exponential'),3) }.play;


//comparison

x = {MoogFF.ar(Mix(LeakDC.ar(Saw.ar(MouseX.kr(0.125,4)*[220,221,223,224], 0.125), 0.99) ), MouseY.kr(200,10000,'exponential'),3) }.play;



//even more efficient; see BlitB3Saw help file

x = {MoogFF.ar(Mix(BlitB3Saw.ar(MouseX.kr(0.125,4)*[220,221,223,224], 0.99, 0.125)), MouseY.kr(200,10000,'exponential'),3) }.play;