Home Products Support Shop Demos Extras Contact/Press [an error occurred while processing this directive]
Home Wavelore home
linkbar

Advanced Use of the Dynamic Expression Filter in Gigasudio 3

This tutorial describes the correct approach to making full use of Giga's Dynamic Expression Filter. It is highly recommended that you read the DEF tutorial from TASCAM at http://www.tascamgiga.com/pdf/gs3_def_tutorial_01.pdf before proceeding with this document. TASCAM's tutorial covers the basics of applying existing filter profiles to instruments. The scope of this tutorial is the method for creating custom "filter profiles" by fine tuning note-specific timbral/volume responses over the range of the instrument. Once the filter profile is created, it can be applied to an instrument to give phase coherent realtime expressive control and greater realism, while reducing voice-count and RAM requirements.


Introduction

     Using the DEF to its fullest potential requires custom filter settings, which are much better for many instruments than the all purpose filter profiles included with GS3.1. The reason for this is that the DEF is designed to emulate one velocity layer using another (e.g. to start with a mezzo-forte sample, and filter it to sound like pianissimo, fortissimo, or anything in between). Moreover, the filter settings are note-specific: there is a discreet set of filter settings (found in the form of hex-code coefficients) for each semitone of the instrument. When dealing with one set of samples, the settings required for the best effect will never be quite the same as the settings for a different set of samples, even if they are of the same instrument family. This is due to a variety of factors (mic, mic positioning, recording media, editing processes, etc), so it's really impossible to use one library's optimal filter settings to impart transparent dynamic expression on another.

     Basically, optimal dynamic expression is attained by fine tuning the filter settings on the mezzo sample (the "primary sample/instrument") while continually a/b-ing the result with the actual sample being emulated (the "reference sample"), in order to match the two. When the correct filter settings are found, they are pasted into the profile, where they "morph" from one set of coefficients (the original, flat response of the mezzo-forte) to another (the found settings that make the mezzo sound like the reference sample), simulating realtime dynamics without the problems associated with traditional crossfading (Phase artifacts, excess polyphony, excess number of percieved instruments). The morphing is, of course, controlled by a choice of midi controllers, including velocity. There is another major benefit involved in this method: It bypasses the need for extensive multi-velocity sampling, saving RAM, hard drive space, and instrument dimensions. Saved dimensions mean better programmability, like the use of many round robin samples or the ability to use the crossfade function for other expressive options. Considering the number of dimensions that are required to create a sampled-legato instrument, this freedom is invaluable.

     If the used portion of the samples is consistent across the various articulations, they can be combined in the GS Editor and filtered using the same profile, saving the .gsi stacking for further elements of the instrument. Once multiple velocity splits have been eliminated, we become free to program an instrument that is not only phase-free, but also puts more articulations in reach by realtime controls. The extent to which this technology contributes to the realism of sampled instruments (despite the fact that it is really an introduction of an element of modelling) is greater still when one considers that it is possible to stack instruments as .gsi's in Gigastudio or GVI. Designing a set of custom filters (or any of the other iMIDI rules) for each articulation of an instrument and stacking those in GS3/GVI gives access to many iMIDI rules per instrument.

The Four Filter Parameters:

The DEF filter is not the same as a conventional equalizer. The parameters are interdependent, and don't necessarily change the sound in a linear fashion. After much experimentation, we've concluded that the best way to get used to calibrating these filters is to spend some time using them to shape sounds. For now, it may be helpful to think of them as low, mid, high, and volume. This explanation doesn't do the DEF justice, as each parameter has effects on center frequency, bandwidth, and boost/cut simultaneously for it's own filter type. They also affect each other in various ways, and it is in this way that they are able to "morph" between one setting and another. Quickest explanation, just start using them! Your ears are your most valuable tool here.

Getting Started:

Here's a list of things you need to get started. You can download all the necessary resources in a .zip file here, but you should at least read the following so that you'll be sure you know what each item is for. Where needed, the following explanations also tell you where on your hard drive you should store each file.

-Four control sources, assignable to CC#'s 16, 17, 18, and 19 (GPC's 1, 2, 3, and 4). These can be hardware controls on a MIDI controller with assignable knobs or faders, or software controls, assigned in your sequencer. It is best to have an external controller. Consult your hardware or software documentation for instructions on assigning these controls. These controllers will control the filter settings in realtime, allowing you to quicky change the timbre of a sample before cross-referencing it with another.

-The EMF Utility: A small application that displays the most recent values of these controllers in hexidecimal form, and allows you to copy and paste them into the blank filter profile. Hosted by permission of TASCAM. For convenience, put this file on your desktop, or wherever you'll be able to find it easily.

-The free Wavelore Slide Whistle, in it's raw form, with no filters applied, and including three dynamic layers. Once the filter settings are found and saved, you can delete the remaining two velocities, saving space and loading requirements. Put this file wherever you're used to looking for .gig instruments. Then refresh your Quicksound Database.

-The blank filter profile: This text file contains all the settings for how the filter behaves, including global parameters (which apply to the entire instrument, e.g. Filter Controller=Modwheel, etc.) and note-specific parameters (the hex-code filter settings that you will replace with your own, determining how each note of the instrument will react to control changes). This file, as well as any altered copies, should be placed in \Program Files\Tascam\GStudio\Profiles\Dynamic Expression. This is the directory where Gigastudio looks for filter profiles by default, so having it here will save you some browsing time.

-An articulation file that will implement our programming and filter settings in case you want to compare your results to ours. Please note: Our filter settings have been left a little less than perfect, in order to encourage you to improve upon them. The DEF is very powerful, and is (if the samples are of good quality) really only limited by your patience and idea of what's "close enough". Try saving your settings, then applying our .art file and saving as a new .gig to see if you can improve on what we've done!

-Some people may want to download this tutorial as a basic html file (no frills).

-Remember that you can download all the necessary resources, including the text-only version of this tutorial, in a .zip file here.


Actually Doing It

Step One: Setting Up a Filter Calibration Environment

Open: "WL_Slide_Whistle_Calibration.gig" in the Gigastudio Editor. Click the "load" button.

You need to have quick access to several instruments in order to compare the "reference" samples (the velocities you won't use in the final instrument, but will use as a reference for filtering the samples that will be used) to the filtered samples. This means that for calibration you need three instruments loaded and ready:

  • The primary samples, in this case, fortissimo.
  • The pianissimo samples.
  • The mezzo-forte samples.

By playing a given note on a reference instrument (pianissimo, for instance), we can hear what our filtered instrument should sound like when played quietly. Then we need to listen to the same note on the primary instrument while adjusting filter settings in an attempt to match the sound of the reference samples. So here are two methods for doing that:

Method #1:

Simply load the .gig file using the Gigastudio Editor. Clicking on a particular instrument's name highlights it and loads it to channel one automatically, overriding whatever instrument was loaded last. You can click on your reference instrument, play a note, switch to your primary instrument, and play a note while adjusting filter settings. Repeating these steps until your two instruments appear to match will get the job done. This method is best for instruments with short unlooped sustains (The WL Slide Whistle has mostly fairly short, unlooped samples, so I'd suggest using this method), or for non-sustaining instruments like snare drum or guitar. Sustained string patches, for instance, will benefit from...

Method #2:

Open GS3, then open your .gig file in the editor. Click the load button, which will load all the instruments the file contains into the sampler. Then stack the primary instrument together on channel one with the reference instrument. If you route each instrument to a different DSP station channel, you can simply hold a note (using your sustain pedal), and compare the filtered instrument to the reference instrument by muting and un-muting the two DSP station channels alternately.

Step Two: Preparing the filter profiles

In addition to setting up this environment, you'll need to put your primary instrument in "filter calibration mode", and open the EMF Utility, which allows you to copy and paste the hex code values into the relevant parts of your .ini file.

"Filter Calibration Mode", means that an instrument has the DEF iMIDI rule applied, but that there is a certain setting enabled, which allows midi CC# 16-19 to control the filter parameters for realtime adjustment. Just open "DEF_Slide_Whistle_Blank.ini" in your text editor, and find this line:

Parameter30=0 // (0-1) Filter Calibration Mode (for Development use), 0-normal off, 1-on

Change it to this:

Parameter30=1 // (0-1) Filter Calibration Mode (for Development use), 0-normal off, 1-on

This will tell Gigastudio to filter the instrument based on the CC#'s 16-19, instead of filtering it based on the filter settings and controller specified in the file.

Now save the file as "DEF_Slide_Whistle_Cal_Mode.ini", or something to distinguish it from the original. It's important to keep a copy of the non-calibration-mode file on hand, so don't overwrite it (If I'm telling you this a little too late, just change the one back to a zero and save again)!! Then close the file.

You now have two slide whistle .ini files in your profiles folder:

  • DEF_Slide_Whistle_Blank.ini
  • DEF_Slide_Whistle_Cal_Mode.ini

Next you need to give your primary instrument an instance of the DEF iMIDI rule, and tell Gigastudio to refer to the file you just created for it's filter settings. Refer to http://www.tascamgiga.com/pdf/gs3_def_tutorial_01.pdf if you're not sure how to do this.

WARNING: Certain combinations of filter settings can cause extreme changes in output volume! These changes are also dependent upon the sound being filtered, so they can not always be accurately predicted. Always lower GPC 4 (CC#19) before making any extreme changes to the other three parameters! Also, never make extreme changes quickly; Always move your controllers slowly, unless you're only moving them a little.

Step Three: Calibrating the filters:

Note 1: If using method #1 from Step One, then "Load", simply means to click on the instrument name in the editor. If using method #2, then "Load" means to unmute the given instrument while muting the other.

Note 2: This also assumes that you will be using as your primary samples the ones with a medium velocity, as compared to the others. This method would involve (bascially) both subtractive filtering (to emulate pianissimo) and additive filtering (to emulate fortissimo), and is generally the best approach. Another possiblity is to use the loudest samples and to use subtractive filtering in two degrees to emulate respecively lower velocities. Remeber that, whatever the case, a well-calibrated filter emulates a multitude of "virtual velocities", and the best choice of which velocity layer to use in a final instrument comes down to good planning of your recording process: It may be best to record 4 round-robin samples of the mezzo-forte and one of each of fortissimo and pianissimo for reference. A different instrument may benefit from using the fortissimo samples and calibrating filters to emulate all lower velocities, which would require a different recording plan.

1) Open the EMF utility.

2) Open DEF_Slide_Whistle_Blank.ini in a text editor

3) Load the reference instrument (mf) and listen carefully as you play its lowest note.

4) Load the primary instrument (ff) and play its lowest note. Listen carefully as you adjust GPC's 1-4, and stop when you think you've emulated the reference sample played in step 1).

5) Check your accuracy by loading the reference instrument and playing its lowest note again.

6) Repeat steps 1-3 until you attain a convincing match.

7) Copy the hex code from the EMF utility and paste it to the row of coefficients in the text file that corresponds to the note (in the case of the slide whistle's lowest note, A4), under the column that corresponds to the dynamic emulated (in the case of this comparison, "DEF mezzo").

8) Repeat steps 3-7, this time comparing the second reference instrument (pp) to the primary instrument, and pasting the hex code (step 7) under the column, "DEF piano".

9) Repeat steps 3-8 for each note of the instrument.

10) Save the .ini file.

11) Apply it to the primary instrument as described in TASCAM's tutorial.

12) Play the instrument while moving your Mod Wheel. You should hear realtime dynamic changes which include not only volume control, but timbral changes corresponding (at the extreme controller values) to the reference samples. What happens in between these extremes is Giga's interpolation of your filter values, which morphs from one setting to another, thereby giving the instrument a multitude of "virtual" dynamic layers between those that we sampled.

13) If you are satisfied with the results, delete the reference instruments from the .gig file and choose "Save Limited" from the file menu in GS Edit. You should notice that the file gets considerably smaller, as this type of save discards unmapped samples.

14) If you are not satisfied with the results, try these steps:

i) Try, try again.
ii) Process the instrument's output with some convolution reverb. The addition of a resonant constant adds a lot to the believability of morphing filter instruments. It can save a poorly calibrated instrument failing the realism test, and it can render a well calibrated instrument beautifully convincing.
iii) Download our version of the Wavelore Free Slide Whistle. Compare your version of the instrument to ours. Feel free to send us your thoughts, or even send us your .art file. We'll gladly offer comments on your calibration success, and we'll even post the .art file to the extras section of www.wavelore.com (with your permission, of course). Also, please note that our version of the instrument contains more articulations than the working file. To create a complete virtual instrument style library using all these articulations would be too lengthy a discussion for this tutorial.


Some Final Thoughts

1) The transparency of the final result will depend on a number of things:

  1. The quality, and signal-to-noise-ratio of the primary samples.
  2. The consistency of all samples' timbres across the instrument's range
  3. The precision of the filter calibration performed. This precision is also effected by points i) and ii)

2) While it may seem very tedious, be aware that the more you do it, the more intuitive filter calibration gets. No doubt you scratched your head more than once during the above process. This will not always be the case. In addition, TASCAM plans to implement filter calibration directly into the GS4 Editor, eliminating the EMF utility and .ini files from the process.

3) The slide whistle samples contain some "grit", which can make the filters behave a little less smoothly than the ideal scenario. This is because we sampled fortissimo playing as the primary sample set, and because fortissimo on the instrument used contains some artifacts. Typically, one would sample mezzo-forte as the primary sample set, and emulate the extremes of velocity from there. Each instrument will have a different ideal approach. For example, recordings with a relatively high noise floor will benefit from using a higher dynamic level as the primary sample, since the noise floor may be considerably augmented by additive filtering. If the instrument is free of artifacts at a high dynamics, then its loudest samples should be used, and the progressively quieter ones (with lower s/n ratios) should be used as reference samples only.

4) Creating filter profiles for the portamento reshaping filter (PRF) is outside the scope of this tutorial. That said, there is enough similarity that inquiring minds may study the global instrument parameters in the .ini file and use the same controllers and the EMF utility to try matching portamento'd samples to their target notes. Stay tuned for the PRF tutorial.....

Please send your questions and comments to support@wavelore.com. We will be happy to help with any trouble you may have using the DEF.


©2007 Wavelore Instruments. All Rights Reserved. TASCAM is a registered trademark and the TASCAM logo and GVI are trademarks of "TEAC" a Teac America Inc. Company. All other product names are trademarks of their respective owners, which are in no way associated or affiliated with Wavelore Instruments or TASCAM.

}