Blip band limited impulse oscillator


Blip.ar(freq, numharm, mul, add)


Band Limited ImPulse generator. All harmonics have equal amplitude. This is the equivalent of 'buzz' in MusicN languages. 


WARNING: This waveform in its raw form could be damaging to your ears at high amplitudes or for long periods.


Implementation notes: 

It is improved from other implementations in that it will crossfade in a control period when the number of  harmonics changes, so that there are no audible pops. It also eliminates the divide in the formula by using a 1/sin table (with special precautions taken for 1/0).  The lookup tables are linearly interpolated for better quality.


(Synth-O-Matic (1990) had an impulse generator called blip, hence that name here rather than 'buzz').


freq - Frequency in Hertz (control rate)

numharm - Number of harmonics. This may be lowered internally if it would cause aliasing.


// modulate frequency

{ Blip.ar(XLine.kr(20000,200,6),100,0.2) }.play;


// modulate numharmonics

{ Blip.ar(200,Line.kr(1,100,20),0.2) }.play;