Over the years there have been many ways to work with MIDI interfaces on a Mac — from simple devices that plugged into the Mac's now-defunct serial ports, to more advanced multi-port models requiring the user to tame the now-even-more-defunct OMS, the late Opcode's MIDI equivalent of a middle manager. (Come to think of it, how many years has it been since we mentioned OMS in Apple Notes?)
These days, working with MIDI on a Mac is much simpler, thanks to one of Apple's many Core frameworks in Mac OS X, Core MIDI. This is the scheme that deals with how your MIDI interfaces communicate with the computer, and how the applications running on your computer communicate with the attached MIDI interfaces. For the most part, it's pretty easy. When you want to attach a new MIDI interface to your Mac, it's usually a question of installing the appropriate software and plugging in the interface. In fact, with some simple MIDI interfaces you might not even have to install software, thanks to Core MIDI's built-in support for USB-class MIDI devices. But what happens when your sequencer (or other MIDI application) doesn't recognise the interface?
This month, I helped out a friend who was having difficulties getting a MIDI interface to work with a Mac Pro. The Mac Pro was running Pro Tools and the goal was to slave this system via MIDI Timecode (MTC), using the newly attached interface, from a Power Mac running Logic Pro. The MIDI interface in question was an old Emagic AMT8 and the Power Mac had been happily running with another AMT8 for some time without any issues.
The drivers for the AMT8 had been downloaded from Apple's Emagic Legacy Product Support page (which can be accessed via the old Emagic web address, www.emagic.de) and installed in the correct manner. However, the MIDI interface wouldn't show up in Pro Tools, and we confirmed that the Mac was indeed not recognising the interface by running Audio MIDI Setup (from the 'Applications / Utilities' folder) and checking to see if the interface showed up in the MIDI Devices page, which it didn't.
A correctly installed and connected MIDI interface should show up in Audio MIDI Setup as a rounded rectangle with a blue title bar and arrows to represent the MIDI ports along the bottom. If you don't see your MIDI interface as such an object in this window (as we couldn't), you can often kick it into life by clicking the Rescan MIDI button in the toolbar. Another point to note is that if the MIDI interface has been correctly recognised once by the system but is now having problems, the round rectangular object by which it's identified in the MIDI Devices page will be translucent.
Since the AMT8 wasn't showing up at all, the first thing I checked was the USB cable. It's amazing how many times a dodgy cable is the cause of a problem — and, actually, in the case of USB and Firewire cables, quite often a problem can be traced to the cable being too long when used with certain devices. However, even after we'd tried another cable the MIDI interface still wasn't recognised.
Given that the AMT8 was connected to an Intel-based Mac, it occurred to me that maybe my friend didn't have an Intel-compatible driver for the interface. Core MIDI drivers are installed into the 'Macintosh HD/Library/Audio/MIDI Drivers' folder on your computer, and when we checked this folder on the Mac Pro we found the correct EmagicUSBMIDIDriver.plugin file. However, by selecting this driver and pressing Apple+I to Get Info, we were able to see that under the Kind heading in the General section (see screenshot above) the file was described as 'Plug-in (Power PC)'.
Although my friend thought he had downloaded the correct drivers from Apple's web site, it turns out that only the Power PC drivers can be downloaded from the Emagic Legacy Product Support page. Apple only supply the Universal Binary drivers for Emagic's interfaces with the Logic 7.2 installer. This means that, so far as I can tell, if you don't have Logic 7.2 and you want to use an old Emagic interface with an Intel Mac, you'd better find a friend who does have Logic 7.2!
Once we had the correct version of the driver installed, the interface showed up just fine in Audio MIDI Setup. This underlines that it's crucial to check that you have the correct driver, and that you can't always rely on the manufacturer. Another important thing to bear in mind is that it's usually not a good idea to install the driver software that comes with your MIDI interface — or any piece of hardware, for that matter. The reason is that driver software tends to be updated quite frequently, especially if the product was released within the last six months. When you buy a device, it might have been sitting on a shelf for a few months, meaning that the driver software supplied with it is of a similar vintage. Downloading the driver software from the manufacturers web site is always a good idea, although it's worth checking the release notes (where manufacturers often include a compatibility guide), as it's not uncommon to find that the latest version might not be the greatest version for your system.
Vista Comes To Boot Camp
Apple recently released a 1.2 update to Boot Camp, the public beta that allows Intel-Mac users to run Windows on their Mac. This is actually a really significant update, partly because it now allows you to officially run Windows Vista natively on your Mac. Although it was possible to install Vista on a Mac before, it required having to hack around quite a bit, and personally I never got a system to smoothly dual-boot as you can when using Boot Camp. As with the previous version of Boot Camp, only 32-bit versions of Windows (including Vista) are currently supported, which is a bit of shame for those Mac users with 64-bit processors like the Core 2 or Xeon. But hopefully this will be addressed in another beta update, or in the final version of Boot Camp due to be included in Mac OS X Leopard.
Getting back to the story of trying to get the Mac Pro running Pro Tools to slave via MTC using the Emagic AMT8, we now had the interface accessible from within Pro Tools. However, when we started sending MTC from Logic to the Pro Tools computer via the MIDI interfaces, nothing happened. After checking to make sure the MIDI cables were correctly connected, the next stop was to check that the MTC messages were being sent correctly and not filtered out along the way (see the screenshot, right).
Like many MIDI interfaces (especially the more expensive multi-port models), the AMT8 has the ability to filter certain types of MIDI messages. This can be useful when you want to deliberately prevent certain devices from being flooded with unnecessary high-bandwidth MIDI data, such as timecode, but a real pain if you forget to disable such features when you use the interface for another purpose. If your MIDI interface has such filtering features, the manufacturer will usually supply software to configure the filtering with your interface. As with the drivers, check the manufacturer's web site to see if a newer version is available before installing. In the case of the AMT8, Apple supply the Unitor 8 Control software on the legacy support page, and although there is no Universal Binary version the Power PC version will work fine for both Power PC and Intel Macs.
If this sounds confusing — why does the Power PC version of Unitor 8 Control work on an Intel Mac when the PowerPC version of the driver doesn't? — there's actually a good reason. Unitor 8 Control is a regular application and is able to run in the same way that any Power PC application can run on an Intel Mac, thanks to Rosetta, Apple's translation technology that converts Power PC code to Intel code. Put simply, while Rosetta works with applications, it doesn't work with hardware drivers.
The more complex reason (which you can feel free to skip) is that Core MIDI drivers aren't real hardware drivers at all. Instead, a Core MIDI driver is a type of plug-in that talks to a real hardware driver and then deals with how Core MIDI sends and receives MIDI data to and from the hardware driver. So a MIDI interface may sometimes require two drivers: one hardware driver and one Core MIDI driver. However, in practice Mac OS X and Core MIDI can provide a great deal of generic functionality, so that quite often a USB hardware device can be handled by OS X and a simple USB-class MIDI interface can be handled by Core MIDI without requiring any drivers at all, as mentioned at the beginning of this article.
You might remember from past columns about Rosetta and Intel Macs that if an application runs Intel-native, only Intel-native plug-ins can be used, whereas if an application runs with Power PC code via Rosetta, that application will only see Power PC plug-ins. Because Core MIDI runs natively on Intel systems, it can therefore only see Intel-native Core MIDI plug-ins. However, when a Power PC MIDI application is run under Rosetta (such as Unitor 8 Control), Rosetta is still able to let that application talk to Core MIDI thanks to a clever abstraction layer.
Getting back to the story, it turned out that both my friend's AMT8s had MTC filtered on the input and output ports, and once we'd disabled the filtering the Pro Tools Mac could finally be slaved to the Mac running Logic. While Core MIDI's operation is pretty transparent, hopefully this month's column will give you a few ideas the next time you encounter a problem you can't quite see through.
The Core MIDI Troubleshooting Checklist
To summarise the steps given in the main text, if your MIDI interface isn't working correctly, bear the following in mind.
* Try changing cables. If possible, try using a shorter cable to connect your interface.
* Some MIDI interfaces are self-powered, but also have a power supply socket. If you have a number of devices on the same USB port, you might want to try powering your MIDI interface externally, in case there isn't enough power on the USB bus to go around.
* Make sure you have the correct version of the driver required by your interface. Check for known problems from the manufacturer, and remember that the latest version may not always be the best one to use.
* Check that the driver you have is compatible with your system's architecture. For example, if you're on an Intel Mac, do you have an Intel-compatible driver? (And vice-versa for Power PC-based Macs.)
* Does your MIDI interface have the ability to filter certain types of MIDI messages? If so, do you have these features enabled when they shouldn't be?