DPW4Saw Sawtooth via 4th order differerentiated polynomial waveform
DPW4Saw.ar(freq, mul, add )
Differentiated polynomial waveforms described in their technicalities here:
Vesa Valimaki, Juhan Nam, Julius O. Smith and Jonathan S. Abel
Alias-Suppressed Oscillators Based on Differentiated Polynomial Waveforms
IEEE Transactions on Audio, Speech, and Language Processing 18(4) May 2010, pp 786--798
Internally, uses DPW2 (quadratic polynomial) for frequencies below 400Hz, with a crossfade in the 400-600Hz region to DPW4. DPW4 behaves well then for higher frequencies.
Slightly less efficient than Saw when lots of UGens running, very slightly duller sound.
See also: BlitB3Saw, DPW3Tri
{ DPW4Saw.ar(XLine.kr(2000, 20, 10)) }.play;
{ DPW4Saw.ar(MouseX.kr(20,12000,'exponential'))*0.5 }.play;
{Saw.ar(MouseX.kr(20,12000,'exponential'))}.play
//DPW4Saw less efficient than the already band limited Saw UGen
{ Mix(DPW4Saw.ar(Array.rand(100,50,5000))*0.01) }.play;
{ Mix(Saw.ar(Array.rand(100,50,5000))*0.01) }.play;