GarageBand ’11 Control Surface Problems

© 2012, 2017 Harmony Systems, Inc. All rights reserved.

This article applies to the older versions of GarageBand for Mac (’11 and ’09) available prior to October 2013 that worked with the Delora gbTouch iPad and gbRemote iPhone apps that are no longer offered for sale.

Do you use (or have used in the past) an M-Audio Oxygen or Axiom MIDI Keyboard? How about a Frontier Design Tranzport or AlphaTrack? Or perhaps another MIDI controller that offers "GarageBand controller support"? If you answered yes, and you have been experiencing erratic operation when using Delora gbTouch or gbRemote apps, then you have probably encountered a known GarageBand issue.

Background

Before we describe some remedies and a work around, a little background should help you understand the problem and how to avoid it. GarageBand inherited its control surface support from Logic Pro. And like Logic Pro, it has a control surface driver system that allows it to work with many different controllers. Logic Pro includes many of these in the application. GarageBand, on the other hand, only comes with a few, including the "iControl" driver that gbLink uses as part of its way of getting information back and forth between gbTouch/gbRemote and GarageBand. Both GarageBand and Logic accept control surface drivers provided by hardware manufacturers to make their controllers integrate with Logic's and GarageBand's control surface system.

So far so good - but there is one major difference between how Logic and GarageBand each handle more than one control surface type, or multiple control surfaces at the same time. Logic, for the most part, handles set ups that have multiple control surfaces, whether they are used separately at different times, or together at the same time. Logic's preferences includes a "Control Surface Setup" option where you can configure these controllers in different ways to either control the same group of tracks from the different controllers, or split tracks across multiple controllers. Things do not always work as expected (for example OSC based controllers should be used one at a time with no other controller present) but it usually does the job.

GarageBand, however, does not "play well" with two or more control surfaces. If you try to start GarageBand with two compatible controllers, GarageBand will likely not respond to either controller correctly. Worse, once you have done this, the effects linger, even after restarting GarageBand. We will discuss in a moment how you can recover from this unfortunate circumstance.

In summary, GarageBand supports control surface drivers that can be provided by hardware controller manufacturers. But it does not allow you to use more than one controller at the same time, and if you accidentally do, GarageBand will no longer respond to control surfaces properly until steps are taken to repair the mishap.

So what does this have to do with me?

So you may be thinking to yourself that this does not apply because you do not remember installing GarageBand support for your hardware controller. Well not so fast. Some manufacturers install GarageBand drivers as part of an overall installation process and you may not even be aware that the driver has been installed, or that it even does anything special with GarageBand. Or maybe it’s been a long time since you got your USB MIDI keyboard.

M-Audio Oxygen and Axiom controllers

These popular USB keyboards have a software feature called "DirectLink". DirectLink lets you use the keyboard's faders, buttons, and rotary controllers to control basic GarageBand operations. This is accomplished by a GarageBand driver that was installed when you installed the version of DirectLink for Logic and GarageBand. So if you also use Logic and you wanted to use the keyboard as a Logic control surface you also got GarageBand operation as part of the deal.

Frontier Design Tranzport and AlphaTrack

These products are no longer available but when they were, Frontier Design offered driver support for various software packages, including GarageBand.

A real world example

You have an Axiom keyboard controller that you use for playing and recording GarageBand instruments. You never really bothered with its controller features so you may have even forgot that it has that for GarageBand. Your main focus is to use it as a keyboard.

You purchase gbTouch (or gbRemote) and download and install the companion gbLink OSX application. You start it and GarageBand, gbTouch (gbRemote) connects and everything seems to be going splendidly. Except moving faders on gbTouch does not seem to control the right ones on GarageBand (or none at all), and selecting tracks seems really messed up. Sometimes when you press rewind or fast forward, GarageBand makes strange sounds and doesn't stop unless you close your project. About this time your wonder whether gbTouch (or gbRemote) works at all.

The problem is that GarageBand is trying to use two control surfaces at the same time - the one from your Axiom keyboard and the one for gbTouch (gbRemote). And since this is not supported by GarageBand you get very erratic operation. Meanwhile instead of alerting you to this potential problem GarageBand merrily goes about its business as if nothing were wrong.

Avoiding the problem

The fundamental way to avoid this problem is to never use two or more GarageBand supported controllers at the same time. Easy to say but hard to do when one of those controllers is your keyboard. There must be a better solution than avoidance, right?

The guiding principle here is that GarageBand can only "see" one control surface at a time or it runs into problems. There are a couple of ways to accomplish this. The most direct is to choose which controller you wish to use and then make sure the other is not plugged in, powered, or running. For example if you wanted to use gbTouch one time you would start GarageBand with your M-Audio keyboard disconnected (or turned off). The next time when you want to use the keyboard you would start GarageBand with gbLink stopped. As long as you follow this procedure you should be OK.

But that's just the "avoidance" strategy. How do you use the keyboard and gbTouch at the same time? The only way to accomplish this is to remove the keyboard's GarageBand control surface driver. Without that driver, GarageBand treats the keyboard as "just another MIDI controller" that you can use to play and record, which is really the point. Use gbTouch for its enhanced control surface features and let the keyboard controller do what it does best.

Uninstalling a GarageBand control surface driver

This can be either easy or challenging depending on the driver in question. GarageBand looks for compatible drivers in a number of standard places. This provides companies with a lot of flexibility but it also makes it difficult to even check whether a driver is installed, let alone remove it. Fortunately some manufacturers, like M-Audio, include an "uninstaller" application. Using this is by far the easiest and safest way to uninstall a GarageBand control surface driver.

Another avenue to pursue is to ask the manufacturer’s technical support team to provide you with instructions. But before you do, check the manufacturer's FAQs or "knowledge base" to see if this question has already been asked and answered. Manufacturer's forums are another good source for this type of information.

If those methods do not work then you are faced with some detective work but caution is needed. Manually uninstalling files requires care (and always have a recent backup!).

One place to check that is a popular spot for stashing control surface drivers is inside the GarageBand application itself. What you may not realize is that OSX applications like GarageBand are really not single files. They are "bundles" which is really just a special type of folder. Inside the "application bundle" are other files and folders. In GarageBand's case there is a special folder that contains control surface drivers.

To peek inside GarageBand you need to open a Finder window on the Applications folder, locate GarageBand, then right click on the GarageBand application icon. Select the Show Package Contents command and you will see something like this:

garageband cs 1

Locate the folder MIDI Device Plug-ins. Inside you will find two or more files, each ending with ".bundle". These are control surface drivers.

GarageBand '11 comes with two of these, GiO.bundle and iControl.bundle. Any others have been installed to work with hardware controllers. In this example the M-Audio installer placed Axiom.bundle and Oxygen.bundle to support those two product families.

Once you have located these you can remove the ones you no longer wish to use. However never remove iControl.bundle! If you do gbTouch/gbRemote will not work.

You can remove a driver by dragging it into the trash. Before you do that though think about saving them somewhere else on your hard drive in case you change your mind.

One last step

Removing the extra drivers is only part of the solution. We mentioned previously that if GarageBand ever started with two or more controllers present that there was a good chance it corrupted its control surface preference file. Once this file is corrupted future control surface operation will still be erratic. The only way to fix this is to delete the corrupted file.

The name of the file is com.apple.garageband.cs and it is located in the folder:

[your home folder]/Library/Preferences

If you are running on Snow Leopard you can use the Finder to navigate to this folder. On Lion and later it's a bit more work since the [your home folder]/Library is now hidden (and for good reason! You can create a great deal of grief if you delete the wrong folders or files inside that folder).

To locate the Preferences folder on Lion or later you need to use the Finders "Go to Folder…" menu command (on the Go menu). Selecting this will show you the following:

garageband cs 2

Type in the exact characters you see in this example, press "Go" and the Finder will teleport to the Preferences folder.

Before you delete the file make sure that GarageBand is not running. If you forget this your effort will be wasted as GarageBand will recreate the file with all its flaws when it does quit.

Now that you have made sure that GarageBand has quit, locate the com.apple.garageband.cs file, then drag it to the trash. Empty the trash to make sure it stays deleted.

The next time you start GarageBand it will create a fresh version of the control surface preferences that it will then save when it quits. Once GarageBand has this "fresh start" your control surface should work as expected. Should you ever mistakenly run two controllers at the same time always exit GarageBand when convenient and follow the same procedure to delete the control surface preference file.