08. Waveshaper & Saturation

Now that we've talked a bit about sound sources and different control modules, let's get to the real meat of this series and talk about some audio effects. Today we'll start with distortion and saturation.

There are two different ways to approach the nature of a sound that are tightly tied together.

place_holder_1920x1080png.png

You can define a sound by the harmonics that are combined to build it, describing what harmonics and inharmonics are in it and at which level. That is the principle of Additive synthesis for example, where we build a sound by adding harmonics.

Or you can define a sound by its waveform. And that's what we'll be focusing on today.

The two are very much related, as adding or removing harmonics will change the wave form, and changing the waveform of an oscillator will change its harmonic content.

place_holder_1920x1080png.png

We talked a little bit about that in the second episode of music theory in 5 minutes, if you haven't seen it already.

To carve your sound by affecting the waveform directly, you can for example use a wavetable synth like serum that allows you to directly draw the shape of your oscillator. Just click on the pencil icon in the top right corner of an oscillator, and it will take you to the editing window.

place_holder_1920x1080png.png

But that can be a little fiddly if you don't know where to start or where you want to go with it.

Another way to affect the shape of the waveform of an oscillator is to use a waveshaper.

Here I am using veggie waveshaper which is a free max4live module for Ableton Live.

A waveshaper is an effect that does exactly what the name let suppose. It takes an incoming signal and changes its shape based on a function. 
Generally a waveshaper's function can be represented on a x/y graphic.

place_holder_1920x1080png.png

Here the voltage of the incoming signal is represented on the x axis, and the voltage of the ouput signal is on the y axis.
The shaping function is then represented in the graph in the center.

For example, a graph that ramps up from -1 to 1 will leave the waveform unchanged. An input of -1 will output a value of -1, an input of 0 will output 0 and an input of 1 will output a value of 1.

place_holder_1920x1080png.png

A graph that ramps down from 1 to -1 will invert the phase of the waveform as an input of -1 will output a value of 1, and input of 0 will output 0 and an input of 1 will output -1. The graph being a straight line, it won't change the shape of the waveform though.

place_holder_1920x1080png.png

These are very simple examples but with a waveshaper, you can do many things.
For example you can emulate many types of saturation.
So to explore that further, let's see how a saturation works.

Basically, when you boost the amplitude of a signal, the sound gets louder. But when the amplitude of this signal exceeds the maximal range, the tips of the waveform get clipped, resulting in a distorted sound. And this is what saturation is.

place_holder_1920x1080png.png

This can be replicated with a waveshaper, with this kind of curve with hard corners where the curve meets the maximal And minimal values of the graph. 

place_holder_1920x1080png.png

In this example, every part of the incoming signal  that is below -0.5 will be flatten at -1, and every part that is above 0.5 will be flatten at 1.
You can then make the effect even more drastic by boosting the amplitude of the incoming signal, or by bringing these 2 points closer to the middle, making the slope in the center steeper.

To make the distorsion more subtile and sound more "analog", we need to get rid of this hard edges where the signal gets clipped, and replace it by a curve. The smoother the curve, the softer the saturation.
(And the smoother the curve, the less harmonics are added to the sound.)

place_holder_1920x1080png.png

So there are 2 main parameters we can play with to make a saturation effect more or less extreme.

One is the size of the curve. The wider, the smoother. And the tinier, up to no curve at all, the more agressive is the sound.

And the other is how much we boost the signal beforehand, which is often referred as the drive or gain on saturation effects. It can also be translated by the steepness of the slope in the centre. The more vertical, the more drastic the effect.

And all the terms used for the different types of distortion are different combinations of these parameters. 

place_holder_1920x1080png.png

From the smoothest to the more extreme, there's the analog warmth or boost, with a very smooth slope that barely distort the waveform.

Then the overdrive or tube that offers a gentle distortion often used in blues for example.

Then the distortion with a harder curve that provides a much more distorted sound, used a lot in rock and hard rock for example.

Above that are the fuzz pedals that really squash the signal with a hard curve. This is used a lot in hard rock and metal musics for instance.

And at the end of the spectrum is the digital clipping with no slope at all, which gives a very harsh sound.

The more extreme you go with the distortion, the more harmonics are added to the sound. Which can work well for subtractive synthesis. So harder distortions often go well in pair with filters.

This is also why saturation effects are often used with sub basses. If the sub is too low for some speakers, you can add harmonics to it, so you can hear it better on smaller equipment.

Full disclosure, these are only the basic differences between all this types of saturation. 
There are a lot of other things that can make several saturation effects sound different, would they be digital effects or analog pedals.
Some of those things have to do with how components like diodes would react in the circuit, which can be emulated digitally but it's not in the scope of this video as it can get very specific. And I am not an expert of that myself.
Other differences have to do with the sampling rate, which we'll see more in detail when we talk about bitcrushers. 

But one of those things I'd like to talk about is symmetry.

The types of distortion we've seen so far are symmetrical, they distort the upper side of the signal in the same way than the lower side.

place_holder_1920x1080png.png

But you can distort the higher part differently than the lower part to make them asymmetrical, which can give a different colour to the distortion.
It is often use to distort a waveform very hardly on one side, while having it very smooth on the other side. This way you could achieve a very hard distortion that keeps a certains clarity, and a certain warmth. This type of distortion is often associated with tube distortion

place_holder_1920x1080png.png

There are 2 ways to achieve this asymmetrical distortion.
One is to have a curve that is different in the lower part than in the higher part.
The other in to offset the incoming signal before it reaches the waveshaper or the distortion effect. If the waveform is offset upward, the upper part of the wave will be clipped before the lower part, resulting in an asymmetric distortion.

place_holder_1920x1080png.png

Let me show you one trick to do that in ableton live so you can try it with other saturation effects.

Say you have an oscillator here, that could be anything, and it goes into a waveshaper.
The trick is to put this oscillator in an instrument rack and create a 2nd channel.

In this second chain, put an operator and use only one oscillator with a sine wave and with a fixed frequency of 0Hz.
So it won't oscillate at all, it will just add a steady positive or negative voltage to the signal.

And to control how much of this voltage is added, we can use the starting point parameter here. So the oscillator will start at a different point on the waveform and stay there.
This way you can control how much you offset the signal, defining how asymmetric the saturation will be.

place_holder_1920x1080png.png

(The only downside of this technique is that it adds a very low frequency to the sound that you'll need to filter out with a high pass filter after the distortion.

A sawtooth waveform is handy to do that. You can also use the volume knob to control how much the signal will be offset.

With this technique, if you offset the signal too much, the sound can get muted. You can make the original sound louder to try and fix that.

To remove the clicky sound it introduce, you can use a longer attack. Which means you can also animate it with the envelope!)

This type of asymmetry is used a lot with fuzz distortions, so you can play with that to see if you find something cool.

So there we talked a lot about saturations and there's a lot you can do with these to model your sound. But that's still one facette of the waveshaper, which can do much more, and there is one last type of wave shaping I would like to talk about. And that is the sine fold function, also often called wavefolding.

place_holder_1920x1080png.png

Visually on a waveshaper, the sine fold function looks like this, like a sine wave that goes back and forth between the top and the bottom of the graph.

place_holder_1920x1080png.png

What it does is that instead of clipping the top and the bottom of the waveform when it hits the maximum threshold, it folds it back on itself. Hence the name wavefolding.

It is a type of distortion that can create very harsh, metallic tone by adding tons of harmonics to the sound. Because it adds so much harmonic content, it makes it a good candidate to use as a starting point for subtractive synthesis. 
You can use it with a low pass filter that moves along with a LFO to create a dubstep wobble for instance.

You can make the sound even harsher by reducing the slope at the top and the bottom of the sine shape, to make it look like a triangular wave.

And the more back and forth the curve does on the waveshaper's graph, the more times you can foldback the incoming signal before saturating the effect.

place_holder_1920x1080png.png

A similar waveform transformation you can do is having a curve that looks like this. With this type of curve, the bottom half of the waveform will stay unchanged, but the top half will be flipped on its head. This type of distortion is often called "rectify" in some synths and plugins.

place_holder_1920x1080png.png

Now, something I like to try is to add several distortion effects in a chain. It works better if the distortions are different. Layering 2 different distortions is something you'll see a lot in the design of heavy guitar tones for example.
The idea is that because every distortion will add harmonics, I would put a low pass filter after each one. So each distortion will distort the sound a little, then I filter out the higher harmonics, then I distort it a little further, rinse and repeat. 

With all this you can design your own distortion effects, creating different saturations and wave fold, with different curves in a waveshaper or using presets you have at you disposal.
Don't hesitate to draw random shapes as well, random it always fun.

While I'm editing this video, I'd like to add a couple of things.
With a graph in the shape of steps, you can create a bitcrusher effect. We'll see bitcrushers in a dedicated video, but I thought it was important enough to mention it.

place_holder_1920x1080png.png

Also, a saturation reduces the dynamic of a sound.
As we basically turn the volume up until the signal hits a wall, the quieter parts in the sound will be brought up and be closer in volume to the louder parts.
So we can use it to make discreet things in the sound more prominent, or to squash several sounds together to make new textures appear
Like if we play several sine waves together at different pitches, they'll go in and out of sync. Due to phase cancellation, it will make the sound appear and disappear. Well you can make that more obvious with a saturation.

This is the principle used to create reese basses. Several sawtooth waves are detuned, then filtered to keep the low end, and then distorted together. The phase cancellation creates the movement that is particular to the reese bass.

Another common move is to play a sinewave with white noise and crush them together with a saturation to create a textured bass.

There's one last question I'd like to answers before I wrap up this video, the last but not the least: where can we find these waveshapers in Ableton Live, Serum and VCV rack?

In Ableton Live, the effect saturator shows the curve used for each preset, and with the last one, called waveshaper, you can access several parameters to design your own curve. (You can access them by clicking on this little triangle at the top.)

place_holder_1920x1080png.png

If you want more control to design your own curves, I like the veggie waveshaper which is a max4live device that you can download for free. It allows you to add as many points as you like, use curves, you have a symmetric and an asymmetric mode, and you can lock the first and last points if you don't want them to move, or you can snap the points you add to a grid for more precision. It is very cool and certified without meat.

place_holder_1920x1080png.png

In Serum, in the effect tab, the distortion effect also displays a graph, which shows you the curve used for each preset. It's interesting to see that the drive knob in this plugin doesn't amplify the incoming signal, but changes the shape of the curve instead.
In the preset list, you have a X-shape presets in which you can draw you curves directly, by clicking on one of these two buttons here. There is a symmetric mode, in which this graph represents only the top part of the curve, or an asymmetric mode, in which this represent the whole curve.
In these X-shape modes, the drive knob still doesn't amplify the input signal, but it is more of a transfer knob between the shapes of the curve A and the curve B.

place_holder_1920x1080png.png

Then in VCV rack, I haven't found a waveshaper that allows you to draw your own curves in this way. Instead there are waveshapers with various presets to choose from.
My two favorite among the ones I tried are the west coast waveshaper by Lindenberg Research and the Shaper by Squinky labs.
Both offer several shapes to choose from.

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png

place_holder_1920x1080png.png