Stuck with a SynthEdit project?

Tag: PM Cross Modulation

Cross Modulation VCO.

What is cross modulation?

Have a look at the simplified diagram below. We have two Oscillators, and two Amplifiers. Normally with an “FM” VCO we would phase modulate (PM) first oscillator with the audio output of second oscillator, so far nothing out of the ordinary.
If you look closely at the diagram the Oscillators are arranged so that Oscillator 2 phase modulates Oscillator 1, but here comes the “twist”, we now take the output of Oscillator 1 and phase modulate oscillator 2 with this signal.

If this seems a little confusing, I have highlighted each feedback loop below. The loop from Osc 1 to Osc 2 is in Red, and the loop from Osc 2 to Osc 1 is in green.
A you can imagine this opens up a whole new world of sonic possibilities, from musical to abstract noises more like distorted noise.

The only issue here is (and this is why I chose red for the loop from Osc 1 to Osc 2) that Synthedit will see this as a feedback loop and complain. This means we can never get a 100% accurate emulation of Cross Mod in Synthedit. The Feedback loop needs a special module which introduces a very short delay, in this usage I measured about 2mS.

A Cross-Modulation VCO in SynthEdit.

The main thing to note here is the Feedback-Volts module in the PM loop between the output of Oscilator 1 (top) and Oscillator 2 (bottom). This does mean that there is small delay in the feedback loop, so as I have previously said it’s not a truly 100% accurate feedback loop, but close enough for our purposes. The Third Level Adj module is just used as a means of switching between PM from Oscillator 2 to Oscillator 1, and full Cross Modulation between the oscillators.
The AM Level, and Mod Level Adj modules are used to add an AM modultaion facility into the oscillator.
Using the Phase Offset 2 Input we can also introduce a static phase difference between the oscillators to further increase the sounds available.
The Sync inputs are used along with the DCO setting on the oscillators so that triggering a new note starts the oscillators in the same phase relationship every-time a new note is played.

The complete Crossmod VCO

The Test Bed.

I used the setup below to test the concept. To keep the feedback under control I set the the maximum value on the push button to 3 rather than the default 10. The phase offset slider needs to be changed from it’s default 0 to 10 setting to -5 to +5.
There is no waveform selection in use (as with with all FM/PM setups it’s far better to use sine waves…anything else quickly gets out of control). You can if you want, but it’s really not worth it, the sounds of cross-modded pulse or sawtooth is at best ugly.

Testing the Crossmod Os
cillator

Complex Oscillator.

Complex Voltage Controlled Oscillator.

This is quite a complex project, so I will have uploaded a prefab to the files section of the groups.io website to study and experiment on. There are three Oscillators, all of which can morph between three wave-shapes; Sine, Triangle and Saw, the second Oscillator also has an audio output, but the third is purely for modulation of the other two oscillators.

The idea was to emulate (but not closely copy) the type of oscillators found in Buchla and some other types of (Eurorack?) modular synthesizers. It can produce a wide variety of output wave-shapes by using morphing between waveshapes, and using a mixture of AM and PM cross modulation. The sounds produced can vary between subtle harmonic changes, FM type sounds and some harsher, grating, metallic (less musical?) sounds.

Third party Modules.

There are a few third party modules in here:
Elena Modules 1D Morph (No stock Equivalent)
TD Modules RingMod Diode (This could be replaced with the stock Ring Modulator), but the sound is slightly different).
The HD Oscillators are available from the community modules section on the SynthEdit website.

The morphing oscillators.

This is comprised of three HD Oscillators, all on the same pitch, which are left on pre-selected wave shapes; Sine, Triangle, and Sawtooth. The oscillator outputs are fed directly into an ED Morph 1D module which has the response setting Linear. This allows us to smoothly morph between the tree wave shapes. Leave the Oscillator reset mode on the DCO setting.

The 3 Way X-mod container.

This allows Oscillators 1, 2 and 3 to cross modulate their amplitudes by subtracting the output of oscillator 3 from the output of oscillator 2, then subtracting this signal from the output of Oscillator 1.
Cross modulating the amplitudes of Oscillators 1 and 2, also Oscillators 2 and 3 is performed using TD RingmodDiode modules.

The complete Complex Oscillator.

Oscillator 1 is phase modulated by Oscillator 2 and 3, the PM amount is variable.
Oscillator 1 is amplitude modulated by Oscillator 2, the AM amount is variable.
Oscillator 2 is amplitude modulated by Oscillator 3, the AM amount is variable.
Oscillators 2 and 3 can amplitude modulate Oscillator 1 together, the AM amount is variable.
The start phase for all three morph oscillators can be set individually.
All Oscillators can be Synchronized by a trigger pulse from the keyboard. This ensures that the output of the Complex Oscillator will be the same for each key-press on the keyboard. If you want variations is the sound for ech note played the Keyboard Sync can be turned off.
The Octaves Of Oscillators 2 and 3 can be set above or below the pitch of Oscillator 1.
Note about PM: Taking Phase Modulation to extreme levels and using wave-shapes with a sharp rise/fall time will cause a lot of high frequency harmonics, and quite possibly some aliasing by-products at the output.

Taking the Complex Oscillator further.

Of course being a VCO we will want to apply voltage control to some of these functions to allow further mangling of the wave-shapes, feel free to experiment, but I will be adding a new post on an updated Version 2 of this project in the near future.

My panel layout.

A few of the possible wave-shapes that can be obtained from the Complex Oscillator are shown below.