Before you start programming, it’s important to know the different kinds of virtual instruments, Audio FX plugins, and MIDI FX plugins available in MainStage. This way, you’ll always know what tool to reach fo . In this chapter, we’ll briefly discuss the virtual instruments and plugins you’ll likely use the most, and present a few common challenges you may encounter while programming a show.

Virtual Instruments

EXS24 MkII Sampler

EXS24 is MainStage’s built-in software sampler. A sampler is an electronic instrument that generates sound by manipulating and playing back pre-recorded samples of audio, and can be triggered by a variety of MIDI devices.

Have you ever wondered where the sounds on a digital keyboard come from? In most cases, an acoustic piano was recorded note by note at various velocities, and the resulting samples were assigned to the corresponding keys on a digital keyboard. In other words, digital keyboards can be thought of as samplers. Lastly, a software sampler is simply a sampler that runs on a computer.

Many of MainStage’s included sounds use EXS24. The sampler can also be used to playback your own samples as well. This means you can use EXS24 to create custom instruments and even trigger sound effects.

Vintage Electric Piano

Vintage Electric Piano, formerly known as EVP88 in previous versions of MainStage, is an electric piano plugin that emulates the classic sounds of Rhodes, Wurlitzer, and Hohner electric pianos.

Vintage Electric Piano emulates electromechanical instruments, so digital sounds from keyboards like the Yamaha DX7 cannot be recreated with this plugin.

Vintage Electric Piano has many customizable parameters including attack and release times, tine bell, damper noise, and stereo width. There is also an extensive effects chain that includes an EQ, chorus, phaser, and tremolo. Vintage Electric Piano is well regarded for its low CPU usage, and it’s a popular plugin for live use.

Vintage B3 Organ

Vintage B3 Organ, formerly known as EVB3 in previous versions of MainStage, is an organ emulation plugin. Just like a real B3 organ, the plugin allows you to control an upper and lower manual along with a pedal board for bass notes.

Vintage B3 Organ contains many customizable parameters including drawbar settings, vibrato/chorus, distortion, percussion, and even leslie speaker emulation. In the expert menu, even parameters like the condition of the organ can be emulated. Vintage B3 Organ is extremely well regarded for its authentic sounding B3 recreations, and is arguably the best B3 organ plugin on the market.

Vintage Clav

Vintage Clav, formerly known as EVD6 in previous versions of MainStage, is a clavinet emulation plugin based on the Hohner D6.

The plugin has many customizable parameters including pickup type and position, stereo spread, string quality, and brilliance among other things. There is also an effects chain that includes an EQ, compressor, distortion, and wah-wah.

Since Vintage Clav is a modeling plugin, you have complete control over parameters like string stiffness, tension modulation, click intensity, etc.

Retro Synth

Retro Synth is a virtual synthesizer plugin for creating synth leads, pads, basses, and other sounds. It features four different synthesis modes — analog, sync, table, and FM.

Analog mode is a two-oscillator VA synthesizer, perfect for recreating Moog-inspired sounds. Sync mode is similar to analog mode, except the second oscillator is synced to the first.

Table mode incorporates wavetable synthesis concepts, and is great for creating sustained evolving pads. Lastly, FM mode is aesthetically inspired by the Yamaha DX-7 and offers a basic FM synthesis with simplified operator controls and filters.

Legacy Virtual Instruments

MainStage 3 includes all the instrument plugins (EFM1, ES E, ES M ES P, ES1, ES2, EVOC 20 PS, Sculpture, and UltraBeat) from MainStage 2 for maximum compatibility. The inclusion of ES2 is great because it still offers much more in terms of flexibility and customizability when compared with the new Retro Synth plugin. For more information on MainStage’s virtual instruments, click here.

Audio FX Plugins

Channel EQ

An equalizer enables you to adjust an audio signal’s frequency balance. Channel EQ is the stock EQ plugin in MainStage, and it can be a useful tool for keyboard programming. While the art of EQ is something that should be discussed at length, here are a few ways you can use it in your programming.

A high pass filter is an EQ mode that lets high frequencies above a user-specified cutoff frequency pass through. In music production, a HPF is often used to make a mix sound less muddy. In order to make room for the bass and kick drum, a HPF is often used on other tracks in a mix The same concept can be applied to keyboard programming. If you find yourself having to layer a few different sounds,

A low pass filter is the opposite of a HPF. It lets low frequencies below a cutoff frequency pass. LPFs are useful for making sounds less shrill.

For less drastic changes, low and high shelves can be used. Peaking filters can be used to make changes to frequencies that aren’t at the two extremes.

The screenshot on the previous page depicts the Channel EQ plugin in its default state. As you can see, there are eight bands. The LPF and HPF is disabled by default. From left to right, there is a HPF, low-shelf filter, four peaking filters, a high-shelf filter, and a LPF.

Cutoff frequency can be specified under the EQ display, along with dB amount and slope. Slope refers to the extremity of the EQ boost or cut. A higher slope will result in a greater amount of dB being cut per octave.

Channel EQ also includes a handy Analyzer that can be enabled in the lower left corner of the window. Pre mode displays frequency balance before EQ processing, and Post mode displays frequency balance after processing. The graphical representation can be useful for identifying things like resonant frequencies.


Reverb plugins simulate space, and can be used to give your sounds an environmental context. While the sound engineer will likely be sending the whole band through a reverb, you might find yourself needing to use a reverb plugin to achieve a certain effect.

MainStage includes a number of reverb plugins including EnVerb, PlatinumVerb, SilverVerb, and Space Designer. PlatinumVerb is probably the best compromise between a good sounding plugin and efficient CPU usage. Try to avoid Space Designer if possible, as it requires much more CPU usage.

Other Audio FX Plugins

MainStage also includes a number of standard plugins — compressor, limiter, delay, echo, distortion, etc. For more information on MainStage’s Audio FX plugins, click here.

MIDI FX Plugins

MainStage 3 comes with a selection of MIDI FX plugins. These plugins process incoming MIDI data in realtime, and a few of them are really useful for keyboard programming.

Chord Trigger

Chord Trigger is probably the MIDI FX plugin you’ll end up using most frequently. It provides you with an easy way to map complex keyboard parts. In the screenshot below, Chord Trigger can be used to map the bottom staff to the top staff. While this is a simple example of Chord Trigger, you’ll get to see and program more complex examples in the following chapter.


Scripter lets you create customized MIDI processing plugins. While you’ll need some JavaScript experience to code your own plugins, there are a few factory presets that might prove useful for keyboard programming. Tom Xi and I have also developed a few scripts including Harp Gliss Trigger and Auto Patch Advance. For more information and to see the rest of our scripts, click here.

Other MIDI FX Plugins

Arpeggiator, Modifier, Modulator, Note Repeater, Randomizer, Transposer, and** Velocity Processor** are the other MIDI FX plugins included with MainStage 3. These plugins aren’t used as much in keyboard programming, but you might find a use for them in certain situations. For more information on MainStage’s MIDI FX plugins, click here.

This post is part of the Apple MainStage Keyboard Programming series. The next post in this series is *Keyboard Programming in Apple MainStage *.