Modular Diary

I’ve taken a few extra steps with my Audulus version of the Hordijk OSC SYNC. As much as I’d enjoyed the wide range that came with not having any tracking between the syncing and synced oscillators, I realized of course that as soon as sequencing is introduced, tracking becomes desirable/necessary. Along with a tracking switch allowing selection between full, 2/3, or 1/3 (around ‘c.v.’ = zero as a reference point), I also added an external input for the sample and hold. 1

Using external modulation with the S&H allows for some interesting effects. I’ve uploaded two demo patches to the Audulus forum: In the first the TwinPeak filter is pinged with low pulses creating a resonant percussive sounds. It’s fun to explore the different timbral results that can be obtained by simply changing the tracking setting. The second patch creates an arpeggiator like effect – with this one it can be fun to turn up the modulation dial and/or add some subsquare modulation.

It’s also possible to achieve some granular-like effects with external modulation on the S&H – as Rob Hordijk demonstrates in this video.

  1. In the absence of normalized inputs in Audulus there’s also the output that needs to be connected to the S&H input when using the internal signal. 

Modular Diary

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 random S&H pitch effect) or the syncing oscillator (which will change the rate at which the pitches are generated). The combination of the recursive pitch and tempo modulations means that Krell or Rungler-like textures (venturing into noise territory) can easily be generated.

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

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.

I’ve uploaded two demo patches to the Audulus forum.

Modular Diary

I’ve put together a first tryout patch exploring Rob Hordijk’s sync oscillator, in particular the masking feature he describes in his NOVARS video tutorial on the module.

The first step in syncing the two 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 transient points 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 setting the amplitude to full 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 a fixed amplitude for the synced sawtooth. 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.

I’ve uploaded the patch to the Audulus forum.

Modular Diary

I’ve put together a new version of the Hordijk Dual Envelope with updated internals – this time with envelope A placed on the right. Since the ADBDR modulation inputs will probably mostly be run via the S&H, it seemed more practical to avoid having the internal patching cross over the knobs too much. I found myself sometimes inadvertently attaching the S&H output to the knobs themselves as I attempted to detach it from the modulation inputs with the previous UI.

The patch is available on the Audulus forum.

Modular Diary

Here’s envelope B from the Hordijk Dual Envelope generator, updated as with envelope A, as a little standalone module.

The repeat mode makes for some interesting rhythmic possibilities: On its own, without an incoming gate but with modulation on the attack or release, irregularly fluctuating rhythms can easily be set up. Alternatively, when used in conjunction with incoming gate pulses, slight anticipations or ‘off’ beats that don’t exactly fit the clock grid can be created.

I’ve uploaded a demo patch to the Audulus forum.
Toggle the master clock in the patch to get an idea of how it works.

Modular Diary

It’s taken some time, but I’ve managed to get a little closer to the curves I was aiming for with my version of the Hordijk ADBDR envelope generator.

My approach has been to sample the value of the release or decay curve at the moment a new gate pulse arrives, and use that as the starting point for the next attack. (In trigger mode gate pulses arriving before the attack phase has completed are ignored.) In @stschoen’s original uLope modules this was efficiently achieved by using the addition node to add the attack to the release curve, with the disadvantage though of sudden jumps should a new attack arrive during one of the decay phases.

Sampling the value and crossfading between the first and last part of the envelope introduces some tricky timing issues (which I’ve solved by adding an extra timer for the sampled end/start values and introducing a very small delay before the attack phase timer kicks in). One the other hand, having a sampled start value for the attack not only makes it possible to have it pick up on the value of a potential preceding decay phase, but also scale the amount of time allocated to the attack according to the height available, i.e. the higher the attack point starts (depending on the level of the previous decay or release) the shorter the attack time. This also keeps attacks in quick succession that ‘build’ the overall volume from overshooting the top value of 1.

The result is an ADBDR envelope that can be re-triggered at any moment in gate mode, or any moment after the attack in trigger mode. In gate mode the release kicks in as the gate ends, while in trigger mode it’s independent.

Small glitches can still occur from time to time when pushing the envelopes to extremes and I’ve added a low pass filter in an attempt to smooth them out. Generally it seems to be usable though. The next step is to add build it into the Dual Envelope module.

The patch can be found on the Audulus forum.

Modular Diary

I’ve packed the modified uLope sub-stages into a module that more closely resembles the ADBDR envelope in Hordijk’s Dual Envelope generator.

One of the innovations in his design lies in replacing the sustain section with second decay stage that can slowly taper off, thus allowing for more ‘natural’ sounding contours. With the decay knob turned all the way up, a conventional flat sustain can be achieved. The second decay is also preceded by a break setting that adjusts how far the first decay falls. The resulting shapes are perhaps most easily understood by taking a look at the diagrams in Hordijk’s schematic.

Each stage also has a modulation input that adds to the values set by the knobs. Since modulation is most effective when the pitch of the modulating waveform is lower than the one being modulated, a sample & hold has been included. Hordijk provides a nice explanation of this technique in one of his NOVARS tutorial videos.

The patch can be found on the Audulus forum.

Modular Diary

I’ve made a further modification to Stephen Schoen’s uLope so that sustain modules can also be added to the envelope chain with the trigger mode activated.

Before I pack it into a module that more closely resembles Hordijk’s design, it’s fun to have all the controls available to experiment with. For example, by setting the first sustain module in the chain to a lower level than the one that follows, it’s possible to achieve a secondary attack-like phase with a resulting ‘reverse’ effect. It’s also interesting to play with the degree to which the curves are logarithmic or exponential, finding the sweet spots for what sounds ‘natural’ – at least in relation to what we know from acoustic instruments.

I’ve uploaded some patches to the Audulus forum.

Modular Diary

I’ve made a small start on putting together an Audulus version of the Hordijk Dual Envelope generator.

Hordijk mentions in one of his videos that designing an envelope generator is perhaps the most difficult of all the modules in that there are so many possibilities to consider, and that certainly rings true as I’ve begun to explore it.

In this first small patch I’ve adapted some of Stephen Schoen’s uLope modules to include a trigger mode – i.e. the attack time of the envelope is independent of the gate time. This means that a short trigger can result in a long attack swell, or a short attack can be triggered with a broad gate. It’s a simple feature that opens up a number of possibilities. With the attack time set to longer than the clock rate the envelope generator can suddenly starts to function as a kind of clock divider, as Hordijk points out in his NOVARS tutorial video. With in-between settings, e.g. with the gate setting in before the release stage has completed, interesting rhythmic effects can arise.

I’ve uploaded the patch to the Audulus forum.

Modular Diary

Further details on the frequency shifter all-pass filter network:

If one was only dealing with two (sine) frequencies it would be possible to use a single all-pass filter and adjust the cutoff point accordingly. However given that ring modulation typically produces multiple frequencies (especially when applied to a complex input signal) a network of filters is needed to cover the entire audible frequency range.

My first searches on the web brought me across Hordijk’s Frequency Shifting patch for the Nord G2 Modular, as well as Jürgen Haible’s descriptions and schematic drawings which filled in a little more detail on the Hilbert transform filter network. Fortunately I also came across an article on Analog Wide Band Audio Phase Shift Networks with a diagram (see fig. 4) and a table of frequencies that I could use as a point of departure.

Via Don Tillman’s collection of Moog Patents I could download a PDF of the Bode Frequency Shifter that Moog produced in the early 70s. That helped fill in the final pieces of the puzzle, showing how the sine/cosine oscillator (which I’d already encountered in Hordijk’s Harmonic Oscillator) connects up with the Hilbert filter network (or ‘Dome Filter’ in Moog parlance) to enable the ring modulation and phase cancellations.

I’ve uploaded a few demos to the Audulus Forum.