7 November 2010

Anyone who says they understand Absynth's "Waveshaper" is lying

The waveshaper module is poorly explained in the Absynth manual, and I think part of the reason it is confusing is the use of a sine wave as the default transfer function.


Yes, that's right - transfer function. Because the "waveform" in the waveshaper module is not actually a waveform at all. Instead, it's a graph that describes the level-dependent gain applied to each sample in the input signal.

You've probably seen transfer functions before, when you read the manual of that fancy compressor plugin you downloaded. Well, the waveform in Absynth's waveshaper function is similar, except that the input signal zero voltage is centred mid-way along the x-axis.


The first stage in understanding how to use the waveshaper is to create a new transfer function in Absynth's Wave window:

Identity function

Looks like a reversed sawtooth doesn't it? Well, just remember that it isn't a sawtooth. In fact it describes an identity transfer function, where the output (y-axis) is always equal to the input (x-axis). This means that with the identity function loaded, the waveshaper makes no effect on the sound. Try it.

Does it make sense now? Good. With this knowledge, we can begin to model saturation characteristics that are observed in analogue audio circuits.

When analogue circuits are driven hard they can become non-linear. You can model this by modifying the identity function in the Absynth wave editor. Remember to modify the waveform at both ends, as the transform function maps the input signal level from negative to positive voltage values. Here I have simulated a "diode-clipping"-style saturation effect in the Absynth Wave window.

Transfer function to simulate hard clipping

You can see the result of the waveshaper transform on a sine wave input on the image below.

Hard-clipped sine wave

It's easy when using the waveshaper to overcook your signal and end up with grating noise. A useful technique for applying waveshaping in a more controlled way is to use Absynth's morph waves functionality.

Create a new morph wave and in one slot place your own transfer function, and in the other slot the identity transfer function. By morphing between the two you can adjust the amount of distortion you add to your signal, and hopefully end up with some more musical results.

Using morph waves to control waveshaper intensity

In the clip below I created an 808 style bass part and experimented with various kinds of waveshaping distortion. Enjoy!

Waveeshapey by pedalsteeldrummer


Related links