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;