Manny’s FM-Xpert #4: “The Envelope(s), Please”
Manny’s FM-Xpert is a deep dive into the the FM-X engines of the MONTAGE and MODX Music Synthesizers. This five article series is delivered in an accessible and entertaining way and includes MONTAGE content programmed by Manny himself. The other articles in the series are accessible via the links below:
Manny FM-Xpert 1: “Acoustic Eccentricities and Stuff”
Manny FM-Xpert 2: “I’m Fixing a Hole Where the Timbre is Thin”
Manny FM-Xpert 3: “It’s Just a Phase, Man”
Manny FM-Xpert 5: “Everybody’s Doin’ the Knob-O-Motion”
The Envelope(s), Please
Download the updated file associated with this article series here! (Manny FMXpert.X7L)
After the arcane topic of our prior article, now it’s time to go back to something familiar. The prior articles covered the harmonic structure (frequency) components, and now I’ll delve into the time components — Envelopes!
Quick review – an envelope generator is an automated control source that modifies the amount of another control source or parameter. Once the envelope is triggered, its modifies that control source or parameter in a pre-defined shape over time determined by its settings – Attack, Decay, Sustain, Release etc. for traditional envelopes, Rates & Levels for FM envelopes, etc. Envelopes are what shape the volume of our sound and control the harmonic evolutions as you play the notes — which in essentially dictate the difference between, for example, something like a pizzicato versus bowed violin sound.
So, continuing on our journey of building our FM-X piano, this article will mainly focus on Envelopes in context of the attack transients in the sound. When doing emulative synthesis, the trick in a convincing resynthesis is getting both the harmonic structure and the behavior of that harmonic structure to closely mimic the target sound. With a Piano this is especially important in the getting the ‘feel’ of playing the notes correct. And envelopes are how we’re going to create lot of that behavior.
So without further suspense… the Envelope(s), Please ! For the piano, it’s the initial half second or so of the hammer attack that is so critical to achieve a convincing result. Along with the creating the proper harmonic structure, we’ve got to tailor both the general time behavior of the envelope in addition to the touch response to get a final result that both sounds and ‘feels’ like a piano. Part of that is emulating the inertia of the Piano key mechanism.
Continuing with the example Performance “MF.HCM Piano Ex1, and let’s look at ‘hammer’ parts 7 and 8. I mentioned we need to emulate the inertia of the key mechanism – what do I mean? Obviously some of this will come from the keyboard action of the Montage itself, but to truly get a ‘feel’ that our playing is actually ‘connected’ to the final sound, we have to have the onset and evolution of the ‘hammer’ sound match our expectations and the idiosyncrasies of the piano. The first thing to keep in mind, nothing is ‘instant’ in this regard on a piano, and the envelopes in FM are famously ‘fast’. So, we have to ‘slow things down’ to emulate physics of playing a piano action. Both in the regards of how long it takes before the hammer strikes and the tone itself starts to ‘sound’ after playing the key. Looking at Part 7, using Algorithm 74 the Carrier Operators are 2, 4 & 8:
Each of the envelopes for these Operators share a slight initial delay, with the Hold Parameter set from 10 – 13, and the Attack parameter from 2 -11:
The Hold parameter is creating the subtle delay before the hammer actually hits the string after playing the note, and the attack parameters of 2-13 are softening the envelope time to something more in line with the real would physics of the small amount of time the strings needs to start vibrating after hit by the hammer. If you look at Part 8 you’ll see the same thing for the Carrier Operators 2, 4, 6 & 8 — here’s Ops 6 & 8:
So, that’s an overview of the ‘hammer’ noise envelopes, using the Hold parameter to introduce slight delays in the start of the envelope to mimic the inertia effect of a real keyboard. Make sure you watch the companion video to see and hear this in action, along with doing the example edits on your Montage. You can literally ‘feel’ the difference in these, and following tweaks. Next, let’s look into the harmonic parts of the timbre, and we’ll take a look at Part 1, which is creating the basis timbre for the lower register notes. This Part uses Algorithm 25:
Now one thing you have to be aware of is that with so many harmonic components making up this sound, getting all the pieces to ‘align in time’ with each other in all 8 Parts and across the keyboard range can be a bit time consuming. Just a variance of +/- 3 values can make the sound ‘flam’ a bit where some harmonic components are just a little too early, others a little too late, so be patient in adjusting and tweaking. In building these sounds, I found the area causing most of the ‘flam’ issues was the Envelope Time/Key parameter. So, what is this, and what’s the issue?
The Envelope Time/Key parameter speeds up all the Envelope Times as you play up and down the keyboard. And you need to use this parameter as the harmonic components of acoustic sounds die out, or Decay, faster in high notes compared to low notes. In addition, the Attack time of low notes is slower than the high notes, as the impulse energy takes longer to get the long, heavy piano strings in the low notes to vibrate and sound compared to the high notes. Finally there’s the essentially constant Attack and Decay times for the hammer and key thunk noise of the keyboard mechanism across the entire range. These have to all stay aligned so that the sound ‘feels right’.
Thus, we have to balance the Hold value with the Attack value to keep the desired feel up and down the keyboard. A challenge arises because the Time/Key parameter only changes the Attack time, not the Hold time. Think of it as this – One envelope has a setting of 12 for the Hold and 4 for the Attack; another envelope has a Hold of 4 and an Attack of 12. Both envelopes have the Time/Key values set to 5. So when playing C3, both envelopes reach their initial peak at the same time. But as you play up the keyboard, the attack time of the second envelope gets faster as the Time/Key parameter speeds up the Attack time, so the second envelope sounds sooner than the first envelope. That’s because the first envelope has the long Hold value that doesn’t change with the Time/Key parameter. The converse is true as you play below C3 – the second envelope will reach it’s peak later than the first and sound later, as it’s Attack time is slowing down as we play down they keyboard. I show this is detail in the video below.
The two most time consuming tweaks in creating these sounds were the adjustments to the Operator Pitch EG’s for timbre finesse (as discussed in the prior Article), and the Modulator and Carrier Level Envelope Hold & Attack times for feel and playability. First I had set the Decay and Sustain times along with the Time/Key parameter to obtain the correct time contour for held notes across the keyboard range. Then I had to tweak the Hold Time/ Attack Tine values up or down for specific Operators to compensate for their Time/Key scaling. In general, if an Operators’ envelope got ‘too slow’ compared to the others as I played lower, I would decrease the Attack Time and increase the Hold Time so it would slow less as I played lower notes. Conversely, if an Operator envelope started lagging to the others as I played up the keyboard, I’d increase the Attack time and decrease the Hold Time so it would speed up a little more in playing higher notes. Like the addition of the per Operator Pitch EG’s for timbre tweaking, the envelope Hold parameter in FM-X gives the ability to go in and really adjust envelopes to remove the ‘synthy’ and ‘artificial’ quality in the attacks, transients and ‘feel’ that are often the result in less sophisticated FM programming – we didn’t have these in the TX816, so there was a much greater amount of artificial character in the Harmonic Component modeled sounds from those days.
Also the envelopes in real instruments, especially the attacks, are a lot more complex than can be replicated by a single Attack stage. So if you look though the Modulator envelopes in the “warm” piano series Performances, you’ll see I made a lot more use of combining the Attack Time and the Decay1 Time, setting the Attack Level below the Decay1 Level and now having two envelope stages available for more versatile control of the initial transients compared to just having a single Attack stage. A few milliseconds can make or break a sound’s ‘feel’.
Outside the specifics of the Hold and Attack to control the initial transients mentioned above, the envelope Decay and Sustain times & Levels also have a large effect on the piano sound we’re making. We can vary how long or short it takes specific harmonic components to Decay and/or Sustain – we’re synthesizing from the ground up, not playing samples where those behaviors are locked into the recording. Make sure you play and take a look at “MF.HCM Old Soft Felt”; “MF.HCM ElectricGrand”; “MF.HCM PianoHeyBulDg”; “MF.HCM PianoMrthaMyD”. These performances show have the Modulator and Carrier envelopes adjusted to create different piano “types” with a much shorter harp/frame and string length compared to a large grand piano, like uprights. You’ll hear the distinct difference is the attack, decay and sustain in these timbres.
I’m going to end with an overview of a specialty sound that’s possible with the synthesis control we have in FM-X. Select the performance “MF.HCM BowedPiano AT” and let’s take a look. You’ll hear this is the sound of a piano being played with a bow instead of a keyboard. There’s a very dynamic, noisy bow scrape in the attack, and the harmonics and sustain make is sound like some sort cello with wound metal strings. For fun I mapped vibrato to both the Mod Wheel and Aftertouch. I think this is a really cool sound to play. So, how was this accomplished? Basically I changed the Attack, Decay and Sustain parameters of the Envelopes to morph the hard hammer attack noise and thunk transients into a bowed noise transient, and did a similar thing to the harmonic tonal elements to mimic a bowed string behavior. And the really cool thing – this can be done very simply, in real time, right from the Montage assignable Knobs ! Take a close look at the home screen:
Notice I’ve used the Assignable knobs to make adjustments in the Cutoff, Attack. Decay and Sustain – these knobs control those parameters for every Filter Envelope and Operator Level Envelope throughout the entire sound, and is what creates the “bowed” morph of the piano. If you set them all back to Zero, it returns to the original piano behavior. This is what makes actual synthesis much more versatile than sample playback. Though we tradeoff losing some tonal accuracies, we gain extensive control. Here’s a variation that is very similar to a harpsichord to try:
Again, please make sure you watch the companion below to see and hear these examples in greater detail. Until next time, dive in, deconstruct, tweak and have fun! Coming up: “Everybody’s Doin’ the Knob-O-Motion” where I’ll cover how to build in some extreme realtime FM-X control of our piano sound.
Video:
Check out the previous articles in the series:
Manny’s FM-Xpert #1: “Acoustic Eccentricities and Stuff”
Manny’s FM-Xpert #2: “I’m Fixing a Hole Where the Timbre is Thin”
Manny’s FM-Xpert #3: “It’s Just a Phase, Man”
Want to share your questions/comments? Join the conversation on the Forum here.
Click here for more from our resident FM synthesis expert, Dr. Manny Fernandez!