Sorry my explanation wasn’t particularly clear, I was referring to the Oscillator node, not the Basic Oscillator module. I was just pointing out that the Oscillator node itself features PWM and that the module actually uses the shape input on the node to control the shape for the square and saw waves. The Oscillator node is the core for many of the VCO modules in Audulus.

While it is possible to build an oscillator using the phasor node, these oscillators are not band limited and often result in considerable aliasing. The phasor node is very CPU efficient and is often used for LFOs. It also accepts a negative input for frequency and so is the basis for through-zero FM oscillators. The Oscillator node is band limited at the Nyquist frequency so its outputs are anti-aliased. Of course once you introduce a wave folder or manipulate the waveform in some other way that adds harmonics, you may create aliasing, but the oscillator node itself does not.

The node has an input for frequency, amplitude, sync, and shape. It has a selector for the type of output, sine, triangle, saw and square. The shape input only affects the saw and square waves, the sine and triangle are not modulated. The shape input takes a modulation value that varies between 0 and 1, and in the case of the square wave, 0 (or no modulation) on the input is a 50% duty cycle square and 1 is a 0% duty cycle (which is a constant -1 output)

Since a modulation value of 1 results in a constant output and therefore no sound, the Basic Oscillator Module clamps the shape value internally from 0 to 0.9 so some sound is always produced.

The Basic Oscillator module in the reface collection contains 4 Oscillator nodes, one for each output. For sine output the Oscillator node is fed through a wave folder, the triangle output is fed to a waveshaper, and the saw and square outputs use the built-in shape input on the node.