class:: DPW4Saw
summary:: Sawtooth via 4th order differerentiated polynomial waveform
related:: Classes/BlitB3Saw, Classes/DPW3Tri
categories:: UGens>Generators>Deterministic

Description::

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. 

classmethods::

method::ar

argument::freq 


Examples::

code::


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


::
