Hordijk Harmonic Oscillator
  • 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. https://vimeo.com/channels/1311476/234514050

    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. https://vimeo.com/channels/1311476/236208519

    Despite Hordijk’s warnings on the difficulties of implementing the algorithm digitally, I was keen to try it out in Audulus. One of the aspects of the feedback loop involves using the 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. I eventually gave up on the linear FM route and decided to try implementing it with phase modulation instead – with some success. (There’s more from Hordijk on FM synthesis on the old Clavia Nord Modular website, fortunately still available via the Wayback Machine: https://web.archive.org/web/20060305213500/http://www.clavia.se/nordmodular/Modularzone/FMsynthesis.html )

    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 also curious as to why the inverted form of the waveform appears to be slightly lower in pitch.) 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 uModule, 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
    RH-RM uHRM Demo.audulus
    2224 x 1251 - 113K
    2224 x 1668 - 906K
  • added to the oscillator folder ::thumbsupemoji::
  • @Rudiger great patch. Here’s a MIDI playable version of your demo.
    RH-RM uHRM MIDI.audulus
    1024 x 768 - 218K