Stuck with a SynthEdit project?

Tag: Effects

Making a Saturator.

A Saturator is a good way of adding a bit of colour and “oomph” to a bass or lead synth line, but how can we make one in SynthEdit?
What we want to do is not to introduce hard clipping to the signal, that would be too noticeable we are after something more subtle that just adds a few more harmonics to the signal.

Creating a basic saturator.

The core part of this module is the waveshaper, and for saturation we use the formula 5*tanh(x). The idea is not to clip the peaks of the waveform, but to try and emulate the sound of a slightly overloaded (or saturated) valve pre-amplifier which tanh(x) does quite well.
This formula applies tanh to the input signal, and then multiplying the result of the tanh(x) calculation by 5 restores the output to the normalized +/- 5 Volts peak to peak. The VCA on the input of the waveshaper controls the level of signal passing through the waveshaper, and being applied to the output mixer.
The inverter and divider are used to keep the output level as constant as I could, this works by inverting the slider voltage from the waveshaper VCA’s volume control and applying it to the Volume control. The adjusted negative voltage then reduces the gain of the output VCA as the Waveshaper signal is increased in level . The optimum division value seems to be 2.3 Volts (but may need “tweaking” slightly). The input VCA has its response set to Exponential, and the output VCA is set for a linear response, I found this gave the best results with signal levels.
The input level control is set to have a range of 0 to 20 so that we have plenty of gain. This is the only non-standard min-max range on the controls.

A basic stereo saturator structure.

The output with no saturation applied:
The signal is passed directly to the output VCA and is a pure sine wave with no added harmonics.

No saturation

The output with maximum saturation applied:
Here you can see that once we pass the signal through the waveshaper the sine wave peaks have been reduced smoothly which increases the level of harmonics without introducing too much harshness into the output. The higher the level of signal passed through the waveshaper the more harmonics we generate.

100% Saturation.

To give a bit more control over the audio I have added a TD Stereo EQ module, that gives us the options of Low Shelf boost/cut, Band boost/cut and High Shelf boost/cut.

The whole structure…

The finished Saturator project with its panel layout and links to the 3rd party modules, prefab and VST3.

My final panel layout

I have made the finished project available as a V1.5 .seprefeab file and as a completed VST3 plug-in. However you will need some extra 3rd party modules from TD Modules, Sasha (Sorry, if you don’t already have the Sasha modules they are no longer available-he has left the community and deleted his website), and Davidson.

Changing the Harmonic structure.

By adding in the (highlighted) inputs to the Waveshaper modules we can offset the equation, causing the addition of odd as well as even harmonics. All it needs is for this offset Plug in the IO Module to be connected to a suitable control then we can control the amount of odd harmonics that are added to the signal by changing the offset voltage. I would suggest that a range of 0 Volts to +4 volts is a suitable range for the offset (negative voltages have the same result).
The High pass filters are added to prevent DC from the offset appearing in the output, and can be set to an appropriate frequency such as 14 Hz to minimize any changes in the output signal.
Here is a link to the Thoracious prefab version V1.5 seprefab file

Below is the spectrum with 0 volts offset.

No offset.

Compared with an offset of 1 Volt

1 volt offset.


This was a modification suggested by Thoracious Apotite, https://www.thoracius.com/ in the comments. Many thanks Thoracious! Comments such as this are always welcome.

Rectifier module.

This module flips negative voltages to positive, whilst leaving positive voltages unchanged. Behaves exactly as a “real world” bridge (full wave) rectifier.

Plugs.
Left Hand Side:

Signal in:- (Voltage) Input signal (AC)

Right Hand Side:
Signal Out:- (Voltage) Output signal

Example below: (The fixed voltages are just used to provide offset for the scope “Beams” for clarity)

This is a “Full Wave” rectifier, which passes the positive cycle, and flips the negative half over to become positive, suppose we just want a half wave rectifier? That is one that passes the positive cycles, and blocks the negative?

To create a Half wave rectifier that can output either a positive or negative output we can use the structure below. The comparator only passes an output signal when the input signal is positive by using the comparator to “gate” the Level Adj module. Inverter 2 is added to “flip” the polarity from +ve output pulses to -ve output pulses.