Using GarageBand With The KeyMusician Keyboard

GarageBand is a sequence-editor and audio-editor, running on Mac OS X, providing a variety of low-latency, quality, software instruments. What it can do for you with the KeyMusician Keyboard depends on which version you have. Surprisingly, the older version gives you a lot more capabilities, but the new version is useful as well.

The new version is 10.2.0 (or later), and when you run it, its main window looks something like this (it differs here because I have added 3 software instruments):

The good thing about the new version, is that you can use multiple software instrument tracks (though only the currently-selected track can be played, regardless which MIDI channel you use).

You can set up a track for each of your favorite software instruments, and just click on the one you want to play. In the older version of GarageBand, you can only have one software instrument track, and you have to change its instrument to which one you want to play, by browsing the list of available instruments, an selecting one.

Here (above), I have clicked on the “Classic Electric Piano” track, so when I play through the software MIDI interface to GarageBand, only that instrument will sound, both for the chords, and the melody, even though they use different MIDI channels.

To play the GarageBand instruments, you first need to turn on the software MIDI interface, which is already a part of Mac OS X. The following section tells you how to do that.

Turning-On The Internal MIDI Interfaces

To use the KeyMusician keyboard with GarageBand (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 GarageBand, 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.

Playing GarageBand Instruments

Having turned on the IAC MIDI interfaces, it's probably a good idea to restart GarageBand, so it is aware of the software MIDI interfaces. It may complain that there is no MIDI keyboard connected to your machine, because it doesn't consider another application using a software MIDI interface to be a MIDI keyboard. If a dialog box appears, complaining about that, just dismiss the dialog.

Since GarageBand uses up most of the screen (which the KeyMusician Keyboard also needs), minimize the GarageBand Window. You can get it back by clicking its icon in the Dock.

Now, run the KeyMusician Keyboard application. It will probably want to use the Java Sound (Gervill) Synthesizer (which may not coexist well with the GarageBand software instruments).

As soon as it initializes, click on the F1 tab (or press the F1 key), and change the “MIDI Output To” drop-box of the F1 pane to use one of the IAC MIDI interfaces, as shown in the screen-shot below:

Once you've done that, it's a good idea to save that KMK configuration, so it uses GarageBand any time you specify that configuration. Click the “Save Config” button (shown in the screen-shot above), and specify a new name for the new configuration.

If you click the “Save Config” button again, and save it as “PriorConfig.kmk”, the next time you initialize the KeyMusician Keyboard, it will use that new configuration.

With GarageBand running (but with its window probably minimized), switch to one of the performance panes (such as F2), and start playing.

It doesn't matter what instrument, or bank, you have configured in any of the performance panes – you can't change the instrument that way in the current (newer) version of GarageBand.

To change instruments using the Bank and Instrument drop-boxes, you need the older version of GarageBand, and you need to configure a DLS instrument.

Note: It appears that DLS instruments are no longer supported on Mac OS X 10.13 (and above). So the rest of the article is only useful if you have Mac OS X 10.12 Sierra, or earlier levels.

If you have one of those older Mac OS X levels, but have the newer version of GarageBand, you still may be able to get the earlier version.

When I purchased my MacBook, it came with the older version of GarageBand. So when I looked in the App-Store, at “Already Purchased” applications, GarageBand-11 showed up there, and I was able to select it, and re-install it.

The Older Version Of GarageBand (GarageBand-11, Version 6.0.5)

GarageBand-11 is a sequence-editor and audio-editor, running on Mac OS X, providing a variety of low-latency, quality Audio Unit (AU) and Virtual Studio Technology (VST) instruments. It also includes the DLSMusic soundfont player, so you can use the FluidR3_GM soundfont with it. It has been around a long time on Mac OS X. It is available at low cost, or even no cost.

You can also use a number of other VST plug-ins it supplies for effects, and you can also use other VST instruments you already have, or purchase separately. Note: It appears the newer version of GarageBand does not allow you to use VST instruments.

GarageBand solves any latency problem you may have encountered, since there is no perceptible latency with GarageBand.

Its DLSMusic device provides the full set of General MIDI instrument sounds, with up to 16 MIDI channels per track. It will switch instruments by way of MIDI Program-Change messages, which are sent when you switch performance panes on the KeyMusician Keyboard. Because of this, it works well for live performance.

It works with the full set of percussion sounds supplied by the soundfont, as well as the full set of drum-kits soundfonts supply in bank 128.

You can also use the KMK MIDI Player/Recorder with GarageBand, when using a DLSMusic device (instrument), via one of the IAC internal MIDI interfaces.

So far, it sounds great – a lot of capabilities, for low (or no) cost. It sounds too good to be true.

Unfortunately, there is a big problem with it, when it comes to recording what you play.

The problem, is that when recording, any MIDI control message (such as volume, or program-change) sent on one MIDI channel, is also sent to all other MIDI channels. There is no way of filtering MIDI channels – each MIDI channel 'listens' to every MIDI channel.

That means that even though the Chords pane uses a different MIDI channel, with a different instrument and volume setting), when you switch to a different performance pane for the melody, that instrument and volume setting, also changes the Chords pane. So the chords will be just as loud as the melody, and use the same instrument.

This only happens during recording – when you use it for live performance, everything works fine, with no apparent problems.

You can't even go in and edit the recording to remove the unwanted control messages, because they give you no way to edit volume or program-change control messages!

That being said, if you only record one instrument (performance pane) at a time, you can use it for recording, and can edit those recordings, either as a piano-roll type display, or in music notation. You can also edit some of the MIDI control messages.

There is another shortcoming that limits what you can do with GarageBand. Though you can record multiple audio tracks such as a singer, and different physical musical instruments, you can only use one software instrument at a time.

That means, when using the instruments it supplies, you can only play one instrument at a time, and you have to manually select (within GarageBand) the instrument to be played.

The exception to this limitation, is a DLSMusic device (which counts a a single software instrument), that supports up to 16 General MIDI instruments (or whatever is in the soundfont used) played simultaneously, with instrument changes done by MIDI messages.

I couldn't figure out a way to do composite voices (layered voices), though it does supply an excellent “Piano and Strings” layered voice of its own.

There are a number of tricks I learned in using GarageBand with the KeyMusician Keyboard, and in this article, I'm passing those tricks along to you.

Copying The FluidR3_GM Soundfont

First, you need to copy the FluidR3_GM soundfont (installed with the KeyMusician Keyboard) to where the GarageBand DLSMusicDevice instrument expects to find soundfonts. There are several steps here, but you only have to do it once.

To do this, use the Finder to browse to where the FluidR3_GM soundfont is installed, as shown in the picture below:

It's in the “Soundfonts” folder of the “KeyMusician Keyboard” folder (in your home folder). The “KeyMusician Keyboard” folder (with a space, rather than a dash) contains everything installed with the application. The “KeyMusician-Keyboard” folder (the one with a dash) is the folder where you save configuration files and keyboard layouts, and has the supplied configurations as well.

So select the “FluidR3_GM-sf2” file (as shown above). You can then 2-finger click on it, and select “Copy FluidR3_GM.sf2” from the pop-up menu, to copy it to the clip-board.

Then browse to where it needs to be copied-to, as shown in the screen-shot below:

Select the “Banks” folder (of the “Sounds” folder, of the “Audio” folder, of the “Library” folder, under the Macintosh HD device), then 2-finger-click it, and select “Paste Item” from the pop-up menu. It should appear then in the “Banks” folder.

After doing that, you can close the Finder window.

Setting-Up GarageBand

Having completed the above tasks, you are ready to fire-up GarageBand.

Here's how to create a new project, having a new DSLMusicDevice instrument that uses the FluidR3_GM soundfont. There are several steps here, but you only have to do it once.

When you start GarageBand, indicate you want to create a new project. It will let you choose the type of project, by displaying a window such as this:

Choose the “Piano” project, as shown above, and click the “Choose” button (at the lower right). This type of project has just one full keyboard range software instrument, and its default instrument is Grand Piano (as is the case with MIDI). We will create a new DSLMusicDevice instrument from that, which will be able to play all instruments.

It will ask you for the name of your new project, which you can specify like what is shown in the screen-shot below:

In the main window that then appears, double-click on the Grand Piano instrument of the “Tracks” pane (at the upper left). It will then show a text-box, where you can type the name of your new instrument, as shown in the screen-shot below. I suggest typing the name of the soundfont it will use, such as “FluidR3_GM”. There are several steps here, but you only have to do it once.

Then double click your newly-named instrument (FluidR3_GM, in the “Tracks” pane, near the upper left of the screen-shot), and the right pane will re-appear, as shown below.

In the right-pane, click on the “Edit” tab, as shown in the screen-shot of just the right pane, below:

Then click on the “Piano” drop-box (near the upper right of the pane), and a pop-up menu of instrument choices will appear, as shown below:

Choose “DLSMusicDevice” from the pop-up menu, as shown above.

Then, click on the “Sound Generator” icon (in the top left area of the right pane, of the screen-shot below). It looks like a yellow ball with curved lines coming out of its left and right sides. When you do that, the “DLSMusicDevice” window will appear, as in the screen-shot below:

Click on the “Sound Bank” drop-box of the “DLSMusicDevice” window, and select the soundfont to be used, as in the screen-shot below. If the FluidR3_GM soundfont doesn't appear in the menu, you haven't copied it to where the DLSMusicDevice expects it to be. We told you earlier in the article how to do that.

You can then close the “DLSMusicDevice” window.

After doing that, click the “Save Instrument” button, at the bottom right of the right pane (above). It will let you choose the name of the instrument. I recommend specifying the name of the soundfont the instrument uses, then click the “Save” button of the “Save Instrument” dialog, as shown below:

Doing this will make this new instrument available in other projects (songs). If you click the “Browse” tab of the right pane (as shown below), you will see the new instrument “FluidR3_GM” exists, and is selected.

If you want, you can change the instrument's icon to something different from a piano, by clicking the piano icon at the lower left of the right pane (as shown below). Maybe something like a synthesizer icon would be more appropriate.

To save the finished project, click on GarageBand's “File” menu, and choose the “Save” entry of the menu, as shown below:

You now know how to create a DLSMusicDevice instrument. If you have other soundfonts you like to use, repeat the above steps for each such soundfont. Once saved, you can use these instruments in other projects.

Although the older version of GarageBand will let you add additional software tracks, it appears to only be able to play the first such track.

A KMK Configuration For GarageBand

I have supplied a KeyMusician Keyboard configuration file, optimized for using GarageBand with a DLSMusicDevice instrument.

You can download it by right-clicking the link below, and choosing “Save Link As” (or something similar your browser presents) from the pop-up menu that appears.


After downloading it, copy it (using the Finder) to the “Key-Musician-Keyboard” folder (the one with the dash in its name) of your home folder.

The next time you run the KeyMusician Keyboard application, you can specify that configuration file by using the “Configuration File” drop-box, as shown in the screen-shot below:

This configuration is similar to the “FluidR3_GM.kmk” configuration, supplied with the KMK application. I use MIDI channel 1 for all of the melody performance panes, and MIDI channel 2 for the “Chords” pane. As required by the General-MIDI standard, the “Drums” pane uses MIDI channel 10.

Notice that the “Output To” drop-box is set to one of the internal MIDI interfaces supplied on Mac OS X. We explained how to turn-on these two interfaces near the beginning of this article.

Here (below) is a screen-shot of a typical melody performance pane in the configuration you downloaded above:

The other melody performance panes (accessed by function-keys) all use MIDI channel 1, the same as this one.

The Drums pane uses MIDI channel 10, as shown below:

The Chords performance pane uses MIDI channel 2, as shown below:

With the above configuration loaded into the KeyMusician Keyboard, you should now be able to play the currently-selected DLSMusicDevice instrument in GarageBand.

Make Sure The KeyMusician Keyboard Has Control Before Playing Notes

If you press keyboard keys to play notes when some other window (such as the GarageBand window) has keyboard-focus, you are sending those key-strokes to that window, instead. The KeyMusician Keyboard window needs to have keyboard-focus in order to properly play music.

You can select which application has keyboard-focus, by clicking on the application (already active) in the dock (at the bottom of the screen).

Using The KMK MIDI Player/Recorder

If you play the exercise pieces with no MIDI interface selected in the player, it plays just the selected MIDI channel's part using the instrument of the Chords performance pane.

This will also work using GarageBand.

You can also specify one of the internal MIDI interfaces (the one not being used in the KMK F1 pane's “MIDI Output To” drop-box) to play the GarageBand's currently-selected instrument (which needs to be a DLSMusicDevice instrument, using a General MIDI soundfont, such as FluidR3_GM).

Composite Voices

GarageBand already has a layered voice (composite voice), called “Piano and Strings”. You can use this instrument, but both chords and melody will use this same instrument.

Unfortunately, I could not get composite voices to work using a DLSMusicDevice instrument, or any of the other instruments.

My Impressions On Using GarageBand

I really liked that it (the older version) provides a full General MIDI sound set, using soundfonts of your choice, and lets you have a single track for everything the KeyMusician Keyboard can play. Also, when playing (but not recording), the chords instrument can be a different instrument sound, and at a lower volume level than the melody instrument.

I noticed there was a short delay (with no sound) when switching performance panes, the first time you use a performance pane having a not-yet-used instrument. But that can be eliminated by clicking on each of the performance panes, before you start playing.

Unfortunately, using different instruments and different volume-levels for the chords, doesn't work during recording, which is a big handicap. You can still record everything using a single instrument (either one of the GarageBand-provided instruments, or a DLSMusicDevice soundfont player instrument), with the same volume level for both chords and melody.

Also, only being able to play one software instrument at a time, and having to manually select it (for GarageBand-provided instruments) is a considerable handicap.

I liked that GarageBand is either free, or reasonably priced, and that you can make use of the FluidR3_GM soundfont.

You can use the BS-16 Soundfont Player, which gives you the full flexibility – even when recording. But it appears the BS-16 Soundfont Player VST instrument is no longer available.

GarageBand is definitely an option to consider for improving your system – perhaps as an interim solution.

You can later purchase Cubase (which is available on Mac), that gives you all of the functionality you need, and is moderately priced.

You can learn about using Cubase by clicking the link below:

Using Cubase

So give GarageBand a try. It should work well as an interim solution to improving your Macintosh system, and may even be all you need.

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

Index Of All Newsletter Articles