
PULSE OSC
---------

(Replaces Dirac Osc)

Sound oscillator producing a band-limited pulse train.

Optionally, the number of harmonics can be limited to a desired amount, which can be chosen with the Harmonics pin.
Specifying a value <= 0 (default) will produce all natural harmonics up to Nyquist, while specifying 1 will obviously produce a plain sine wave.
Note: this value is provided as an Int pin because it can just be an integer and it is NOT meant to be modulated.

The allowed pitch range is from 0 octaves (13.75 Hz) up to half of Nyquist frequency.

The peak level (default 5 V) can be conveniently specified with the Level pin (this pin was left hidden because its value is application-specific and usually fixed).

The oscillator is natively aliasing-free, since no harmonic is generated over Nyquist frequency.
For this reason, oversampling this module is completely *pointless* and was forbidden (a warning dialog will pop up if you do).

The output is also naturally devoid of DC offset.



WHY USING A PULSE TRAIN INSTEAD OF A SAWTOOTH ?

A sawtooth wave contains all harmonics, but their level is decreasing as 1/n, where n is the harmonic number.
A pulse train has all harmonics aswell, but they all have the same level, therefore it is spectrally flat.
Acoustically, a pulse train waveform sounds pretty identical to a sawtooth waveform, just brighter.
For this reason, usage of a pulse train must be preferred over a sawtooth in operations like subtractive synthesis (spectral filters, vocal filters) or vocoding.


MISSING NYQUIST PEAK

When inspecting the output with a spectrum analyzer, you may notice a dip at Nyquist frequency, which seems contradicting the previous statement about the spectral flatness of a pulse train. Actually, this "notch" is created intentionally, to avoid audible clicks when the number of harmonics changes naturally with pitch.


CONST SPEC [WARNING !]

Unlike a sawtooth waveform, a counter-intuitive peculiarity of a pulse train is that by keeping its time-domain peak level constant, its spectral level is not constant but proportional to the pitch (the higher the pitch, the higher the spectral peak level).
By default, the pulse train will have constant time-domain peak level, so that a constant audio level is perceived across any pitch.
However, for some spectral filtering or vocoding applications, it may rather be desirable to have a constant spectral peak level (where 10 V corresponds to 0 dB peaks), by setting the hidden Const Spec pin.

!! WARNING !! SETTING THIS OPTION WILL CAUSE A DANGEROUS OUTPUT LEVEL ! USE IT ONLY WHEN PERFORMING SPECTRAL FILTERING !




