Hardsync

Author: Rob Hordijk

 

The designers of the Clavia Nord Modular family choose to do things a little different from the pure analog way. The main difference being the moment when a period of a waveform is ‘officially’ started. We have seen with the analog oscillators that a sawtooth waveform starts with the transient. That moment the signal is maximum positive or minimum negative, depending on if it ramps down or up. On the Modular’s oscillators any waveform starts on zero level and starts to ramp up. This means that only a square waveform period is started at a transient, a sawtooth waveform period is ‘officially’ started when the ramp-up phase goes through the zero line, in time half way between two transients. Also the synchronizing moment is not on a transient in the synchronizing oscillators’ waveform but on the zero-crossing moment. This has the advantage that the Nord’s oscillators can sync on any signal, even a sinewave, but it also results in a slightly more irregular sweep as in the analog example. This becomes more apparent when mixing the syncing and the synced waveforms together in one way or another. Another thing to take into account is that when the synced waveform restarts, the syncing waveform’s value is not at maximum or at minimum as with their analog counterparts, it is not even at zero, but it is at a value between zero and it’s maximum value. This value is arbitrary, as the waveform is interpolated. This can cause unwanted ‘glitches’ in some applications of oscillator sync where the two waveforms are combined.

Applications of oscillator sync on the Nord Modular family.

After all this theoretical technobabble, we wil now look at some applications of oscillator sync. There are four oscillator types that have sync inputs, and as mentioned before they are all of the ‘hard’ type, but also with the restrictions we mentioned before. These modules are OSC A, OSC Slave A, OSC Sine Bank and OSC Slave FM.

It is a good idea to record the sound from the examples with your soundcard into your PC, so you can see the waveforms in your wave editor program.

Suppose we want a sweeping square sync sound, but we want full control over the beginpoint and the endpoint of the sweep. The sweep is controlled by it’s own AR module. Also we want to use as little DSP processingpower as possible.

First note that for this example (and most other sync patches) there is not much point in having the pitch of the synced oscillator lower than the pitch of the syncing oscillator. As we are into cheapness (DSP-wise) we are going to use Sine Master Oscillator module and an OSC Slave A module. Connect the output of the first slave to the sync input of the second slave. Connect the grey Slv output of the Master Oscillator to the grey Mst input of the first slave oscillator.

Also it doesn’t pay off to set the pitch of the synced slave oscillator too high, as that will generate lot’s of aliasing in the sound. So say sixteen times higher than the syncing oscillator is sufficient. Now we can apply a trick. We have an Amplifier module that is capable of controlling the level of a signal between 25% and 400%. We will insert such a module between the grey Slv output of the Master Oscillator and the grey Mst input of the synced oscillator.

Set the detune of the synced oscillator to 4:1 partials. If we reduce the Amplifier setting to 25% the frequency of the Synced oscillator will be 25% of 4 times the masters frequency value. That‘s the masteroscillator’s frequency value, the same frequency as the syncing oscillator. But when the Amplifier setting is increased to 400% then we get 400% of 4 times the masters frequency, resulting in sixteen times the frequency of the syncing oscillator. So with an amplifier module in the mastersignal patch we can comfortably control the pitch-sweep from 1:1 to 16:0.

But we want to make this controllable by a blue control signal from a LFO or an ADSR module. To do this we add an extra Amplifier and a X-Fade with modulator module.

When connecting as shown we can set two boundaries for the sweep with the two amplifier modules, and with the X-Fade module we can conveniently sweep between these boundaries with a controlsignal like from an AD module. Assigning the two amplifiers to knobs gives us the control that we wanted in this example.

Note that it wouldn’t matter which waveform we use in the syncing oscillator. That will not change the synced oscillators waveform.

At some settings we might hear some jitter in the sound. This is due to the fact that as the oscillators’ audio outputs are interpolated in relation to the system’s samplerate to achieve a jitterfree sound themselves, the restart of the synced oscillator does start on the first systemsample after the syncing oscillators waveform crosses the zero line. This makes the syncpoint jitter in relation to the point where the first waveform crosses zero, as that point almost always lies between two systemsamples. Adding a filter will reduce this jitter, but it is better to try to suppress this glitch in a way that we will see later.

Now we want to incorporate pulsewidth modulation in our patch. We are bound to use Osc A, as the others don’t have PWM. Especially on a MicroMod that’s a pity as OscA is expensive in terms of DSP usage, it’s our most expensive oscillator. Here is an example of combining PWM with sweeped syncing.

If we want to control the sync between two controllable boundaries like in example 1 we need to use two Constant modules instead of the Amplifier modules. It is like this:

After these examples it’s time to experiment yourself with different waveforms, adding LFO’s, filters, ADSR’s, Sequencer modules, etc.

A tip to add some fundamental to the sound is to add a filter like in the following example. The filter is set to highpass with a relatively high resonance. The resonance is tuned to the fundamental frequency of the syncing oscillator. As the highpass setting will pass all audio above the fundamental frequency and boost the fundamental due to the high resonance setting a fatter bass is achieved.