Hordijk Sync Oscillator

Here’s my first tryout patch exploring Rob Hordijk’s sync oscillator, in particular the masking feature he describes in the video below.

The first step in syncing the oscillators was to invert the syncing sawtooth so that the synced waveform shares its transient with the sawtooth. If the two Audulus oscillator nodes are synced directly, the transient of the synced oscillator will appear in the middle of the syncing oscillator’s sawtooth. Since the synced oscillator is reset whenever the input crosses zero from below, the rising slope of the sawtooth resets the synced waveform when it (the sawtooth) reaches its zero midpoint. With the inverted sawtooth the slope crosses zero from above and doesn’t reset the oscillator until is crosses from below at the point of the transient.

I was particularly intrigued by the masking feature Hordijk describes in the video. In this case the inverted sawtooth is converted to a unipolar, positive only, waveform and used as an envelope applied to the synced oscillator. This means that the transients of the synced waveform correspond to the zero point of the envelope and, importantly, are always the same size – effectively reducing that unwanted side-effect of the introduced transients.

Some more information on the masking technique can be found in one of Hordijk’s tutorials for the Nord Modular, as well as on his own site. As the Nord tutorial points out, the masking, while smoothing out the transients, also introduces a distortion of it’s own, and suggests crossfading between two versions of the synced waveform slightly out of phase with each other in order to minimize this side-effect.

In the case of this tryout I’ve kept things simple. I find the masking particularly effective in the case of the triangle wave – it’s interesting to compare it with a version in which the inverted envelope is replaced by a straight 1 for the amplitude input on the oscillator. With the sawtooth the mask side-effects are more noticeable and since there are so many transients in the wave already I find it somewhat smoother to simply set the amplitude of the synced sawtooth to 1. Using a mask for the amplitude does however make for a smoother crossfade between the triangle and sawtooth waves and also allows for some interesting effects at low frequencies where the envelope is more apparent as an envelope.

RH-RM OSC Sync Tryout.audulus (40.4 KB)


:grin: Excellent.

1 Like

This is a good way to model resonance also :slight_smile:

1 Like

I’ve put together a full version of the Hordijk Sync Oscillator. As usual Hordijk has taken things a step further and turned the irregular transients that were smoothed out with the masking technique, to good use. The transient heights are captured with a sample and hold circuit, and can then be fed back to either the synced oscillator (which generates the well known S&H random pitch texture) or the syncing oscillator (which will change the rate at which the pitches are generated). The combination of the recursive pitch and tempo modulation means that Krell or Rungler-like textures (venturing into noise territory) can easily be generated.

RH-RM OSC Sync S&H Tryout.audulus (151.9 KB)

Rob Hordijk provides a nice explanation of how the (true) randomness is generated in his NOVARS tutorial on the oscillator (see above).

An additional aspect is the inclusion of a subsquare divider which can be used to modulate the synced oscillator on every alternate sync cycle. This can be used for the creation of vowel like effects, as well as adding a little bottom end to the synced sounds.

The sample and hold signal can also be applied to the subsquare modulation and the sync sawtooth, subsquare and S&H signals also have their own outputs.

RH-RM OSC Sync Vowel Tryout.audulus (93.9 KB)

(I experimented a little with tracking between the syncing and synced oscillators, but have left it out for now – the Audulus version seems simpler to use and I was having more fun without it.)


Of course, once one starts to sequence the oscillator, tracking the pitch between the two oscillators becomes necessary/desirable. Here’s version 1.1 with an added tracking switch as well as an extra input so that external modulation can be sent to the sample and hold: There are also some interesting effects that can be achieved with that. (In the absence of normalized inputs the there’s also the internal output to connect to the S&H input when using the internal signal.)

RH-RM OSC Sync Sub Seq Tryout.audulus (448.7 KB)

RH-RM OSC Sync Seq Tracking Tryout.audulus (464.2 KB)


Here are two patches demonstrating use of an external modulation source for the sample and hold input, in which it’s interesting to compare the difference between connecting the modulation directly to the sync mod input or routing it via the S&H.

The first pings the TwinPeak filter with low pulses – it’s also fun to change the tracking setting for different timbral results.

RH-RM OSC SYNC Ext Mod Low Pings.audulus (206.8 KB)

The second creates an arpeggiator like effect. In this one it can be fun to turn up the modulation dial and/or add some sub modulation.

RH-RM OSC SYNC Ext Mod S&H Arp.audulus (104.0 KB)

Rob Hordijk explains it all in this video:


An Audulus 4 Update of the above.

RH-RM OSC SYNC v2.0 Seq Demo.audulus4 (213.2 KB

RH-RM OSC SYNC v2.0 Vowel Demo.audulus4 (50.5 KB)

RH-RM OSC SYNC v2.0 S&H ARP Demo.audulus4 (54.0 KB)