Softsync

Author: Rob Hordijk

As mentioned in the introduction there are no oscillator modules with a softsync input. But softsync can easily be created on the slave oscillator family. As said before softsync makes the waveform reverse it's direction. To understand how we can do that on a slave oscillator we first need to know something about the grey slave signal. In the Nord's manual you won't find much information about this type of signal. It only says that it is used to make a slave oscillator module exactly follow a master oscillator module. So here's some more info.

A master oscillators grey Slv output generates a signal between 0 and 128 "Clavia units". The grey Mst input on a slave oscillator however can accept a signal between -128 and 128 units. When the output of a Constant Module is connected to the grey input of a slave oscillator you will notice that at a value of 0 the oscillator is silent. The frequency is actually zero. When raising the value slowly you will hear the frequency increase in a linear way similar to the Volt/Hz signals on some analog synths. The signal directly feeds the oscillating part of the oscillator module. As the grey input has a linear frequencycurve it is of no use to connect it to the keyboard module. The frequencies generated are not tuned to any usable scale. Only the grey Slv output of a master oscillator produces a signal that will keep the slave oscillator in tune. When we feed a particular negative value from the Constant Module to the grey Mst input, the slave oscillator will generate the same frequency as with the same positive value. Well, actually almost the same. But if the output signal was to be examined on an oscilloscope or if you make a recording with your soundcard into your computer you will see that a sawwave is reversed. Normally the sawwave slopes up, but with a negative value at the Mst input it slopes down. This is actually true for all waveforms, only on a sawwave it's easily noticed. And this is what we were looking for, a way to reverse the waveform in the rhythm of another oscillator.

To softsync a slave oscillator we have to modulate the grey slave signal in such a way that it switches between the normal and a negated normal grey signal in the rhytm of another oscillator. Multiplication in a Gain Controller module with 64 units is equal to a multiplication with a factor one, the signal is neither attenuated or amplified. Multiplication with -64 units negates the signal. Luckily the squarewaves on OSC A, OSC B and OSC Slave B alternate between -64 and 64 units, so all we have to do is multiply the grey signal in a Gain Controller with the squarewave from one of these three oscillatortypes. Note that the squarewave output on OSC Slave A alternates between only -32 and 32 units!

Here is the basic softsync patch:

By playing with the Partials or Detune knobs on the Synced OSC we can control the sync effect. As you can hear it sounds especially smooth with a triangle wave, smoother that hardsync, as with a trianglewave no strong transients are generated with softsync. Still there's that typical sync character in the sound. With softsync we won't work with trasients or zero-crossings at all!

We hear a slight phasing in the sound, this is due to the fact that digital calculations always have some sort of roundoff errors somewhere. The fast multiplication used in "fixed-point" DSP's has the feature that there is a very slight error when negating a signal. This results in the negative frequency being "almost the same" as the positive frequency. This causes a drift, not unlike the traditional analog oscillators. IMHO this is a nice feature as it breaths some life into the exact nature of digital sound. If this however is unwanted it can be compensated for in two ways. First we can connect the hardsync input to the Syncing OSC's output, this is not always what we want if we are going to do some more elaborate things with softsync. We could also try to do the multiplication in a different way at the cost of some more modules. But for now we like the effect, being so analoglike and concentrate on getting some more control over the syncsweep. Later on we will even make the speed of this phasing controllable.

First let's see what happens if we swap the signals inputs of the Gain Controller and press the shiftbutton on the Gain Controller. This alternates the grey signal between it's original value and zero value. This will stop and start the oscillator in the rhytm of the syncing OSC. Audibly this halves the frequency of the Synced OSC generating a suboctave form a squarewave.

To keep in sync with the Syncing OSC we can only use the Partials setting. Setting the partials to an uneven number gives a suboctave, setting it to an even number sets the frequency to that of the Syncing OSC. So a smooth sweep is not possible with this connection if the shiftbutton is pressed.

We go back to the first patch and see if we can control the phasing in the sound. The phasing is due to the fact that the syncing signal is not absolutely symmetrical between it's positive and negative value. We can increase the phasing's speed by adding a very little Constant amount to the syncing signal like in the following example. This gives an effect a bit like PWM to the sound. The speed of the phasing is independent of the pitch played on the keyboard, but increases if Detune the Synced OSC to a higher setting. Set the mixerknob to with the constant signal is connected between 1 to 8 for a smooth phasing.

It's time to add some "blue signal" control to sweep the softsync sound by a LFO, Envelope, etc. We do this by first amplifying the (at normal frequencies relatively of low value) grey signal by a factor 16, using two Amplifier modules in a row. Then we crossfade with a X-fade module between the original grey value and the amplified value. If we do this before the multiplication with the squarewave the setting will not influence the speed of the phasemodulation we introduced in the previous example.

The OSC B oscillator module we use to generate both the squarewave and the grey signal has a PW control input, and as the squarewave can be PW modulated let's see what happens if we do so. Add a simple triangle LFO and connect it to the PW input, you can hear the PWM sounds like a stong formant that is swept through the sound.

Combining all the softsync features, like the syncsweep, the phasing and the PWM on the Syncing OSC we can e.g. relatively cheap make patches that combine syncsound characteristics with the character of e.g. a mildly distorting electric guitar preamp, as in the following patch.

FM-Sync

Up to now we have only used a squarewave on the Syncing OSC as this gives the traditional softsync as explained in the previous examples. But what if we use other waveforms? If we do so we enter another territory, namely that of audio FM. As the grey input controls frequency it must be FM. But why work with the grey input if we already have oscillators with both FMA and FMB inputs? Well, there are several things we can do with the grey input that are not possible with the FMA input and the FMB input. Let's first look at what happens if we use a sinewave on both the Syncing OSC and the Synced OSC. As we always go for cheapness we abandon the OSC B and OSC Slave A oscillators and use an OSC C and an OSC Slave E pair instead.

Normally we would connect the grey Slv output to the grey Mst output and connect the output of the first oscillator to the FMA or FMB input of the second oscillator. The output level of the first oscillator or FMA and FMB knob would control the tone. Drawback is that if you set the Detune of the second oscillator to a broken number the frequency will become strongly inharmonic.

In our method we do something else. With a Constant module we control the output level of the first oscillator whose output goes directly into the grey Mst input of the second oscillator. Turning the Tone control knob generates that typical FM sound, but no matter how we set the Detune control on the second oscillator the sound will not get inharmonic. Instead the second oscillator is tightly synced to the first one. Playing keys all over the keyboard will reveal that there are formants in the sound that do not appear to track the pitchchanges. That's because we actually have fixed formants in our sound. The formants do change level with different pitches, that can be heard, but they stay put on their position in the spectrum as long as the pitch is lower than the formantfrequency. This type of FM is also used in the new breed of FormantFM synths made by some Japanese company.

Our connection has the following features, frequency is determined only by the Syncing OSC so the sound can never become inharmonic, the sound contains fixed formants and the signallevel at the Synced OSC grey Mst input determines the position of those formants in the soundspectrum. By now it should be clear that setting the output of the Syncing OSC to zero will silence the Synced oscillator.

The advantage of these patchconnections is that we have independent control over both sound and pitch without these controls influencing eachother, whereas in the traditional way the frequencysetting on the second oscillator influences both the sound and the pitch, making the sound inharmonic if the frequencyratio between the two oscillators is not made of whole numbers.

Strangely enough, if we connect the output of the Syncing OSC to the FMA input of the Synced OSC opening the FMA knob will have the same sonic effect as increasing the level on the grey input or Detuning the Synced OSC. Actually these three controls control the same parameter in the sounds timbre, but don't worry, we won't prove that mathematically, it's just that you know.

Let's remove the second oscillator and replace it with that versatile SineBank, and make a complex spectrum with up to six formant area's. An additional connecting of the Syncing OSC's output to the mix input on the SineBank adds more fundamental to the sound. Beware however that the SineBank can easily cause a clipped sound if all level controls are at maximum. A safe setting when using all six sines, is to set the level controls to a setting of 80. At those settings clipping is just not possible, even if all the phases of the sines collide.

Each sine generates a formant and we can add control over each one by the corresponding AM inputs on the SineBank oscillator, e.g. with the keyboardscaler module, LFO's, Envelopes, sequencers, etc.

In the following example we included the controllable phasing from the previous examples to breath some more life into the timbre.

What's in a name

Whether our method should be categorised under FM or oscillator sync is not so clear, as it shows features of both FM and sync. The type of sound and the way the sound changes when adjusting the tone controlling parameters sounds very much FM-like, but the second oscillator is always in tune to the first, no matter how we detune it, and that is a clear oscillator synchronisation feature not exhibited by traditional FM. So it's a hybrid form combining the best of both worlds with the added feature of fixed formant possibilities.

Let's look how we can make the formants glide along with the pitch and make it controllable like in the softsync examples. To do this we just take the first softsync example but use sinewaves. Let's immediate add the sweep and phasing controls, and add some more modulation just for fun.

We can simplify the tone control at the expense of some flexibility if the grey Slv output on the Syncing OSC (if it's a OSC E type) is directly connected to the AM input of the same module. Additionally we can use more than one oscillator to drive the Synced OSC grey input. This way we can make very DSP-cheap FM-like patches with all the advantages of our method. Electric piano-like patches with as much as six voices can easily be achieved on a MicroModular, like the following example.

Or use it in soundeffect patches like the following.

Audio input

Using audio input from the real world can give very interesting results. Here is an example where the audio input is used to drive the synced oscillators grey inputs. Remember that what actually happens is that the audio input signal FM modulates the frequency of a signal with a basic frequency of 0 Hz. As this happens symmetrically around 0 Hz we end up with a waveform that has the same frequency as the input signal, but sounds more or less distorted, dependend of the overall level of the signal at the grey input. This more or less holds for single notes from e.g. a guitar, your voice or percussive sounds, but chords will give a very complex FM-like drone as there is no one single frequency to track.

Here's the patch:

The audio inputs have some DC offset that would influence the basic frequency. This DC offset should be compensated for. Note that this offset is different for every machine. You can test the offset settings for your machine once and use it in all your patches. The best way to find these DC offset compensation values is to set the partials setting of the synced oscillator as high as possible and tune the DC Adjust constant value until the heard frequency is as low as possible. Note that for this test the Noise Gate compare level should temporarily be set to 0!

After the DC adjustment there is a noise gate. The output of and EnvFollower module is compared to a constant value. If the EnvFollower's output value is smaller than 1 we assume that there is no signal, only noise and the next Envelope module blocks the input signal. The Amp input of the envelope module is used to control the level of the signal that is fed to the synced oscillators grey signal, and so the value at this input controls the intensity of the effect.

There is three possibilities to to control the output level, 1) by using a constant level of value 64 derived from the output of a switch module in it's ON position, giving a fairly constant outputlevel, 2) by using the output of the EnvFollower, which makes the outputlevel of the whole effect follow the input signal's loudness contour or 3) by feeding the input signal to the Amp input of the Envelope module, which ringmodulates the audio input with the signal generated by the synced oscillator. A fourpole throwswitch module is used to set the effect to on of these three types. On the synced oscillator we can additionally choose one of the four available waveforms, sinewaves and trianglewave will generally give the best results.