MIDI and GarageBand

DLS and General Midi Part one, GarageBand’s Best Kept Secrets.

This week I’m starting to tackle a little more complex subject than usual.
I’m working on a soon to be released Cell phone game (or as it’s known in the industry, a mobile entertainment project) and due to the paltry memory of some cell phones the music has to be delivered as a General MIDI file. No, General MIDI isn’t a French military officer; it’s the file format that we’ve come to know and hate from the animated Gif School of web design. The trouble with this project is that the original soundtrack was created in GarageBand. And I need to deliver a MIDI version of the thing. The reason is that as a WAV file the 30-second intro song would be well over 200K even at 8KHZ 16bit Mono. Whereas, the Midi file will be a modest 8K in size.

So the problem (challenge in suit speak) is to export MIDI from GarageBand. Impossible you say, “Everyone knows that GB can’t export MIDI.” Au Contraire, Mon fere!

Doable, yes. Easy Not so much. In fact this process involves at least three separate pieces of software. The first is an innocuous Audio Unit that’s included with GB called the DLS Music Device. The second is a freeware utility called MidiO (for Midi out) and the third is a MIDI sequencer like the relatively unknown shareware product, Easy Beat or a commercial product like Trackion, cubase or Logic Express.

First let’s attack composing for General MIDI in GB. A few of us already know that there are 126 General MIDI software instruments hidden within QuickTime. What if you could use them in GB? Well you can! I’ll try to make this as brief as possible so pay attention. If you open the Track info window for a software instrument in GB, you can scroll down the list of generators to the DLS Music Device. And if you click on the pencil icon for that device, it’ll bring up the interface for the DLS Device, such that it is.

Once there you will find a Sound bank menu that has a pull down menu that should say QuickTime Music Synthesizer by default. You may have some other items in this menu, if you have by chance come across some Sound Fonts in your travels, but I’ll get to these in a minute.

Right now let’s concentrate on the QuickTime Music Synthesizer (sounds sexy, doesn’t it?) If you were to play your MIDI controller at this point you would hear an acoustic Grand Piano. One that quite frankly sounds much worse than GB’s default Piano Software Instrument, but wait there’s more! The secret lies in your Midi controller’s program change command. Uh oh I hear brains frying. If you have a MIDI keyboard that’s worth any thing there is some way for you to do MIDI program changes. Which means you can change the Quicktime Music Synthesizer from its default piano sound to say something like a trumpet, which is sorely missed in the standard GB software instruments.

Read your keyboard’s documentation to see if your keyboard has a Program Change control. If it does your in luck. To overcome GarageBand’s glaring omission of a trumpet instrument, all we have to do is set our Program Change number to Number 57 and viola! Trumpet.

This seems to be an answer to many a GarageBand prayer. But wait because there is still evil afoot. If you record your newfound trumpet in GarageBand and then save the song you might be in for a surprise when you reopen the song. Your beloved trumpet has turned back into a piano. Bummer Dude!

Here is probably the coolest GB trick I Know. When you record your trumpet, hit a quick note at the beginning of your track and then do your Program Change as GarageBand is recording the track, this way the Program Change command is recorded in the Software Instrument track and will be there when you reopen the song. It is magic, No?

If you take it even further, you can record several Program Changes on a track. So not only could you have the number 57 trumpet but also the number 60 muted trumpet on the same track!

To find the program change numbers for all 128 General Midi instruments, Just Google General Midi Instruments and you’ll have a bunch of list to choose from.

While we have the track Info window open you might want to save a Software Instrument Called “DLS Device.” Make sure that you have the DLSMusicDevice selected in the Generator pull-down menu of the Track Info window.

Click Save Instrument button and save the instrument as “DLS Device.” And now you have an additional 127 software instruments for use in GB. Cool or what?

Okay, Okay I’m running out of time here, but there’s one more really cool thing about the DLSMusic Device. The DLSMusic device also plays Sound Fonts. What are Sound Fonts? Try Thousands, yes, thousands, of FREE downloadable software instruments. Whoa dude! Just search Sound fonts on the Web and you’ll come across more sounds than you can download in a lifetime. Take any of these .SF2 file and throw them into your Library> Audio>Sounds> Banks folder and they will be available to the DLSMusic device for use in GB. That ought to keep you busy for a while! Or at least until next week when I show you how to export MIDI files.

DLS and General Midi Part two, GarageBand’s Best Kept Secrets.

Last week I introduced you to the DLSMusicDevice which allows you to compose General MIDI songs within GarageBand. In part two of this series I’ll show you how to export your General MIDI compositions from GarageBand.

GarageBand is a powerful program but one of its most glaring faults is that it only allows you to export your music to iTunes. If you want to export a tune that you’ve composed using software instruments or the DLSMusicDevise you options are limited. The first and easiest method is to buy Logic Express and import your GarageBand composition into Logic express and then export a MIDI file from Logic Express. Of course if you have Logic Express it raises the question as to why you would compose in GarageBand instead of its big brother. For me, it’s a matter of simplicity. I like to sketch out my ideas using GarageBand as a “quick and dirty” tool then export the tune for polishing in a more sophisticated program. But I digress.

The second, and somewhat harder method of exporting MIDI from GarageBand involves the use of an Audio Unit plug-in called MidiO. MidiO is a freeware utility from RetroWare and can be downloaded from: http://home.comcast.net/~retroware/. Don’t worry I’ll post the link in the Noise section of MacAudioGuy.com. This plug-in will allow you to export a garageBand Software Instrument track as a MIDI stream. What this means is that you can only export one track at a time and you will have to a have some form of MIDI sequencer in order to record the MIDI stream. Kludgy? Sure, but you get what you pay for. So in order to use MidiO, you have to have some sort of MIDI Sequencer program. I like a cool shareware program called EasyBeat. Which is available from: http://www.macility.com/ . The next step is to set the generator of the track that you wish to export from GarageBand to MidiO.. Also set the MIDI output to MDI Virtual source in the edit window. Make sure that no tracks in GarageBand are set to record ready, because you’re likely to create a MIDI feedback loop. It’s far too easy to create a MIDI feedback loop with MidiO so be very careful. Next set EasyBeat or your MIDI Sequencer to use the MidiO as a MIDI Source and then set the sequencer to record. Once the MIDI sequencer is recording then hit play in GarageBand. If you’re lucky and did every thing right you should now be recording MIDI from GarageBand. Once you’ve recorded the stream, you’ll have to repeat the process for each track you want export and then you will have to offset the tracks so that they all start at measure one in your MIDI Sequencer. This process sounds more difficult than it is, but after a couple of tries, you’ll find it becomes at least tolerable.

Okay so now you’ve exported your software instrument tracks from GarageBand and have them as MIDI tracks in your sequencer. How do we turn them into a General MIDI file? The good news is that most sequencers make this fairly simple. In the case of Easy Beat, all you have to do is set the tracks instrument to an appropriate General MIDI instrument, and then after you have set all the instruments, export a MIDI file. And again if you’re lucky you will have a General MIDI file of your song.

Exporting MIDI from GarageBand is much more difficult than it should be, but now you know that it is possible, if your willing to jump through a few hoops.