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
freq |
{ 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;