NokiMo
luxcache
luxcache

patreon


COLOUR IN SYNTHESIS - Part 2: Exploring physical characteristics with wvnl

COLOUR IN SYNTHESIS

Part 2: Exploring physical characteristics with wvnl

In this Lux Cache tutorial series, we explore the synthetic qualities of electro-acoustic sounds and how to generate warm and realistic sounding instruments within software synthesis. For part two, we invite producer, designer and developer wvnl to demonstrate his methods of building electro-acoustic percussive instruments with FM, additive, and physical modelling techniques inside of Alchemy.

This tutorial is available as a Patreon post or a preferred .pdf format. We ask you kindly to not share Lux Cache content outside of the Patreon, our contributors rely on your donations. All preview sounds/clips mentioned in this tutorial can be found in this accompanying Google Drive folder.

~

CONTENTS :

  1. INTRODUCTION
  2. CHAPTER 1 - PERCUSSION INSTRUMENTS
  3. CHAPTER 2 - ADDING REALISM
  4. CHAPTER 3 - APPLYING TO REAL INSTRUMENTS
  5. CONCLUSION

INTRODUCTION

The theme here is creating synth instruments with acoustic characteristics. I’ll share some examples of patches which directly emulate sounds in the physical realm, plus some that take influence but then do their own thing. This is the first in a 3 part series where we’ll build a base sound and lay down the main concepts, and in parts 2 & 3 we’ll use these to create familiar sounds such as kalimbas, handpans, harps and more.

In some ways I guess this is quite traditional synthesis and it’s an area I honestly ignored for a long time, but recently it’s been something I’ve found more & more satisfying, has taught me loads, and importantly has led me to create a lot of very usable synth instruments.

Getting Started

We’ll be using a few modes of synthesis including FM, Additive, and physical Modelling.
I’ll be using the Alchemy synth within Logic Pro X, but I’ll try to cover the concepts broadly so that a wide range of synths should be suitable. Something that lets you draw in custom Envelope/LFO shapes will definitely make things easier.

For Logic users I’ve made an accompanying guide to Alchemy which goes through some practical things needed for this series such as setting up FM.

CHAPTER 1: PERCUSSION INSTRUMENTS

In this chapter we’ll start by building a basic bell sound, then we’ll go through some steps to breathe some life & realism into it. This patch will then become our framework to build a number of other instruments from.


Anatomy of a Sound

When we’re trying to synthesise a known sound, a good starting point is listening through and thinking about ways we can break that sound down into individual pieces or layers so that it’s more manageable.

I’ll usually spend some time watching videos of instruments being played solo, and maybe reading to understand how they work/are made. Sometimes you can find acoustics papers which give useful details of an instrument’s characteristics. Looking at the frequency response of a sample might show important harmonics which are difficult to pick out by ear.

Basic Bell
00 - Anatomy

Bells have a ton of variety - their size, brightness, tuned or untuned harmonics etc. Typically though they’ll feature loud overtones with a fundamental pitch which may be difficult to pick out. In some cases the bell’s note is more perceived than it is heard, created from a combination of the overtones. For this basic patch we’ll aim to create a resonant medium-sized bell with inharmonic overtones.

01 - Envelope
First let’s create a volume envelope with no attack and a long tail - around 8 seconds.
By using envelopes in one-shot mode (aka free-run mode), we can design our instrument to feel similar to a physical one when played (i.e. not having to hold down keys).

If you’re stuck using an ADSR envelope, set both the Decay and Release to an 8 second curve, and set Sustain to zero.

In Alchemy we’ll swap out the Master Volume envelope for an MSEG envelope. To make it one-shot we can:
Right-click the furthest right node in the MSEG to delete it
Set Loop Mode to Continuous
Draw in your 8 second curve
(Most envelopes in this series will be similar, so you could save this as a preset).


Envelope 1

02 - FM Setup
We’re going to use FM synthesis to create & control the harmonics in our sound. This is where we’ll have the amplitude of one waveform (the modulator) modulating the frequency of an oscillator (the carrier).

Alchemy’s implementation of FM is a bit unusual, so follow section 01-A in the accompanying guide to get set up.

We’ll use pure sine waves for our FM, and it’s best to set phase/randomness to zero on any oscillators we use to remove clicks/unwanted variation.

Note that “amount” or “depth” parameters for FM can really vary in strength between synths, so in other synths you might want to use values that are half or even a third of what’s used here.

03 - FM Modulation
If we turn up the FM amount on our carrier a little way and scan through the Tuning of our modulator, you’ll hear there are certain spots which sound sweeter than others - these are where the modulator frequency is a multiple of the carrier frequency. Some synths will refer to this relationship as ratio.
In this series I’ll be using tuning in semitones, but if you need to convert between tuning & ratio here’s an online tool and also here’s a cheat sheet:

On SOURCE A set the Course Tune to 27 semitones - this will give us some nice inharmonic overtones to help define our bell sound.

Next we want to modulate the amount of FM so the overtones have a more natural decay. We can start with reusing our volume envelope.

Set the Mod property to zero
Modulate Mod with: MSEG Env → MSEG1
Set the modulation Depth to 35%


FM Filter: Mod modulation

This gives us some gradual decay throughout, but we can concentrate some more on the strike of the sound with an additional envelope.

Modulate Mod with: MSEG Env → New MSEG
Set the modulation Depth to 40%

Make this a shorter envelope, around 1 second long, with a slightly harder curve than our first. This should also be one-shot.


Envelope 2

We could create a single envelope which represents both the impact AND the tail, but I find it useful to have envelopes representing different parts of a sound and keep the ability to mix between them, and then also share them across layers - which is what we’ll do next.


04 - Noise
We can create some thump or beater sound by adding a noise layer.
Enable SOURCE B, and within that disable OSCILLATOR and enable NOISE.

We only need the noise present during the Impact so we’ll reuse the short envelope we created in the previous step.

Under NOISE modulate Vol with: MSEG Env → MSEG2
Set the Depth to 100%


Noise: Volume modulation

Finally we can add a very quick filter sweep on the noise so that the highest frequencies rapidly decay and give it more of that snappy impact sound. Alchemy’s noise sources come wrapped in a low-cut/high-cut filter which we’ll modulate with another envelope.

Set the High Cut to 260Hz
Modulate High Cut with: MSEG Env → New MSEG
Set the Depth to 35%

Noise: Filter modulation

This final envelope should be very short - about 0.25 seconds, and with a very tight curve, and again one-shot:


Envelope 3

Ok here’s where we’re at so far:

🔈01-basic-bell-initial.wav

CHAPTER 2: ADDING SOME REALISM

So our base sound is there, it is sounding bell-like but it’s also very brittle & sterile right now. There’s a bunch of ways to add some life & physicality into it - starting with dynamic range. We can add velocity modulation to practically everything - thinking about the lowest energy version of our sound, and the greatest, and creating a natural seeming transition between the two.
We don’t want to just velocity control the volume because it won’t sound great if the softest sound is just uniformly quiet, generally it should also sound darker, have less sharpness to the transient, it could even be more noisy than it is resonant, like handling an instrument so lightly it doesn’t even form a note.
By contrast this will make the hardest notes feel like they have more energy, and we can take extra steps at this extreme, like adding extra overtones, adding rattle, or subtly sharpening the pitch.

01 - Overtone Strength
First we’ll velocity control the depth of the envelopes we added to the FM amount, so that harder strikes create a lot more overtones than lighter ones.

In SOURCE A, select the Mod parameter of the FM Filter
Under MODULATION set the Depth of MSEG1 back to zero
Modulate MSEG1 Depth with: Note Property → Velocity
Set Velocity Depth to 35%

Modulating the depth of an envelope modulation

It’s not very well reflected in Alchemy’s UI but we’re now a layer deep - one modulation affecting the Depth of another.
Next we’ll apply a ModMap curve to the Velocity, which is a subtle change but just helps it respond a little more like a physical instrument.

Select the small dropdown next to the Velocity Depth, and from the list choose 1
Adjust the ModMap to be slightly concave

ModMap 1 applied to velocity modulation

Do these same steps for the Depth of the second envelope, using the same ModMap, but set the Velocity Depth to around 40%
(You can right-click to copy, paste & edit modulations)

Our FM amount is now velocity controlled.

🔈02-basic-bell-overtones.wav

02 - Filter Dampening
We can use a low-pass filter to dampen the sound when played softly, and to open up when played harder.

In SOURCE A enable Filter 2. We’ll stick with it’s default LP filter.
Set the Cutoff to 160Hz
Modulate Cutoff with: Note Property → Velocity
Set the Velocity Depth to 65%
Add ModMap 1 from the previous step.

Currently the Noise layer is sounding very unnatural so we’ll apply the same techniques here.

In SOURCE B under NOISE, select High Cut
Under MODULATION set the MSEG3 Depth back to zero
Modulate MSEG3 Depth with: Note Property → Velocity
Set Velocity Depth to 50%
Add ModMap 1

Here’s how it sounds with the filter dampening:

🔈03-basic-bell-dampening.wav

03 - Pitch sharpening
When we aggressively bow or pluck a string, strike percussion, or overblow a wind instrument, there’s often a sharpening of the pitch. Synthesizing this adds another physical characteristic to our sound and is relatively easy to set up. The result on bells is some nice beating which really adds to the metallic feel.
In SOURCE A Modulate Fine Tune with: Note Property → Velocity
Set Velocity Depth to 6%
Set a new ModMap with a much more aggressive concave curve this time.

This deeper curve means that only the hardest notes will noticeably affect the tuning.
If we’re doing this to something like a string or membrane you probably want to modulate the detune depth with an envelope so that the note settles back into its stable pitch.

🔈04-basic-bell-sharpening.wav

04 - Reverb
I make heavy use of Alchemy’s inbuilt Convolution reverb - it’s an important step as it helps glue the layers of our sound together, gives it a sense of space, and with the right impulse response (IR) can really add a lustrous metallic sheen. Generally at this stage I’m looking to keep the sound rich & present rather than bury it, so we’ll keep the effect subtle and use very short times.

In other synths it might be best to skip onboard reverbs and use channel effects; a convolution, room or plate reverb will probably work best, and for metallic sheens follow techniques shown by sv1 and others in previous LC tutorials.

For the impulse response I’ll choose a small room or plate. Generally I’ll set the wet pretty high and the pre-delay to zero.
Sometimes I’ll use the envelope (and the start & end controls) to carve into the IR to make it even shorter, so it’s all about the width and the quality without having much reverb tail. The size control lets us speed up the IR for more tightness.

Convolution reverb settings

Alchemy Tip - don’t adjust the Size, Start & End while a note is playing! It sounds horrible, Also - be careful not to create a reverb length of zero, I don’t know why it even lets you do this but it can crash something in Alchemy. It’s not a hard crash but it sounds horrible and you’ll have to restart Logic.

05 - Additional harmonics
Similar to the pitch sharpening, we can create additional layers which become present with harder velocities - these can represent harsher overtones or rattling/buzzing of the instrument, or sympathetic resonance which is something we’ll cover more in Part 2.

Enable SOURCE C and reduce it’s volume to -18dB
Modulate the volume with: Note Property → Velocity
Set Velocity Depth to 100%

Set the ModMap to 2 (the one with the deeper curve)
Set the OSCILLATOR to be Sine

Set the Course Tuning to 30

Now we have an additional high tone which is only present on the loudest notes. You could take this further by using some subtle additive synthesis to create more complex overtones (especially if you’re able to detune the partials). Or create an additional FM setup.

06 - Pan spreading
This one’s pretty simple but effective -  we can modulate the panning of our instrument with some subtle key tracking so that low notes lean more to one ear, and high notes to the other, which emulates it being recorded with a stereo mic setup and gives it a little more spread.
Modulate the Master Pan with: Note Property → Keyfollow
Set Keyfollow Depth to 65%

07 - Imperfect tuning
This for me is a big one, how far you can go with it will depend a lot on the music you’re making, but adding imperfection to the tuning is such a great way of adding some interesting realism to a sound. If I’m making something like a harp sound I like to think about how each string is a physically distinct object from all the others.
If you’re using something which supports custom tuning tables then this is probably the most straightforward way to achieve it.

In Alchemy I use some key tracking modulation with a custom ModMap - I go through this process in section 2 of the accompanying guide.

When using FM we need to make sure both the carrier & modulator are being detuned.
I usually set up a macro so I can dial in the detuning amount.

And here’s our final sound. Below is an Alchemy preset plus a slightly simplified Vital preset of the same instrument to show some of this stuff applied in a different synth.

🔈05-basic-bell.wav

🔈06-basic-bell-arp.wav

🎹LC-basic-bell.acp

🎹LC-basic-bell.vital

CHAPTER 3: APPLYING TO REAL INSTRUMENTS

So we’ve made our basic patch and gone through a bunch of techniques to give it some colour & dynamic variation, now let’s apply that to synthesising a specific instrument.

Aluphone

00 - Anatomy
The Aluphone is a particular type of concert bell/set of bells, typically mounted & played with mallets. It has a prominent inharmonic overtone which the manufacturer’s site happens to give us the pitch of - they say it’s “located between a minor third and a major third one octave above the fundamental” (so around 15.5 semitones up).

01 - Creating it
These are small bells so starting with our Basic Bell preset let’s bump the pitch of the whole instrument up by 2 octaves:
Set the Master Course Tuning to 24 semitones

We’ll also deepen the curve of MSEG envelope 1 a little -

Envelope 1

Then to create that distinctive overtone with the FM:
In SOURCE A set the Course Tuning to 21
Set the Fine Tuning to 40

Btw I arrived at this tuning by ear, but if you need to do this yourself I recommend setting up a simple sine synth on a separate channel to help with picking out pitch/overtones.

Next we want to make the sound slightly more heavy with overtones, and start accentuating that beater sound.

In SOURCE A increase the FM Mod to 10%

Right-click the Depth of the MSEG2 modulation and go → Edit Modulation
Increase Velocity Depth to 80%
Then shorten MSEG2 to around 0.5 seconds
Make the envelope curve deeper

Envelope 2

We can tame some of the shrillness by going:
Enable Global Filter 1 set the Cutoff to 5200Hz

To create more of a beater sound we can use a bandpass filter on our noise source. Go to SOURCE B and:

Reduce the volume to -11dB
Enable Filter 1 and select BP 6dB Edgy as the type

Set the Cutoff to 1250Hz and the Res to 40%
Modulate the Res property with: Note Property → Velocity
Set Velocity Depth to 40%
Under NOISE select Vol and reduce MSEG2 Depth to 80%

And finally we can adjust that additional harmonic:
In SOURCE C reduce the Course Tuning to 22 semitones

🔈07-aluphone.wav

🔈08-aluphone-arp.wav

So that’s our Aluphone! I feel like it’s fairly faithful, certainly feels very acoustic. If we wanted to extend this sound further we could add a macro to the FM Mod because this kind of represents the hardness of a beater (we could hook the same macro up to the high cut of the noise source). We could also add a macro to the volume of the noise source to represent how much beater sound is present. This way our controls represent physical properties similar to what you’d find on a physical modeling synth.


AND just as a quick extra, here’s a fictional wooden beam bass instrument made from a few tweaks of our Basic Bell patch - it’s dropped down an octave, envelope 1 is shortened with a deeper curve, and Source A is tuned to 15.60 semitones. (plus there’s a little sneak preview of a string instrument from Part 3 in this clip)

🔈09-wood-bass.wav

Notes on Performance

I mentioned creating a synth instrument which feels like a physical one to play. When developing the sound I find it helpful to try my best to play in a way which makes sense for that instrument. For those that don’t play keys or don’t have a velocity sensitive controller, I’d recommend using an arpeggiator which will apply randomness to velocities, or if you paint straight into a piano roll, use MIDI plugins which randomise velocity and timing.

CONCLUSION

I’ve obviously avoided talking about WHY you might do any of this, but really I just think these are practical skills to have in synthesis, and in making expressive instruments in general. I find that being able to make sounds that I can hear is helpful with creating sounds in my head.
I’m excited to bring you Part 2 as we’ll be making some of my favourite synth instruments, and then the string stuff in Part 3 is just FUN to do.

~

Luke Twyman (wvnl) is a producer, sound artist, designer & web developer based in the UK.

You can follow them on Twitter @_wvnl and view their portfolio at wvnl.xyz.

2022 © Whiston Digital / Lux Media  |  luxcache.com


Related Creators