rss

Modular Diary

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.1 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,2 and the sawtooth and square waves also have a rounder edge than the characteristic forms of these waves. 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. 3

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.


  1. There’s more from Hordijk on FM synthesis on the old Clavia Nord Modular website, fortunately still available via the Wayback Machine.  

  2. I’m also 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.)  

  3. 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.  

Modular Diary

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.

Modular Diary

A few details on Rob Hordijk’s Dual Fader and my Audulus recreation of it: Hordijk makes clever use of normalized inputs and outputs to achieve a wide range of possibilities with only a few inputs and outputs:

  • Crossfading: 2 input signals, 1 output signal
  • Panning: 1 input signal, 2 output signals
  • Ducking: 2 input signals, 2 output signals

Since normalized1 inputs and outputs aren’t (yet) a viable possibility in Audulus I’ve simply included an extra output for the crossfaded signals. Another feature of Hordijk’s module is a 20db Gain control on two of the inputs to enable using external signals within the modular system. That isn’t something that needs to be thought of within the Audulus context, but those controls can also be used to introduce clipping distortion, so I’ve kept that as a feature. 2

Hordijk also includes a switch that changes between the crossfade output of channel A being routed to:

  • Both inputs of channel B
  • Only input 1 of channel B
  • Both inputs of channel B, but with input 2 inverted. That means that when fader B is set precisely to its center, the two signals cancel each other out resulting in silence. However if that fader is modulated at audio rates a type of Ring Modulation is heard, with a particular quality that is the result of the RMS curves.

I put together a simple demo.

I’m impressed by Hordijk’s take on a simple mixing module, both the way in which distinctions between levels and placement are eased, and just how much can be gotten out of what is essentially two crossfaders – especially when modulation is introduced.


  1. Normalized connections are ‘behind the panel’ connections that don’t require patch cables. However should a cable be connected the hardwired connection is broken and the patch cable connection takes over.  

  2. Soft clipping in my case, but that could be adjusted. 

Modular Diary

While taking a look at the difference between the Epoch Modular TwinPeak filter and the one that Rob Hordijk uses in his own system, I got curious about his Dual Fader module. At first I thought that it might not be all that relevant in the Audulus context, but the closer I looked, the more compelling I began to find it.

The NOVARS Research Centre has fortunately posted an extensive series of Hordijk tutorials (presented by the man himself) and I found it very useful to take a look at the two videos (#12 and #12a) in which he presents the Dual Fader.

My first take-away was the simple idea of using one half of a cross-fader as a VCA with an RMS curve, and so I put together a little Audulus VCA and a comparison patch with exponential and logarithmic curves.

Modular Diary

I’ve also put together a simplified, single input, micro version of the TwinPeak filter. The modulation input is set to only alter peak 2 by default, but this can easily be changed by opening up the hood and changing it to peak 1 or adding it to both.

The Hordijk Modular Blog suggests using multiple TwinPeak filters in order to achieve a complex filter with multiple resonant peaks, so I’ve tried something of that out in a little demo with the filters being triggered at sub-audio rates.

Modular Diary

I’ve also put together a version of the TwinPeak filter following the layout and design Rob Hordijk created for his own modular system. It doesn’t have the cross-fader that is a handy feature of the Epoch Modular version, but that’s not necessarily needed in the context of Hordijk’s system since it includes a Dual Fader module. There’s a directness and clarity in the pure symmetry of his design that I find very satisfying.

The hordijk-synths.info site appears to no longer be online, but can fortunately still be accessed via the Internet Archive’s Wayback Machine. I also discovered the recently established Hordijk Modular Blog, which has an enthusiastic entry on the TwinPeak filter that includes an informative video in which Hordijk himself explains how the design enables not only a bandpass filter, but one with two peaks.

Modular Diary

Looking through, organizing, and reviewing the many Audulus patches that I’ve accumulated and worked on over the last year, I was reminded of the Hordijk TwinPeak filter. A simplifed version of it was included in the Blippoo Box that I’d put together, and I remembered that I’d meant to make a standalone version of it at the time – only to realize that that had already been tackled on the forum.

Here’s my fresh take on the Epoch Modular version demonstrated in the James Cigler video at the top of the forum thread, building on the updated modules and approaches that have been introduced over the course of the last year.

Modular Diary

A further detail on Schmitt triggers: Reading in the Wikipedia article that “a Schmitt trigger can be converted into a latch and a latch can be converted into a Schmitt trigger” made me realize that the ARC Threshold Logic Neuron could be used as a Schmitt trigger. The ‘single-bit’ configuration allows for the threshold and memory properties to be incorporated in one element, as in some of the analogue circuits, rather than separating them into distinct elements as with a flip-flop or sample and hold.

I put together a little example in Audulus.

Modular Diary

…what a Schmitt trigger does is it takes a kind of wavy analog signal and turns it into a sharp digital signal
@TomWhitwell On The History Of Synthesizers

Since piecing together a Schmitt Trigger in Audulus yesterday it’s been interesting to read a little about the various ways in which the basic idea can be implemented. Upper and lower threshold triggers combined with a sample and hold seemed to be the simplest way to go with Audulus, but the Wikipedia article also covers the many ways in which it might be implemented with analogue components.

As with the ARC Threshold Logic Neuron it’s interesting to look at the history of its development and origins in the study of biological processes. Tom Whitwell, in his talk On The History Of Synthesizers, assigns this humble device a central role in the development of not just electronic music, but electronics in general.

Modular Diary

I came across Analogue Research’s Artificial Neural Network Eurorack module last year, and have been wanting to re-create some of the submodules in Audulus ever since. The Audulus Library already includes modules for the standard logic gates, but there was something in the addition of thresholds to the Boolean on or off that intrigued me: ARC provides a nice explanation, in both their video and manual, of the biological model on which the Threshold Logic Neuron is based.

As DivKid covers in the final section of his video on the Joranalogue Compare 2 dual window comparator, there’s a lot of fun to be had in the combination of knobs and logic. Mylar Melodies too has some thoughts on Why Logic Modules are Ace!

Robert Syrett orginally posted the DivKid video on the Audulus forum in connection with the uWindow module he based on the Compare 2, and, since it’s a little different to the comparator, I thought it also would be worthwhile to go through the steps of putting together a Schmitt Trigger.

I’ve posted my versions of the ANN submodules on the Audulus forum along with some demos.