Sample Library Technology for Rookies with Special Guest Tracy Collins from Indiginus
Good sample libraries make realistic playback look easy, but there’s a whole lot of sophisticated planning and technique under the hood that makes it all possible. Learn about it in this revealing close-up look.
SoundBytes, Sept. 2014
Introduction by David Baer
Indiginus is a sample library vendor best known for a collection of guitar libraries for Kontakt. But for me, their most inspired product is the Solid State Symphony, reviewed in the Nov. 2013 issue of SoundBytes (read that here: http://soundbytesmag.net/indiginussolidstatesymphony/ ).
Tracy Collins, the “Chief Indigineer” (his words, not mine) at Indiginus knows his way around the inner workings of sample playback software technology. Tracy, pictured right, generously shares his knowledge with us in this introduction to what makes for a superior sample library.
Sample libraries have become an indispensable tool in 21st century music production. From dance music to music scores for major motion pictures, they are everywhere, pretending to be what they are not; acoustic instruments, vintage drum machines, synthesizers, or even complete symphony orchestras. They can be as simple as a few samples (or even one) spread across a keyboard, or complex, interactive affairs with splashy graphic interfaces that allow us to control how the instrument reacts to our playing. But, what does it take to create a sample library, or a sampled instrument? What is going on “under the hood”?
Not so long ago samplers were rather expensive pieces of hardware with audio input jacks right on the front panel, which was a good thing, since there wasn’t much in the way of sample data to load in. Sampler manufacturers did provide a few sounds on floppy disks and later CD-roms, but they were usually pretty disappointing, which was a great excuse for plugging in a mic and making sound with whatever was available. For many of us (OK, for me), this began with a trip to the kitchen, just to find out what a mixing bowl struck with a fork sounded like when played back on a keyboard. Sampling was like magic.
Anatomy of a Sampled Instrument
In recent years the hardware samplers of old have, for the most part, been replaced by software versions. This has made possible several improvements that have drastically changed how samplers are used. Disk streaming allows samples to be played directly from a disk drive, overcoming the RAM limitations of the old hardware units. This makes it possible to load instruments that contain hundreds of megabytes or even gigabytes of sample data. The sampler just pre-loads the first few kBs of each sample, giving the computer time to access the rest of the sample from the disk in real time. Another advancement made possible by the move to software is the use of scripting, which allows for a much more functional and gratifying visual interface for the user, as well as providing new ways to manipulate how the samples are played back, as in legato and round robin functions. One thing that hasn’t changed, thankfully, is the concept of the sampler as an empty device to be loaded with sounds of the user’s choice.
It All Starts with a Single Sample
The most fundamental component in a sampled instrument is a single sample; a recording of an individual musical note or other sound that has been assigned to play back when a key or series of keys are depressed on a keyboard (or some other MIDI controller). In Kontakt, a single sample is referred to as a zone, and in SFZ-speak as a region. Most samplers have a graphic mapping interface for arranging the samples horizontally (key zones) and vertically (velocity zones). You might be surprised how much playability you can get out of a single sample, especially with simpler sounds like a pad sound from an analogue synthesizer. If you take that single sample, say a recording of a synth pad playing a C4 note and assign it to play from C3 to C5, the sampler will change the pitch of the sample depending on MIDI note received, or stretch it, to play over that two octave range. So far, so good, as long as you don’t want to play a sustained note that is longer than your original sample, in which case your sample will end even though you are still holding the key. The solution is to create a sustain loop, where the sampler repeats part of the sample continuously until the MIDI note is released. The length of the loop can be from several seconds, as might be needed with a complex sound like a violin section, down to a single wave cycle of a synth sound, and usually begins after the initial attack of the sound. In other words, after the sound has “settled down” to a relatively constant state. Cross-fading is a technique that creates a fade-in at the beginning of the loop each time it repeats to avoid clicks and bumps in the sustained note. Creating seamless sustain loops can be the most difficult and time-consuming part of editing samples in a library. However, for instruments whose sounds are struck and die out, like piano or guitar for instance, sustain loops are unnecessary.
A single sample of a synth pad will sound fairly decent, but for more complex sounds you’re gonna need a lot more samples!
Arranging the Samples into Key Groups
A piano has 88 keys, so the most accurate way to represent a piano would be to record the sound of each of its keys being struck, and then assign those recordings (samples) to the corresponding 88 keys in the sampler. This way, no samples need to be stretched to cover adjacent keys. However, in the real world sample library creators must weigh the benefits of sampling each note (chromatically) against the practical limitations; namely, the size of the library they want to create, which effects memory footprint on the user’s computer as well as the time it takes to download the library after purchase (for libraries distributed by download). Most higher-end libraries are now sampled chromatically, but this is not necessarily the case for many libraries that have been around for a while and many “lite” versions of more expensive libraries. They may be sampled in whole tones (every other note), or minor thirds (every third note). I have been surprised to find that many of my favorite libraries have “stretched” sample regions and sound brilliant! Sometimes leaving some samples out, particularly odd sounding notes of an acoustic instrument, will improve the overall sound and consistency of the final product.
We could now play our piano. If our sampler is set to respond to the velocity of incoming notes, it might sound pretty good, depending on the quality of our recorded samples. If you played a stage piano or the piano sound from a keyboard workstation built in the 1990s this is essentially what you would have. But, this is the 21st Century, and we know that soft piano notes and loud piano notes sound completely different, and we have the technology to create the same effect in our sampled piano! The vertical axis of our key map allows us to assign more samples to be played back depending on how hard we hit our keyboard, or keyboard velocity. We can now go back to our piano and record each key again, this time striking the keys softly to loudly, letting each note decay all the way out. Then, we can assign our new, more dynamic notes to play back at different velocities. Most piano libraries will have at least five velocity levels recorded, but can have ten, twelve, or more. As with chromatic versus stretched samples, having more velocity levels generally makes for a more accurate playing experience, but not always. Velocity zones are also used to control instrument articulation. For instance, a guitar might have mutes assigned to play at lower velocities, and sustained notes at higher velocities. The same technique is sometimes used to control orchestral instruments, to switch between staccato and sustained articulations.
Our piano is probably sounding much better with the new velocity triggered dynamic samples. But, if we play our sampled piano next to the real thing, we’ll still notice some differences, particularly when playing fast, staccato notes. With each release of the real piano’s keys, there is the sound of the damper stopping the strings from sounding. So, of course, it’s back to our piano to record some release samples. Here, we begin to get into techniques that will vary from developer to developer, but it basically involves playing a staccato note on an instrument, in our example piano, and isolating the sound that occurs after the note is released by editing out the rest of the note. We could go further and record release samples at different velocity levels. Most samplers have a release function that allows the triggering of these samples when MIDI notes are released.
Let’s say you’ve loaded up your favorite solo violin, and away you go, playing a brilliant staccato line in your latest opus. Your sampled violin was chromatically sampled, has several velocity layers, and release samples. So far, so good. But, now you notice that every time you play an A4, the same sample is playing; a dead giveaway of a sampled sound. The solution is to employ a technique known as “Round Robin,” where the instrument alternates between several sets of (hopefully) almost identical samples in sequence or at random. This way, when you repeatedly play your A4, you don’t hear the same, stubborn sample each time. The tradeoff is in RAM/disk usage for the user and added time and expense for the developer, since the number of samples required increases proportionately. If an instrument’s sample count is initially 100, making it 5x Round-robin (5 sets of alternating sample sets) requires 500 samples! The difficulty here is to record enough samples that you have enough “almost identical” samples to choose from. This is especially important for staccato instruments, where slight differences in the attack time in the samples can cause real problems for a composer when the timing of a phrase may change slightly each time it plays! Because of this, some libraries now allow the bypassing or resetting of Round-robin features.
Well, the staccato violin phrases are sounding quite convincing, but now you come to the soaring violin melody that requires long, sustained notes. But instead of a beautiful, connected line, what you actually hear is the attack portion of the violin notes sneaking in with each new note in your melody. One way around this is to simply make the instrument monophonic, and cross-fade quickly into the each new note, bypassing the attack portion of the new note’s sample. A better, but more complicated way is to use legato transition samples, where the transitions between intervals have been recorded by the original musician. Each interval would need to be recorded, starting with every note in the instrument’s range and playing from that note to each interval above and below, usually to an octave both ways! Then, the actual transition portion of each recording is isolated, which is usually a fraction of a second in length. Then, when you play a connected note (by not releasing the first key before you hit the next one), like an F4 to an A4, a script fades out the F4, fades in the tiny F4 to A4 transition sample, then cross-fades to the A4 sample. Some libraries forgo a separate transition sample, and record the transition as part of the target sustained note, which then requires only a single cross-fade.
True legato can make all the difference in creating a believable musical phrase, but it still often requires some patience to use. The legato transitions take a bit of time to happen, and can make the instrument feel sluggish. Even more than in the case of Round-robins, legato instruments require substantially more samples, and therefore more RAM and computing power. When done well, though, legato programming allows us to get about as close as we can to the real thing.
Key-switching refers to the use of, otherwise unused parts of the keyboard, as a way to control the instrument, most often by switching articulations. For instance, hitting a C1 note could bring up a violin’s legato setting, D1 the staccato setting, E1 the tremolo, and so on. The advantage here is that you could use a single instance of the violin to cover all these styles instead of loading up separate instruments on different MIDI channels. Through scripting, it is possible to use key-switches to control many other functions, as well.
Samplers and sample libraries have changed the way music is produced. We can now have the sound of a symphony orchestra tuned up and ready to play by simply booting up our computers … or perhaps a virtual guitarist or a drummer or a bagpipe player. We can resurrect the synthesizers, drum machines, and other musical machines of old and make new music with them. Today’s samplers are equipped with filters, LFOs, envelopes, and more wonders borrowed from synthesizers, making them sound design playgrounds for those willing to dig in. So grab a microphone, get in the kitchen, and hear what happens!