Understanding The Architecture Of Sample-Based Virtual Instruments

The many different sample-based instruments out there can use an array of terms to refer to the same concepts. Here, Joe Albano simplifies the whole thing for you.  

Most artists and producers utilize sample-based Virtual Instruments to some degree nowadays. With so much production happening in smaller studios, the availability of good acoustic sounds inside-the-box makes it possible for even the smallest studios to have access to just about any instrument they might need. And of course for post-production, sample-based FX libraries are invaluable for sound design. Probably the majority of these users depend exclusively, or at least primarily, on library sounds—pre-programmed patches that come ready-to-play. Ambitious producers may want to roll their own on occasion, to utilize a collection of custom samples. Or—maybe more commonly—they may want to dig into a library instrument and make some changes to individual sounds or playability.

But once an enterprising producer decides to dig around under the hood, they may encounter an occasionally confusing hierarchy of individual samples, groups of samples, multiple layers of sounds, effects, and instrument combinations, all within a single virtual instrument patch. This is especially true if that producer uses different sample instrument brands, since each one will have its own take on how the individual elements are organized and accessed—the same functions are often labelled differently, and the same terms sometimes refer to different functionality in different instruments.

But there is an overall organizational structure—or architecture—that’s pretty much shared to some degree by all sample-based virtual instruments, despite different terminology and functionality in different organizational layers. For this article, I want to go over the basic architecture of a typical sample-based virtual instrument, which hopefully might help an adventurous producer suss out how a particular instrument implements those common functions.

Samplers/ ROMplers

Sample-based virtual instruments can be either full-featured Samplers or playback-only instruments, sometimes referred to as ROMplers. The difference is that a Sampler will let you dig all the way down to the individual sample level—the individual audio files of different notes, loops, or effects that provide the raw sounds—and tweak them at the individual level, or even create a new instrument from scratch by importing your own custom audio samples. A ROMpler usually doesn’t allow for the import of user samples, or typically even the editing and tweaking of the raw samples, which are presented as finished collections for a particular patch. However, some organizational functions will be available for tweaks in both Samplers and ROMplers—typically higher-level structural layers, like standard subtractive-synthesis tools like Filters, Envelopes, and Modulators, as well as any mixing tools and effects, which are included with most virtual instruments nowadays. So even if you’re not looking to roll your own instruments, you still may encounter some of the standard sampler architecture if you decide to tweak the overall tone or playability of a particular patch.

A full-featured sampler (Kontakt, L) and a playback-only instrument (SampleTank, R)

A full-featured sampler (Kontakt, L) and a playback-only instrument (SampleTank, R)

Instrument Architecture

All sample-based virtual instruments share a certain architecture under the hood—the way the individual recordings and processing elements are organized into a finished, playable instrument sound. In the most general terms, going from the raw materials to the finished patch, that will include the following levels of organization.

Sample Zones

The samples are the raw audio recordings that provide the sounds; depending on the type of instrument they’ll be samples of individual notes (or individual drums), individual loops, or individual recordings of related effects (for post production, like various door slams, footsteps, etc)—I’ll use a typical instrument—like a piano or drumkit—as an example.

In many samplers each individual sample constitutes a Zone, which requires several settings: a Root Key determines the key that plays back that sample at its original (recorded) pitch; a Key Range is then set to restrict that sample to only that key (drums or FX, typically), or to let it transpose in pitch up and down the keyboard (the individual sampled notes for a piano instrument). Other technical settings may be made at this basic level—loop slices, reverse playback—that only apply to that one individual sample.

In some samplers the term Zone might be used to refer to a collection of multiple samples that all comprise a single instrument (or drumkit); however that level of organization is usually referred to by a different term.

Keymaps

Keymap is the term traditionally used to refer to a collection of samples—like all the individual sampled notes in a piano, or the individual drum samples in a drumkit. “Map” indicates that this organizational layer also stores the key assignments—the Key Ranges—of the various individual Samples/Zones that make up a particular instrument. At this level there may be additional programming settings, which may apply to all samples in the Keymap. Note—sometimes Keymaps may be referred to as Keygroups.

The type of settings you find this deep in an instrument’s architecture—at the individual Sample/Zone/Keymap level—may include things like Velocity zones, which is actually one of the settings you may feel the need to tweak. Typically a playable Instrument—again, like a piano or drum—responds to different MIDI Velocities in a dynamic performance by triggering different samples of the same note(s), recorded at different dynamic levels—soft->medium->loud, etc—often many such velocity zones are employed to enhance the expressiveness of the virtual instrument.

If the Instrument is not comfortable to play, or if a particular Velocity level doesn't sound right, a player may request a fix, which could be done (on a full sampler, at least) by digging down into the instrument’s Mapping Editor and making the appropriate tweaks. I’ve done this with quite a few factory Instruments, in some cases making a less-expressive or flawed patch into a much more playable sound.

Mapping Editors in Kontakt (top) and Mach Five (bottom)

Mapping Editors in Kontakt (top) and Mach Five (bottom)

Groups

The next organizational layer has traditionally been called a Group. However, things start to get a little shaky here, because the term Group may refer to a different level of functionality in different samplers. In a more basic sampler like Logic’s older EXS24, a Group is made up of individual samples (including their mapping), and offers programming features that are not found on the front panel, like options for exclusive groups (hihats or cymbal notes in the group cut each other off) or round-robin triggering of similar sample variations for more natural-sounding response. Other more elaborate virtual instruments may include many additional features at this level, including insert and send/return effects (Kontakt) or modulators (Falcon); sometimes the Group level is where settings like velocity zones are stored. Some instruments have no “Group” level, using a different term for this general level of organization.

Layers

Layer is a term that may be used to refer to what I just described as a Group, or it may refer to a level that includes even more functions—in MOTU’s Mach Five sampler, a Layer consists of one or more Keygroups, and may be used to combine multiple Articulations; these are full keymaps of different samples of the same instrument, each one consisting of notes played with a different performance articulation, like (for strings) legato, staccato, pizzicato, etc. This is where settings might be made to select these different articulations in performance, like from dedicated keys in the lowest octave or controllers like modwheel, or even from different Velocities (EXS offers these settings in its Group level). In some instruments, a Layer is the organizational level just below a full, complete (self-sufficient) instrument patch.

Instrument/Program/Part

Here it gets more confusing. All these terms—and sometimes “Layer” as well—are used by different samplers to refer to an organizational level that consists of all the settings that comprise a full, finished instrument patch; this may include mixing, effects, and even performance scripting in high-end samplers. This is often what you select and load in the virtual instrument’s browser. The term “instrument” is sometimes used to refer to the separate file on the hard disk that contains all the basic settings—Zones, Keymaps, Groups, etc—and the higher-level parameter settings like values for filter, envelope, and modulation settings.

But exactly what constitutes a finished “instrument” varies: in EXS it includes only those basics, while in Kontakt it also includes mixing, effects, and scripts. This is where, if you want to make changes to a range of settings, you’ll have to do a little homework to make sure your changes are stored at this organizational level, or if there’s a higher level you’d need to save to.

Multi

A Multi is consistently a number of full “instruments” combined—the term refers to pretty much the same thing in almost all samplers (though some—like EXS—don’t directly include this level of organization within the sampler—you’d have to save multiple sampler Instruments as a Patch, in Logic itself). A Multi is where you create, save, and load multi-timbral patches, where each instrument can respond on either the same MIDI channel (for layering the combined sounds) or different MIDI channels. In Kontakt a Multi might be used to layer multiple articulations, combine finished instruments from different libraries, or set up a patch for split keyboard performance.

Different Architectures

Just for the sake of comparison, here’s a brief summary of the different levels of organization in some of the most popular samplers, from bottom to top:

EXS24:    Zone (Sample); Group; Instrument
Halion 6:    Sample Zone; Layer; Program; Multi
Kontakt 6:    Sample Zone; Group; Instrument; (Inst Bank (opt)); Multi
Mach Five:    Oscillator (Sample); Keygroup; Layer; Program; Part; Multi

Diagrams of the architecture of a couple of sample-based virtual instruments

Diagrams of the architecture of a couple of sample-based virtual instruments

Wrap Up

If all this sounds a little confusing—well, it can be, but with a little familiarity with both basic (common) sampler architecture and the degree to which the terminology and specific functionality of the various organizational levels differs in various sample-based instruments, it shouldn’t really be that difficult to get a handle on. Armed with a little knowledge of how things are laid out under the hood, the prospect of creating custom instruments, or making low-level tweaks and edits to factory sounds to suit your particular needs or preferences, may be a little less daunting.

Learn more about sampling and making your own virtual instruments: https://ask.audio/academy?nleloc=new-releases

Joe is a musician, engineer, and producer in NYC. Over the years, as a small studio operator and freelance engineer, he's made recordings of all types from music & album production to v/o & post. He's also taught all aspects of recording and music technology at several NY audio schools, and has been writing articles for Recording magaz... Read More

Discussion

Want to join the discussion?

Create an account or login to get started!