A virtual instrument is a piece of software that turns user input (usually via MIDI keyboard) into sound. Some virtual instruments attempt to mimic acoustic instruments, while others go for a more synthetic sound. Virtual instruments are usually available as:
- Standalone software - A virtual instrument that does not need to be hosted within any other music software.
- Plugin - A virtual instrument that must be hosted inside a compatible music application. Plugins are typically in VST format (Windows/Mac/Linux), AU format (Mac), or LV2 (Linux).
- Sampler file format - Some instruments exist as a file (or collection of files) that adhere to a specific standard. These files must be loaded into a compatible standalone or plugin-based virtual instrument known as a sampler. The most common sampler file formats in use today are SoundFont, SFZ and Kontakt.
All of the virtual instruments I have published on this site are in either SoundFont or SFZ format. There are a number of standalone or plugin-based sampler programs that are compatible with SoundFont and/or SFZ sampler formats.
You can check out my virtual instruments by clicking on the links to the left.
The original SoundFont file format was developed in the early 1990s by E-mu Systems and Creative Labs, and it contains audio recordings of instrument sounds along with logic that determines how those samples get played. SoundFont was the format used in Creative's Sound Blaster sound cards beginning with the Sound Blaster AWE32, and continuing through the Live!, Audigy, and X-Fi lines. E-mu also used the format in some of its pro-audio sound cards, such as the E-mu APS. The sound generation was handled in hardware, as computer processors were not yet fast enough to handle the high-quality audio processing needed to produce a professional-sounding virtual instrument. Some of the early cards even had memory on-board in which to store the SoundFont's instrument samples. During the late '90s through the mid-2000s, many musicians would use SoundFonts in place of the expensive hardware samplers that were on the market at the time.
Over the years, updates were made to the SoundFont format, the most significant probably being the SoundFont 2.01 specifications. With this update, Creative/E-mu gave the SoundFont format the ability to map a MIDI input parameter to control any attribute of the instrument's sound. For example, you could now change how an instrument's loudness was affected by note-on velocity or map the mod wheel to control the lowpass filter cutoff. The Creative Audigy and later cards as well as the E-mu APS (and possibly others) follow this specification.
Unfortunately, almost nothing else does, and this holds true in 2016. The lone exception that I am aware of is FluidSynth, which in my opinion is the best SoundFont software synth by far. In some ways, it is even better than Creative/E-mu's own implementations. The only problem for many users is that FluidSynth does not exist as a VST/AU plugin, instead functioning as a General MIDI device. This means that you won't be able to easily use it in conjunction with popular recording software such as SONAR, Cubase, Logic, Mixcraft, et al. (If you are running a desktop Linux distribution, you can use Calf Fluidsynth if your music software supports LV2 plugins.) I have tried every SoundFont-compatible VST/AU I can find, and there isn't a single one that supports the SoundFont 2.01 specifications. You can read more about this on my blog post: Using SoundFonts in 2016.
Due to the lack of fully-compatible SoundFont players in popular plugin formats, most of my current SoundFonts are being developed for use with FluidSynth. These SoundFonts should also work well on Audigy, etc. hardware synths, but almost nobody is using this hardware in 2015, as it doesn't integrate well in a modern music production environment. If you want to use my SoundFonts in other players, please be aware that things may sound or behave strangely.
For Windows/Mac users, bismark's bs-16 and bs-1 are the best VST plugins. These plugins are not free. While they do offer a free version, bs-0, it is extremely crippled, and the paltry 4-voice polyphony is often completely consumed by a single note when playing instrument sounds made up of multiple layers.
Read more about the currently-available SoundFont software options in my blog post: Using SoundFonts in 2016.
Similar to SoundFonts, instruments in SFZ format are based on real recordings (or "samples") of instruments. The main differences between the two formats include:
- SoundFonts are self-contained (a single .sf2 file), whereas SFZ instruments are distributed as a collection of files: one or more .sfz files containing the instrument definitions in text format, and the samples as individual .wav (or .ogg, etc.) files.
- To create a SoundFont, you must use a designated editor. To create an SFZ instrument, you can use your favorite text editor.
- SFZ instruments can have much greater complexity compared to SoundFonts, and they support more modern sampler features such as key switches (assign certain notes to change instrument sounds/articulations), round-robin (where repeating a note plays different samples), release samples (sample is played when releasing the note, although there is a way to get SoundFonts to do this too), more filters, envelopes, effects, and generally more programmability in every manner imaginable. In this way, SFZ is very comparable to Kontakt, which is the most popular sampler format. Unlike Kontakt, however, top-quality SFZ-compatible samplers are available for free.
SFZ is an open format, and anybody can support it. Similar to the situation with SoundFonts, however, some programs do a better job of that than others. For Windows/Mac users, I recommend the excellent and free sforzando plugin by Plogue Audio. Sforzando is based on the excellent Aria Engine (the engine under the hood of Garritan Personal Orchestra, among other products). It supports most if not all of the SFZ 2.0 spec opcodes, and even adds a number of its own. All of my SFZ instruments are developed with this plugin in mind.
For desktop Linux users, I recommend using Plogue sforzando through Wine. Sforzando's SFZ 2.0 implementation is just miles ahead of anything that runs natively on Linux at this point in time (3/5/2016). Both Linux projects I am aware of (LinuxSampler and calfbox) are currently lacking support for many features.