Stuck with a SynthEdit project?

Tag: Waveshaping

ED Soft Clip module.

There are other soft clip modules, but after a little experimenting I found with Elena’s module it’s easier to keep a constant output level as you change the amount of clipping. This module can go from soft and very subtle overdrive to full on distortion.


These are Elena’s “Read Me” instructions:

The Soft Clip module.

As you can see from the structure the module itself is a simple one with just three plugs:
Input: This is our audio input voltage. As usual we want the usual (normalized) range of +/- 5 V
K: The amount of soft clipping applied. 0 to 10 V is allowed, but I found it best to stick to a maximum of 9.7 V to avoid quite noticeable aliasing.
Output: This is the modified audio signal. This level does vary with the value sent to the k plug, but this can easily be adjusted.

Testing the Soft Clip.

The structure is my test bed.
Symmetry:
I added a DC voltage to the Input plug to see what the effect would be, and it does produce some useful asymmetry in the output waveform, +/- 5V is a useful range to use.
Clip range:
It’s best not to go over 9.7 V on the k plug as you’ll get some very noticeable and nasty sounding aliasing by products.
DC Removal:
As I’m using a DC offset to control the symmetry of the effect, it’s necessary to remove the DC component added at the output with a 1 pole HPF set to 20Hz, as this would cause problems for other modules further down the signal chain.
Keeping things level:
It’s always nice not to have unexpected changes in volume when increasing the amount of an effect like this. As with most soft clip modules the output changes quite noticeably as the “clip” or k voltage increases. With Elena’s module its quite easy. All we need do is take the voltage from the clip slider, feed it through a Divide module set to /2, and invert the resulting voltage. This is then fed to Input 2 of the Level Adj module, along with a fixed +10 V offset. The voltage from the inverter is then subtracted from the offset reducing the gain as the k voltage is increased.

As you can see the only variations in output level come about when asymmetry is applied which with the current setup is only to be expected.

A working distortion effect.

All that’s needed for a basic effect is to add an input, and a gain control stage. If course you could go further and add filtering, tone controls etc…

SynthEdit Waveshaper 3

This is a purely graphical waveshaper. It’s still a DSP module, so there is no need for any conversion between GUI and DSP data.
Although there is the Waveshaper2 or 2B, if you’re not mathematically inclined, or want to allow your plugin users to change the waveshaper’s function then this is by far the easiest solution. It’s very intuitive, you just click on a node (one of the small green squares) and drag it till you get the result you want. You can see below how dragging the nodes changes the output waveform.

Effect of moving nodes on the transfer curve

You just need to be aware that moving the centre node (0,0) can cause some issues with clicking and unwanted DC offset voltages (for audio you could put a high-pass filter set to about 50Hz cut-off pitch to filter out the DC component), when dealing with LFO’s or modulation envelopes you really do want to avoid moving the 0,0 node.
Another advantage is that as your plug-in users are unable to enter values into the waveshaper, they can’t cause the output to exceed the default +/- 5 Volts for Audio voltages.
The best way to learn this module is to connect it up and try dragging the nodes to see what the result is.

A test setup for the Waveshaper 3 module