Using MainStage On Mac OS X

MainStage is a live-performance application, that lets you play a wide variety of quality instrument sounds. It runs only on Mac OS X having 64-bit architecture. It requires the best performance your computer's processor can provide. On my MacBook, the cooling-fan starts running soon after firing-up MainStage. My Mac Mini seems to run it with less stress, but the cooling-fan will come on, if the room temperature is even slightly warm.

MainStage has a fair number of instrument sounds – some of which I like so much I might perform an entire concert using them. My favorite sounds on it, are “Piano Strings”, and “Piano with Pad and Choir”.

Here is an example of playing that particular sound, using the KeyMusician Keyboard:

Improvisation On Piano Pad Choir Sound, using MainStage

The original version of MainStage (also called MainStage 2), won't run on Mac OS X 10.13 (High Sierra). For that, you need MainStage 3.

The later version (MainStage 3) has to be purchased separately (your purchase of the earlier version doesn't entitle you to upgrade). Fortunately, MainStage (either version) is available at a modest price.

Another good thing about MainStage, is that it lets you play the Logic Pro sounds (which would cost you a lot of money to buy) at no extra charge, though those sounds require a lengthy download to install them.

What you need to do to use those sounds, was not obvious to me, and required a lot of study (and cussing) before I finally discovered how to do it. The Help information wasn't much help, because it mainly covers the basic concepts of using MainStage, and using the Logic Pro sounds is an advanced concept.

Fortunately for you, this article will tell you how to do it.

One other disappointment in using MainStage, is that the only way to play a different sound for the chords than the melody, is to do a keyboard split, which unreasonably limits the range of notes you can use for your melody instrument.

Even given the above limitations, it is well worth its purchase-price, and definitely worth learning to use.

One thing MainStage is really good at, is allowing you to easily build your own layered (composite) instrument sounds, and we'll show you how to do it in this article. The audio file played using the link above, is an example of a layered sound, which is a composite of three different instrument sounds.

Turning-On The Internal MIDI Interfaces

To use the KeyMusician keyboard with MainStage (either the current, or the older version), you need the internal MIDI interfaces turned on. There are several steps here, but you only have to do it once.

Though you could also use a hardware MIDI interface, the quickest, easiest, and least-expensive way to connect the KeyMusician Keyboard to MainStage, is to turn-on the “IAC Driver” software MIDI interface already on your machine (but turned-off by default).

Here's how you do it:

In the Finder, click on (in the left pane) Applications. Then, in the right pane, double-click on the Utilities folder.

Double-click on “Audio MIDI Setup” utility.

If the “MIDI Studio” window doesn't appear (only the Audio setup window appears):

Note: This works differently on newer levels of Mac OS X.

You may have to click on the IAC Driver icon, as shown in the screen-shot below, to get the options to appear, allowing you to turn on the IAC MIDI interface(s):


In the “MIDI Studio” window, double-click the “IAC Driver” icon. When you do this, the “IAC Driver Properties” window should appear.

In that window, if the “Device is online” check-box is clear, click on it to select it. If it's already selected, the interface is already turned-on.

It's good to have at least two internal MIDI ports (one for the KeyMusician Keyboard, and one for the KMK MIDI Player/Recorder).

In the “Ports” pane, toward the lower-left, click the “+” button to add the “IAC Bus 2” port.

In the menu-bar (top of screen), click “Audio MIDI Setup”, and choose “Quit Audio MIDI Setup” in the menu that appears.

Configuring the KeyMusician Keyboard for MainStage

When you (later – not yet) start MainStage (or when you start it after having customized it, but choose “Quick Start”), it gives you the following choice:


With the “Keyboard” choice selected (as shown above), click the “Choose” button (as shown at the lower-right of the above screen-shot).

This choice will give you a good set of pre-defined instrument sounds for playing with your KeyMusician Keyboard (which is also a type of MIDI keyboard, having an 84-key range).

This choice also gives you the set of instruments configured in your MainStage.kmk, or MainStage-3.kmk configuration files. The first file is for the earlier (MainStage 2) version, and MainStage-3.kmk is for the latest version.

In any KeyMusician Keyboard version after 1.32, the MainStage-3.kmk configuration file will be supplied. Until then, you can obtain it by right (2-finger) clicking on the following two links, and choosing “Save Link As” (or whatever similar your Internet browser offers) in the pop-up menu. Save it in the “KeyMusician‑Keyboard” folder (the one having the dash (“-”)) of your home folder, which is where the KeyMusician Keyboard will look for them:

MainStage-3.kmk

MainStage-3.sid

The second link (above) supplies the instrument-definitions required for the MainStage-3.kmk configuration file, which are different from those already supplied for MainStage 2.

Do the same thing for the following link, which will give you the configuration file used in this article:

MainStage-3plus.kmk

Bring up the KeyMusician Keyboard application first, and select the appropriate MainStage (MainStage.kmk for MainStage 2, or MainStage-3.kmk for MainStage 3) configuration file.

Note: Make sure the “MIDI Output To” drop-box (on the “F1 (Help/Setup)” pane) is set to your IAC driver software MIDI interface, as shown in the screen-shot below:


If your IAC interface name is different from mine (I added a “1” to the first interface name), the configurations I supplied won't find it, and you'll have to specify it yourself. If you had to specify it, click the “Save Config” button to re-save it, so it's fixed next time.

Then bring up the MainStage application. It's best to bring them up one-at-a-time.

When you install MainStage, it is a good idea to download and install the additional instrument sounds, which are used in this article. It is a fairly long download. That will give you the Logic Pro instrument sounds, which would otherwise cost you about $200, so it's worth it.

When you finish the download and installation of the additional instruments, and MainStage comes up, you will see a window (probably covering the entire screen) something like this:


The right pane of the MainStage window shows the channel strips currently in use (generating the sound). The middle pane shows MIDI control mappings (at the top), and the Patch Settings (at the bottom). The left column of the window shows the available patches, in other words, instruments. I have made preference changes so that the “Bank” and “Patch” for each instrument are shown.

Click on the top-of-screen “MainStage” menu, and select “Preferences” from the menu that appears. The screen-shot below shows what I did to make MainStage use the “0...127” form of the patch number, which is what the KeyMusician Keyboard uses:


The “MIDI” tab is selected, and the “Program Change Range” (bottom) drop-box has been changed to “0...127”. After doing this, close the Preferences window.

Now, make the KeyMusician Keyboard the foreground window (overlaying MainStage) by clicking the KeyMusician Keyboard's icon in the dock.

You should be able to click on the various performance-pane tabs (or hit their function-keys), and try playing the various instruments, even while the additional instruments are being downloaded and installed, because the basic configuration doesn't require the Logic Pro instruments. I said “should”, because in my case, I waited for the download and install to complete. But I think it ought to work.

You will notice that the Chords instrument sound is the same as the melody instrument – even though a different instrument is specified in the “Chords” pane.

This is because the sound comes from the channel strips (shown in the right pane of the MainStage window), and when you switch instruments in the KeyMusician Keyboard by switching performance-panes, it changes the current set of channel strips, which changes the sound you hear. The most-recent instrument specified, determines the channel strips used.

The chords will, however, be played at a lower volume level, due to its use of a different MIDI channel (with different volume settings) than the melody panes.

Try playing chords and melody at the same time, using the different performance panes. See which instrument sounds you like. You can also experiment with changing the “Instrument” drop-box at the lower right of a performance-pane, which let's you try any of the basic instruments available.

Using the Logic Pro Sounds, And Building Your Own Sounds

In this section, we show you how to build your own sounds, which can include using the Logic Pro sounds (from that long download).

To aid in this, specify (in the F1 (Help/Setup pane of the KeyMusician Keyboard) the “MainStage-3plus.kmk” configuration you downloaded earlier in the article. This configuration works with MainStage 3 (not the earlier version).

We'll go through each of the performance panes, commenting on what's there, and where new sounds were created for a performance pane, we'll tell you how we did it.

If you follow the steps outlined in this article using your own installation of MainStage, you can create the same new instruments, and use them with this KMK configuration.


This performance pane uses one of the instrument sounds that comes with MainStage, which is an excellent grand piano sound. In uses MIDI channel 2, and in fact, all (but two) of the performance panes in this configuration use a separate MIDI channel.

Since the Chords instrument sound must be the same as the melody instrument, we have specified a 12-note arpeggio with a mid-range delay for the chords to make it more interesting.

You need KeyMusician Keyboard version 1.32 to do the arpeggios. So if you haven't got that level, go to the member pages and download and install the latest version.

If you have level 1.32 or later, specify a chord, and hold-down the play-key, listening to the arpeggio, then improvise a tune along with it.

Here's the F3 performance pane of the MainStage-3plus configuration (it shows up as PriorConfig.kmk because I made it my default configuration by saving MainStage-3plus.kmk as the PriorConfig.kmk configuration).


In this performance pane, I'm using MIDI channel 3 (the same as the function-key number), and one of the sounds supplied by MainStage 3. I'm also using the strummed-chords feature, which over a MIDI interface, requires KMK version 1.32 or later.

When you play chords with this performance pane, you will hear the strummed chord if you have KMK version 1.32 or later.

Here is the F4 performance pane:


I'm using MIDI channel 4, and a type of electric guitar. I would have used acoustic guitar, but the sound they supply for it only allows a single note at a time to play, so I substituted a guitar sound that handles multiple notes. This pane also uses the strummed chords feature.

Here is the F5 performance pane:


I'm using MIDI channel 5, and I've set the strummed-chords delay to zero, which makes the chord notes sound all-together (at the same time), as an ordinary chord.

But here, the “Instrument” drop-box specifies “100-User-1”.

The “MainStage-3.sid” instrument definitions file (used by the MainStage-3 configurations), has reserved space for 10 user-defined instruments in Bank 0, starting at patch number 100. If you need, you could edit (with TextEdit) the “MainStage-3.sid” file to add more.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “100”. Before I did that, this new sound was not accessible to the KeyMusician Keyboard unless I manually selected it. A lot of frustration went into finding out that important detail.

I selected the sound (from the “Patch Library” tab of the “Patch Settings”), by selecting: Instrument...Orchestral...Strings...Cellos. Notice in the right column of the MainStage window, called “Channel Strips”, the left-most column is called “Cellos” at the very bottom.

Here is a screen-shot of the KMK F6 performance pane:


I'm using MIDI channel 6, and I've set the strummed-chords delay to zero, which makes the chord notes sound all-together (at the same time), as an ordinary chord.

But here, the “Instrument” drop-box specifies “101-User-2”.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “101”.

I selected the sound (from the “Patch Library” tab of the “Patch Settings”), by selecting: Instrument...Orchestral...Woodwinds...Oboe. Notice in the right column of the MainStage window, called “Channel Strips”, the left-most column is called “Oboe” at the very bottom.

Here is a screen-shot of the KMK F7 performance pane:


I'm using MIDI channel 7, and I've set the strummed-chords delay to zero, which makes the chord notes sound all-together (at the same time), as an ordinary chord.

But here, the “Instrument” drop-box specifies “102-User-3”.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “102”.

I selected the sound (from the “Patch Library” tab of the “Patch Settings”), by selecting: Instrument...Orchestral...Choir...Chamber Choir. Notice in the right column of the MainStage window, called “Channel Strips”, the left-most column is called “Cham...Choir” at the very bottom.

Here is a screen-shot of the KMK F8 performance pane:


I'm using MIDI channel 8, and I've set the strummed-chords delay to zero, which makes the chord notes sound all-together (at the same time), as an ordinary chord.

But here, the “Instrument” drop-box specifies “103-User-4”.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “103”.

I selected the sound (from the “Patch Library” tab of the “Patch Settings”), by selecting: Instrument...Orchestral...Woodwinds...Flute Solo. Notice in the right column of the MainStage window, called “Channel Strips”, the left-most column is called “Flute Solo” at the very bottom.

Here is a screen-shot of the KMK F9 performance pane:


I'm using MIDI channel 9, and an 8-note arpeggio for the chords (which use the same instrument sound) to make it more interesting. The instrument used, is one of my favorites of the instruments supplied by MainStage, namely, Grand Piano and Strings.

Here is a screen-shot of the KMK F10 performance pane:


I'm using MIDI channel 10, and a 9-note arpeggio for the chords (which use the same instrument sound) to make it more interesting. The instrument used, is my favorite of the instruments supplied by MainStage, namely, Grand Piano with Pad & Choir.

Where MainStage is not a General-MIDI compliant synthesizer, there is no special usage associated with MIDI channel 10, so I use it for a melodic (rather than percussion) instrument.

Here is a screen-shot of the Drums performance pane:


In this case, the “Drums” performance pane is used for a melodic instrument. All you have to do to allow that, is clear the “Percussion” check-box in the middle-right of the screen-shot. For the chords, I'm using a 12-note arpeggio, with a mid-range delay.

The instrument used, is one of my favorites of the instruments supplied by MainStage, namely, Grand Piano and Pad.

Here is a screen-shot of the KMK F12 performance pane:


I'm using MIDI channel 1, but intended to use channel 12. Where it turned out it didn't matter, I left it as channel 1.

I was thinking, that if I used a different MIDI channel for each performance pane, the Program Change (instrument change) MIDI command sent when you switch performance panes, would only affect that performance pane, so it would leave the Chords pane instrument alone, and I could have a different instrument sound for the chords.

I finally came to realize, that using different MIDI channels for each pane doesn't help, because when you change instruments, you change the Channel Strips (in the right-most MainStage pane), which is what changes the instrument sound. In MainStage, there can only be one set of Channel Strips in-effect at a given time, which is what causes the Chords instrument to be the same as the Melody instrument.

This is another lesson I learned the hard way, from much experimentation.

I've set the strummed-chords delay to zero, which makes the chord notes sound all-together (at the same time), as an ordinary chord.

But here, the “Instrument” drop-box specifies “105-User-6”.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “105”.

I selected the sound (from the “Patch Library” tab of the “Patch Settings”), by selecting: Instrument...Orchestral...Brass...Trumpets. Notice in the right column of the MainStage window, called “Channel Strips”, the left-most column is called “Trumpets” at the very bottom.

Here is a screen-shot of the KMK Chords performance pane:


I'm using MIDI channel 1, and I've set the strummed-chords delay to mid-range, which makes a strummed chord (on KMK version 1.32 or later).

But here, the “Instrument” drop-box specifies “107-User-8”.

Here is a screen-shot of my MainStage window, showing that patch:


Notice the bottom pane of the middle column of the window, called “Patch Settings” (its “Attributes” tab). In that, I had to select the “Program Change” check-box, and set its value to “107”.

This is a unique, layered sound I created, which is a composite of Chamber Choir, String Ensemble, and Harp. I used the “Patch Library” tab of the “Patch Settings” pane to select the initial (Chamber Choir) sound.

I wanted a clear choir sound. Originally, I used Mixed Choir, but (like a massive choir), it was not very quick changing notes. Chamber Choir worked better for quick note changes.

Since the human voice has a somewhat limited range, I added String Ensemble to give the sound power in the high, and low ranges.

To give the sound a crisp attack-sound, I added the Harp sound.

So after all this, what does it sound like? You can click the link below to hear music improvised using my customized sound:

Choir-Strings-Harp Audio Example

It's easy to build your own layered (composite) instrument sound on MainStage. Here's how you do it.

Building Your Own Layered Sounds

The first step of building a layered sound, is to choose your primary sound. To illustrate this, I'm going to start with the Cellos sound:


The “Patch Settings” pane (lower middle of the screen-shot), using it's “Patch Library” tab, shows how I selected it. Also, it shows the original channel strips (in the right-most pane of the MainStage window) that were included with it.

To add an additional instrument-sound to the channel strip, click the “+” button near the upper-right of the “Channel Strips” pane. When you do that, specify the following in the dialog box that appears:


It suggests the “Number” value of 1, which is what I used. I think you could change it to specify a different order of channel strips. You need to select the “Instrument” radio-button, and keep the suggested “Keyboard 1” MIDI Input” choice, as well as the suggested “Output” choice. Then click the “Create” button (at the lower-right), and it will create a blank channel strip for you.

With that new channel strip it created selected (highlighted), choose an instrument sound for it in the “Channel Strip Library” tab of the “Instrument Channel Strip Inspector” pane (at the bottom middle of the MainStage window), as shown in the screen-shot below:


I chose the “Harpsichord” sound to give the Cellos sound (which has a soft attack-sound) a more crisp, percussive attack-sound.

Don't forget to specify a “Program Change” patch number for your new sound, or you won't be able to access it using the “Instrument” drop-box of the KMK performance pane.

The Assignments & Mappings Pane

The middle upper pane of the MainStage window lets you map MIDI controls (such as the “ASSIGNABLE” slider of the KMK performance pane), to available controls of the instrument defined by the current channel strips.

Though I experimented with this, I really didn't have a need to use it, given the many MIDI controls already available on the KMK performance panes.

But there may well be a case where you need to use it. Fortunately, the Help documentation tells you how.

Conclusions

MainStage is a very powerful live-performance application for Mac OS X, at a very reasonable price. I like it, and will use it in performances. It is really good for creating your own custom layered sounds, and it gives you the Logic Pro sounds at no extra cost.

That being said, though the sounds are quite good, I prefer the sounds of DimensionPro (a Windows program), personally. To play a different sound for the chords than the melody uses, Cubase (which runs on Mac) should work. Possibly, Logic Pro will let you do that, but I haven't tried that yet (perhaps to appear in another article).

The only drawback of MainStage, is that the chords sound and the melody sound must be the same, and that it is hard to figure out how to do advanced things with it.

Now I have gone through the frustrating experimentation needed to figure out to use it well with the KeyMusician Keyboard, it should be an excellent tool for all of you Mac users.

Give it a try!



You can return to the index of newsletter articles by clicking below:

Index Of All Newsletter Articles