| neobustatunez ( @ 2007-04-10 18:40:00 |
| Current mood: | dorky |
| Current music: | The Red Violin OST |
| Entry tags: | kontakt, samples, sequencing, tutorial |
For nerds only - "Expression Control"
My first technical post; bear with me, and sorry to folks who don't know/care about this stuff. But maybe it'll offer some insight into all the crap I have to go through whenever I wanna make something sound realistic with computer instruments. ;-)
The most difficult thing to do in MIDI is realistic phrasing. Instruments have to flow and breathe, and the sense of a continuous melodic line must somehow be emulated via separate samples of individual notes. We now have legato scripting in Kontakt 2, as well as sampled legato patches in libraries like VSL and Westgate. But those techniques will only "connect" the notes - I'll explain how to edit Kontakt 2 patches so that you can get realistic phrasing and expression via automated timbral editing.

Looks good, right? Not at all. When someone plays a note, they don't decide "Okay this note will be exactly mf, then the next note will all of a sudden be f, and then the next will be p, etc". There's a constant flow between volume levels, and so controlling the intensity and loudness of notes via velocity doesn't make much sense for sustained instruments. Just as an example, let's take a listen at the difference in volume between the three velocity layers: Horn Example 1. Not exactly the most realistic (or pleasant) sound.
So instead, we're gonna control volume more continuously via the modwheel. Sounds simple, but I'll detail some advanced techniques for an even more realistic phrasing method. First off, we need to decide how many sample layers we'll keep. Many older samples have only one velocity layer, which actually is perfectly fine because we'll be using automated equalization/filtering to compensate. Modwheel crossfading sometimes sounds nasty and causes phasing issues with certain solo instruments (high strings and high solo winds in particular), so sometimes you'll wanna keep the velocity layers as is... but in this case, it'll sound fine. This particular patch has three layers; the top one is a bit unruly, so let's stick with the bottom two and delete the top one.
Converting the layers from velocity to modwheel xfade is pretty easy here - they're already separated into velocity groups, so you can just rename them to "p" and "f" to make things easier. Then highlight all the samples throughout the whole range, and drag the velocity tab above so that it becomes 1 - 127 (when you select them all, it should read ??? - ??? at first). It should now look more like this:

Now we just have to get those individual groups to crossfade appropriately. Go back to the Group Editor make sure "Edit All Groups" is ON, choose the "p" group, go down to the Amplifier and click to open the Modulation. Add a MIDI CC modulator, it'll default to CC1 (modwheel). Then add another one. Don't touch any sliders or knobs yet, because with "Edit All Groups" on, that has a good chance of screwing up the order if you have multiple controllers. So go and turn "Edit All Groups" back OFF, come back to the Amp mod, and move one of the CC1 sliders down to about 50%. Do the same for the "f" group, so that they both have one CC1 at 100% and another at 50%. It should now look something like this:

Now to get the xfade to behave properly, choose the "p" group and slide its second CC1 from 100% to -100%. And finally, turn the velocity slider down to around 30% for both groups. Now when you play a note with the modwheel low, it plays sound from the quiet layer; higher modwheel gives more sound from the loud layer. You also will hear some additional volume attenuation thanks to the 50% CC1 - set that even higher for more dramatic volume change. Here's an example of the same passage played with velocity layers and then with modwheel crossfades.
This is old news to a lot of you though; modwheel xfades are standard issue in many sample libraries. The interesting part is dynamic filtering. Turn "Edit All Groups" back ON, and go to the "Group Insert FX" panel. Add an LP1 with a cutoff around 200, then add CC1 modulation at 75%. This results in an even smoother connection between the volume groups because it now has a continuous filter being applied - higher modwheel values give a higher lowpass frequency, allowing more highend to get through. Here's what the Group Insert FX panel will look like now:

Now as a final step, we can add some legato scripting, courtesy of Big Bob's Solo Instrument Performance Script. Download it and copy the .nkp file into your Kontakt 2 script presets folder (usually c:\Native Instruments\Kontakt 2\presets\scripts). To load a script, go to the Script Editor and just choose it from the Script pulldown menu; You'll probably need to restart Kontakt 2 for it to show up (sorry!!). Once you've loaded SIPS-Legato, choose "French Horn 1" from the Presets menu and give it a whirl. You don't need to worry about all those scary knobs and sliders, really; the presets are pretty good and cover several different instruments and ensembles. Here's what our final version can sound like: Horn Example 2. (I cheated a bit and used all 3 volume layers; it was a bit more complicated to set up)
Now again, many libraries have modwheel filter patches by default. Which is great! But the beauty of our patch is that it's set up to respond to modwheel and crossfade, as well as adding some volume attenuation. This lets you give an even more natural and continuous feel to the phrasing. But there's no reason to stop there - the horn example was simple because it responds well to a simple LP1 filter. But what about strings, winds, trumpets, full horn sections, voice? They have more complicated frequency behavior when going from quiet to loud playing. Because Kontakt 2 is so modular, you can physically model that behavior with as much detail as you want. For strings, try an automated EQ1 to control the brightness - Freq 7k, Bandw 2, Gain -4. Then set a CC1 modulation at around 40%, and choose "gain" from the pulldown:

Now the modwheel will control the amount of rosin and "air" in the samples, allowing for some very convincing phrasing and smooth volume shifts: Muted Strings Example 1.
Legato phrasing is just as important for strings as it was for the horn, but slapping a legato script onto a string section can give a very bizarre sound. This is because in reality, each player is doing things slightly differently from the others; a legato script will cause everyone to slide and transition at exactly the same time: Muted Strings Example 2. My solution for this is to load one or two solo strings over the main patch (on the same MIDI channel), give them the same automated filtering/expression via modwheel, and put separate legato scripts on those. Set each of the scripts' parameters to have sloppier tuning/timing than you'd usually want, but different from each other; then mix the two solo patches in at very low volumes. The result will have connected legato notes as well as a sense of independent phrasing: Muted Strings Example 3.
And lastly, I'll point out that you can have any number of effects in the Group Inserts chain, and they can all respond to modwheel; positively or negatively! For example, sometimes horn and trumpet sections can benefit from cutting the mids and lowmids when their volume gets to the fff range. This is because when blasting that loudly, the players not only won't be physically able to maintain a warm tone, but also the only frequencies that'd carry through the large orchestral bombast are the higher ones. So simply boosting the volume across all frequencies would result in an unrealistic mix. To remedy this, I apply a second EQ-1 at 85Hz, bandwidth 2.5, and gain 0; CC1 is set to gain at -50%.
Well that's it for now! Sorry for all the technobabble, but I hope this was useful for at least some folks. Until next time!