This is a repost of part of a thread on the old forum.
My next stop while working my way though the treasure trove that is the NOVARS collection of Hordijk tutorials, has been his Harmonic Oscillator – a module I’ve been keen to take a closer look at for quite some time.
In the first of two videos he provides a general introduction to the basic idea of the oscillator – one in which the three classic parameters of sound synthesis: pitch, timbre, and amplitude, are all present, and all available for voltage control.
In the second video he takes a closer look at the algorithm that defines the oscillator: a sine/cosine oscillator that feeds back on itself via linear FM, creating a spectrum that contains all harmonics. A second spectrum containing only odd harmonics is created with a Chebyshev polynomial feeding back the pitch an octave higher. The combination of the two spectra creates pulse-width timbres.
Despite Hordijk’s warnings on the difficulties of implementing his Harmonic Oscillator algorithm digitally, I was keen to try out some of the ideas in Audulus. One of the aspects of the feedback loop involves using a cosine waveform to avoid the DC offset that would occur when feeding the sine back on itself. In the Hordijk’s diagrams he indicates a crossfade between the sine and cosine signals as part of the feedback loop, but I kept on running into the pitch drop problem that he explains is a result of the DC offset. (There’s more from Hordijk on FM synthesis on the old Clavia Nord Modular website, fortunately still available via the Wayback Machine.) I eventually gave up on the linear FM route and decided to try implementing it with phase modulation instead – with some success.
The morph from sine to saw has a different character than making a crossfade between the two waveforms since the saw edge gradually tilts rather than appearing as an abrupt vertical, and the sawtooth and square waves also have a rounder edge than the characteristic forms of these waves. (I’m curious as to why the inverted form of the waveform appears to be slightly lower in pitch. In the case of this oscillator shifting the “All” knob in the positive direction results in what is commonly know as a reverse (or inverse) sawtooth. This is the default result of the pitch being fed back on itself.)
I haven’t been able to achieve quite the same sharpness in the shapes that Hordijk does with his analogue implementation (compare the waveforms at the beginning of the second video) since the phase modulation begins to distort, but the somewhat more mellow quality that results also has a charm of its own. (It is possible to increase the definition of the square wave a little more than I have, but that results in distortion when combining the square and sawtooth spectra.)
I’ve put it together as a simplified µModule, with the addition of a control that adjusts the level of both the odd and all spectra simultaneously in relation to the sine.
RH-RM uHRM.audulus (31.2 KB)
RH-RM uHRM Demo.audulus (245.9 KB)