Showing posts with label general midi. Show all posts
Showing posts with label general midi. Show all posts

Sunday, August 23, 2015

Playing General MIDI Files on Ableton Live Part 4: Roland Sound Canvas (Hardware)

This is part 4 of a multi-part series on how to use General MIDI files with Ableton Live. The first part covers the basics of General MIDI and how Live handles MIDI files. These subsequent posts are step-by-step walkthroughs for a variety of instruments.


ABOUT THE INSTRUMENT

In this post we're going to use a hardware GM-compatible sound module, a Roland Sound Canvas SC-88. The instructions we follow for this are virtually the same for any GM-compatible hardware synth as far as Ableton Live is concerned. Some instruments might need to be put into a special GM mode in order to load the right patches, though. Consult your hardware manual if you're using a different synth.

USING THE INSTRUMENT WITH LIVE

  1. Create a new, empty Live set and press TAB to enter Arrangement view. (Session view technically works, but if your MIDI file contains time signature or tempo changes, Arrangement view is more appropriate.) Drag your General MIDI file from the Live browser into your Live set. If it's a Type 1 file, all the tracks in the file should end up on separate MIDI tracks in separate MIDI clips in the Live set.
     
    If it's a Type 0 file, Live will only import a single MIDI clip/track, regardless of how many musical parts the song contains. You will have to convert the file to Type 1 and start over. See the first article in this series to learn how to convert MIDI files.
     
  2. For each new MIDI clip that Live created, select the MIDI clip and look at its Pgm Change settings in the Notes panel of the clip view. Each imported track (except for maybe the drum track) should at least have a Program Change value selected.


    If the current clip is not a drum channel, and you see no Pgm Change setting, Live might not have properly detected program change events for that track. See the first article in this series to learn how to locate program change numbers in MIDI files.
    Note: If your MIDI file contains program changes that occur within the song (if a single musical part changes tones as the song progresses) you will have to split those MIDI clips into separate clips so you can set the correct program change value on each clip individually. MidiYodi tells you where in the song the program change events occur, so they should be relatively easy to locate in your Live set.
     
  3. Since we're working with hardware, there are a couple more things we need to check out before proceeding. First,  go to Options > Preferences > MIDI Sync and make sure that the MIDI Output port that leads to your hardware synth is enabled. My Sound Canvas gets its MIDI from Port 8 of my MOTU Midi Express 128, and I can see that the Track box for that port is set to On, so I know this is set up properly.
  4. Now look at the Audio tab of Preferences and click Input Config to confirm that the audio inputs that receive sound from your hardware synth are configured. My Sound Canvas is connected to input ports 9 and 10 on my interface, and I'm going to use them as a stereo pair, and I see that "9/10 (stereo)" is enabled, so we're all set.
  5. Go to Create > Insert MIDI Track to add a new empty track in your project, and then drag the External Audio Effect device from the Audio Effects category of the Live browser into the track's Device View area. (Don't use a track that already has a MIDI clip on it; doing so will cause headaches if you ever want to mute or solo individual tracks.)

    Important: Leave the Audio To field set to "No Output", but set the Audio From field to the interface inputs that your synth is connected to. In my case, that's inputs 9/10.

    Now, you might ask, "Why are we using a MIDI track instead of an audio track for this?" Well, you can use an audio track, but when you do that you have to worry about track monitoring, and how Live compensates for delays when recording at various monitor settings. I prefer to use Live's External Instrument and External Audio Effect devices instead, because they behave more like plugins and they automatically compensate for latency.

    Next, you might ask, "Why use the External Audio Effect device instead of the External Instrument device?" Well, that's because the External Instrument device requires to to select a MIDI output in order to be able to select an audio input. Since we're putting this device on a track that intentionally has no MIDI, the External Audio Device makes more sense here. Setting Audio To to No Output basically turns the device into a live audio input.

    One further note: Since the External Audio Effect device is only available in Live Standard or Live Suite, if you're using Live Intro, you WILL have to use an audio track for this instead, and make sure that track monitoring is set to IN to hear incoming audio, or (better yet) use your interface's direct monitor ability instead.
     
  6. For each MIDI track in your Live set that has a MIDI clip on it, change the Output Type setting to point to the track where you loaded your virtual instrument plugin, and change the Output Channel setting to the MIDI channel you want to use for that part. For the most part the actual channels you choose don't matter (so long as they're different from each other), however, you should only use channel 10 for your drum parts (parts that actually use the multi-sample GM drum layout).
  7. Now try playing your song!
    If you find that the Sound Canvas isn't loading the correct patches, or something just doesn't sound right, check these things:
    • Each MIDI clip (except perhaps the drum track) has a Program Change setting.
    • You are using the correct Program Change values (remember, they should be the MidiYodi value plus 1 because of how Live numbers program changes).
    • Make sure your drum track is routed to MIDI channel 10, and that you have a GM drum kit loaded on that channel in your plugin.
    • Your MIDI output ports and audio input ports are enabled in Preferences, and the correct ones are being used in your tracks.
    • You started playback from the very beginning of the song, since the program change events only fire at clip start. Click the Previous Locator button several times to make sure you're playing from the beginning.
      The Previous Locator button.
That's it for now. Go back to part one for links to the rest of the series, in case you missed anything.

Playing General MIDI Files on Ableton Live Part 3: Sonic Cat Purity

This is part 3 of a multi-part series on how to use General MIDI files with Ableton Live. The first part covers the basics of General MIDI and how Live handles MIDI files. These subsequent posts are step-by-step walkthroughs for a variety of instruments.


ABOUT THE INSTRUMENT

Sonic Cat's Purity is a good-sounding multi-timbral ROMpler plugin for Mac and PC. It includes a large library of sounds, in addition to a full GM implementation. (Purity was originally released by a company named Luxonix. I don't know if the property shifted hands or whatever, but Sonic Cat sells it now.)

There is a concerning note on the Purity product page that says: "Not compatible with some systems. Especially Logic Pro X,  Ableton Live and NI Maschine." I really don't know what to make of it, since I'm obviously able to use it just fine in Live (although I'm a Windows user, so I don't know if it's any different on Mac OS). Anyway, there is a free demo available at the product page, and I do recommend you test that out before paying for it. The download is a single ZIP file but it contains both EXE (Windows) and DMG (Mac) installers.

Note that Purity is 32-bit only. If you are running a 64-bit version of Live, you'll have to use a bit-bridging product like jBridge or 32 Lives to get it to work in your DAW. I wrote some instructions for doing exactly this with jBridge for Windows.

USING THE INSTRUMENT WITH LIVE

  1. Create a new, empty Live set and press TAB to enter Arrangement view. (Session view technically works, but if your MIDI file contains time signature or tempo changes, Arrangement view is more appropriate.) Drag your General MIDI file from the Live browser into your Live set. If it's a Type 1 file, all the tracks in the file should end up on separate MIDI tracks in separate MIDI clips in the Live set.
     
    If it's a Type 0 file, Live will only import a single MIDI clip/track, regardless of how many musical parts the song contains. You will have to convert the file to Type 1 and start over. See the first article in this series to learn how to convert MIDI files.
     
  2. For each new MIDI clip that Live created, select the MIDI clip and look at its Pgm Change settings in the Notes panel of the clip view. Each imported track (except for maybe the drum track) should at least have a Program Change value selected.


    If the current clip is not a drum channel, and you see no Pgm Change setting, Live might not have properly detected program change events for that track. See the first article in this series to learn how to locate program change numbers in MIDI files.
    Note: If your MIDI file contains program changes that occur within the song (if a single musical part changes tones as the song progresses) you will have to split those MIDI clips into separate clips so you can set the correct program change value on each clip individually. MidiYodi tells you where in the song the program change events occur, so they should be relatively easy to locate in your Live set.
     
  3. Go to Create > Insert MIDI Track to add a new empty track in your project, and then drag the Purity plugin into the track's Device View area. (Don't use a track that already has a MIDI clip on it; doing so will cause headaches if you ever want to mute or solo individual tracks.)
  4. In Purity, click the Preset button above the virtual keyboard and then select the GM Normal category to place Purity in GM mode.
  5. For each MIDI track in your Live set that has a MIDI clip on it, change the Output Type setting to point to the track where you loaded your virtual instrument plugin, and change the Output Channel setting to the MIDI channel you want to use for that part. For the most part the actual channels you choose don't matter (so long as they're different from each other), however, you should only use channel 10 for your drum parts (parts that actually use the multi-sample GM drum layout).
  6. Now try playing your song!
    If you find that Purity isn't loading the correct patches, or something just doesn't sound right, check these things:
    • Each MIDI clip (except perhaps the drum track) has a Program Change setting.
    • You are using the correct Program Change values (remember, they should be the MidiYodi value plus 1 because of how Live numbers program changes).
    • Make sure your drum track is routed to MIDI channel 10, and that you have a GM drum kit loaded on that channel in your plugin.
    • You started playback from the very beginning of the song, since the program change events only fire at clip start. Click the Previous Locator button several times to make sure you're playing from the beginning.
      The Previous Locator button.
In the next post, we'll take a look at using a hardware Roland Sound Canvas.

Playing General MIDI Files on Ableton Live Part 2: HALion 5 and HALion Sonic 2

This is part 2 of a multi-part series on how to use General MIDI files with Ableton Live. The first part covers the basics of General MIDI and how Live handles MIDI files. These subsequent posts are step-by-step walkthroughs for a variety of instruments.

ABOUT THE INSTRUMENTS

Steinberg's Cubase Pro and Cubase Artist both include a GM-compatible multi-timbral synth plugin called HALion Sonic 2 SE. While this particular version of the plugin only works in Cubase, Steinberg sells the full version of HALion Sonic 2 as a standalone product which works in any Mac or PC DAW with AU or VST support. You can also get a full version of HALion Sonic 2 in Steinberg's Absolute VST Instrument Collection.

HALion Sonic itself is a "player" version of Steinberg's powerful HALion 5 sampler. (The HALion 5 package includes a copy of HALion Sonic 2 as well.) Like HALion Sonic, HALion 5 works on Mac or PC, and ships in 32-bit and 64-bit flavors. Both products also sport full General MIDI compatibility.

USING THE INSTRUMENTS WITH LIVE

  1. Create a new, empty Live set and press TAB to enter Arrangement view. (Session view technically works, but if your MIDI file contains time signature or tempo changes, Arrangement view is more appropriate.) Drag your General MIDI file from the Live browser into your Live set. If it's a Type 1 file, all the tracks in the file should end up on separate MIDI tracks in separate MIDI clips in the Live set.
     
    If it's a Type 0 file, Live will only import a single MIDI clip/track, regardless of how many musical parts the song contains. You will have to convert the file to Type 1 and start over. See the first article in this series to learn how to convert MIDI files.
  2. For each new MIDI clip that Live created, select the MIDI clip and look at its Pgm Change settings in the Notes panel of the clip view. Each imported track (except for maybe the drum track) should at least have a Program Change value selected.


    If the current clip is not a drum channel, and you see no Pgm Change setting, Live might not have properly detected program change events for that track. See the first article in this series to learn how to locate program change numbers in MIDI files.
    Note: If your MIDI file contains program changes that occur within the song (if a single musical part changes tones as the song progresses) you will have to split those MIDI clips into separate clips so you can set the correct program change value on each clip individually. MidiYodi tells you where in the song the program change events occur, so they should be relatively easy to locate in your Live set.
  3. Go to Create > Insert MIDI Track to add a new empty track in your project, and then drag your plugin of choice (HALion 5 or HALion Sonic) into the track's Device View area. (Don't use a track that already has a MIDI clip on it; doing so will cause headaches if you ever want to mute or solo individual tracks.)
  4. HALion 5 only: If you are using HALion 5, click the Load Multi-Program button and then double-click General MIDI Multi to prepare HALion 5 with a 16-part GM-ready configuration.
  5. In HALion 5, click Options and scroll down to the MIDI CONTROLLER section. Make sure to enable both Program Changes and RPNs 0/1/2.


    In HALion Sonic 2, click Options and then select GM Mode under Program Changes in the Global section of the page. The plugin will automatically populate all channels with some default instruments.
  6. For each MIDI track that has a MIDI clip on it, change the Output Type setting to point to the track where you loaded your virtual instrument plugin, and change the Output Channel setting to the MIDI channel you want to use for that part. For the most part the actual channels you choose don't matter (so long as they're different from each other), however, you should only use channel 10 for your drum parts (parts that actually use the multi-sample GM drum layout).
  7. Now try playing your song!
    HALion 5 playing an imported General MIDI file.
    If you find that either HALion 5 or HALion Sonic 2 aren't loading the correct patches, or something just doesn't sound right, check these things:
    • Each MIDI clip (except perhaps the drum track) has a Program Change setting.
    • You are using the correct Program Change values (remember, they should be the MidiYodi value plus 1 because of how Live numbers program changes).
    • Make sure your drum track is routed to MIDI channel 10, and that you have a GM drum kit loaded on that channel in your plugin.
    • You started playback from the very beginning of the song, since the program change events only fire at clip start. Click the Previous Locator button several times to make sure you're playing from the beginning.
      The Previous Locator button.
In the next post, we'll take a look at Sonic Cat Purity.

Saturday, August 22, 2015

Playing General MIDI Files on Ableton Live Part 1: Getting Started

Ableton Live doesn't natively support the General MIDI standard, but with the right tools and techniques you can use it to load and play GM files the way they were meant to be heard.


This multi-part series describes how Live handles MIDI files and covers some applications and instruments that will help you make the thousands of free General MIDI files available on the Internet work inside Live. But before we get started, let's settle on some terminology.

WHAT ARE GENERAL MIDI FILES, EXACTLY?

Here are some important definitions:
  • MIDI is the Musical Instrument Digital Interface standard that defines a way for instruments by different manufacturers to communicate with one another, and with computers. The MIDI standard includes the protocol that instruments use to communicate, the physical connectors on MIDI instruments and devices, and how MIDI information is stored. Instead of streaming audio like the AU or VST standards, MIDI defines a number of MIDI events that instruct instruments what to do. Common MIDI events are note on/off, program change (patch selection), and CC (continuous controller) messages for things like pitch bend, stereo panning, or instrument volume.
  • Standard MIDI Files (SMFs) are files that contain MIDI data. Basically, whatever can travel down a MIDI cable can be stored in a Standard MIDI file, including not just note and program change data, but even proprietary SysEx data (like patch banks and firmware updates). One slightly confusing thing about Standard MIDI Files is that despite the SMF acronym, the files usually have a .MID filename extension. There are different kinds of Standard MIDI files:
    • Type 0 files contain a single data segment that includes the entire contents of the file. If the file contains a multitimbral song with parts intended for multiple MIDI channels, all of this data is jumbled together in the same data segment, and it's up to the sequencer or instrument loading the file to route events to the right channels during playback. These are the most common kind of MIDI file, and the most widely supported.
    • Type 1 files can include multiple "tracks" which are most commonly used to contain separate musical parts meant for different MIDI channels. The order of these tracks in the file does not necessarily correspond to the MIDI channels of the data they contain (so, track 1 might have notes meant for MIDI channel 10). Tracks can also be named, which many composers use to describe the musical role of each particular track.
    • Type 2 files are described by the MIDI standard, but they never caught on. (In fact I don't think I've ever seen one.) Type 2 files can contain multiple Type 1-style songs; kind of like a self-contained MIDI playlist. Since these files are so rare there are almost no tools available that support them.
  • General MIDI (GM) is a high-level standard that defines a common set of sounds, effects, and features that guarantee that a song composed for one GM-compatible instrument will sound more or less the same when played on another GM-compatible instrument, even if it was made by another manufacturer. Instruments that are certified to support General MIDI generally have a special logo indicating what level of General MIDI they support. There are different flavors of the general MIDI standard. The two most common are:
    • General MIDI 1 (GM1 or just GM) was inspired by the patch bank and drum layout of the Roland MT-32 multitimbral desktop sound module. While the MT-32 only supported 9 simultaneous MIDI channels (8 chromatic parts and 1 drum channel), the GM standard expanded the requirement to support 16 simultaneous MIDI channels. GM1 devices must also have on-board Chorus and Reverb effects and support a certain set of MIDI events and CC messages. GM1 is the most widely supported form of General MIDI.
    • General MIDI 2 (GM2) expands the required set of sounds and control messages, offering more variety and control in MIDI compositions.
  • And that leads us to General MIDI files, which are standard MIDI files that contain songs that conform to the General MIDI standard. All GM files are SMFs, but not all SMFs are GM files.

ALSO, REALLY? GENERAL MIDI?

Many folks in synth and music production circles consider the term "General MIDI" a synonym for "cheap" or "cheesy," and that association is sometimes warranted. While I grant that very few devices with a "GM" logo on them were ever at the cutting edge of synthesizer technology, I think the core idea of General MIDI- the ability to write a song for one MIDI instrument that plays more or less the same on a different MIDI instrument regardless of the device's manufacturer- has true merit.

As an original owner of a Roland MT-32 (and its big brother, the D-110), I've grown so familiar with the GM sound set that I actually use it when I'm tracking out my own song projects. This way I spend almost no time programming patches or browsing presets; I just dial in basic sounds for the musical part I'm working on so I can get my performance down. Once all my MIDI is tracked out, I'll (usually) replace the GM patches with more suitable, customized sounds.

Another nice thing about GM files is they can be a good resource for new composers and producers, who want to look at how the MIDI tracks are laid out, what kind of controllers the original composers used to give their songs more life. You can examine both the musical structure and actual MIDI implementation/execution of a finished song.

HOW LIVE HANDLES MIDI

Live has some unique ways of handling MIDI that present challenges when it comes to working with GM files. Here's a quick rundown of Live's MIDI capabilities and limitations.
  • Live can import Type 0 and Type 1 MIDI files, but it can only export Type 0 files (via the Export MIDI Clip feature).
  • If you import a Type 0 file into Live, it will only appear as a single MIDI clip on a single Live track, even if the original file contained multiple musical parts intended for different MIDI channels. MIDI clips in Live can only play on a single MIDI channel, meaning that Type 0 files almost never play properly when loaded into Live.
  • If you import a Type 1 file, though, Live creates separate MIDI clips on separate tracks for each virtual track in the imported file.
  • Live 9 mysteriously lacks some nice features that Live 8 has when it comes to browsing and previewing MIDI files. In the Live 8 browser, Type 0 files expand to reveal a node named after the composition the file contains (assuming the person who created the file included a name). With type 1 files, the node expands to reveal separate lanes for each track in the file, which you can preview and import one-at-a-time.
    Browsing MIDI files in Live 8.
    Strangely, in the Live 9 browser, nodes for MIDI files are not expandable, so there is neither any information about the contents of the file, but you also can't preview or import separate tracks from a Type 1 file like you can in Live 8.
    Browsing the same MIDI files in Live 9.
  • When you preview a General MIDI file in the Live browser, it usually sounds terrible, since Live just uses a single simple tone for every part, even if the song includes many parts for different instruments. This is especially noticeable in songs with percussion parts, since Live employs a chromatic tone for all the different drum hits. Don't worry when your General MIDI files sound terrible in the Live browser!
    Live's browser preview for MIDI files uses the same tone for all parts in the song.
  • Unlike most other DAWs, Live discards or ignores certain kinds of MIDI data when you import MIDI clips. Program change and System Exclusive (SysEx) events are among the kinds of MIDI messages that Live discards. If the GM file you're importing contains program changes (patch selections) at the very beginning of the song, Live will attempt to set the MIDI Program Change property of the MIDI clips it creates when you first import the file. Any program changes that occur over the course of the song are completely lost, however.
  • Live generally preserves controller (CC) data in MIDI files, so things like volume, pan, and pitch bend tend to work as intended when imported. You can view and edit this controller information in the Envelopes panel of the selected clip.
  • Importing MIDI files in Live is quite simple. Just drag your file from the Live browser into Arrangement or Session view. If it's a Type 1 file, Live creates a different MIDI clip for each "track" inside the file, and will attempt to set the Program Change property of each MIDI clip to the first tone used on that track. Live adds additional MIDI tracks to your project if there are more tracks in the file than there are in the project.
  • Note that when you do import a MIDI file into Live, Live will not attempt to actually load any instruments or set MIDI channels on any new tracks it creates in your project. That's all up to you, and we'll cover how to do that stuff in the following posts.
All right, so now you know all about how Live handles MIDI files. Next we'll talk about how to get your MIDI files ready for a smooth import into Live.

THE RIGHT TOOLS FOR THE JOB

In order to get your General MIDI files to play properly in Live, you'll need to use some external software to inspect and possibly convert the file. I have only found a couple of tools that do everything I need. Here they are:

 MidiYodi (by Canato)

  • Description: This is a multi-platform tool for examining, editing, and playing MIDI files. It's a Java application, and you need to already have version 1.7 or later of the Java Runtime installed for it to run, but it has a very usable and detailed user interface.
  • Platform: Mac, OS, Windows
  • Price: Free to download and try, $14.95 USD for a licensed version. (License is required for certain features, like converting Type 0 files to Type 1.)
  • Notes: This is a great tool, and the licensed version does everything we'll need for the purposes of this tutorial.
  • Download here.

MIDI Utility Pack (by KBD-Infinity)

  • Description: This is a collection of six different MIDI tools, but two in particular are useful for getting General MIDI files ready for Live. MIDI Microsope is a MIDI event viewer you can use to inspect MIDI files down to the byte level, and MIDI Typer converts between Type 0 and Type 1 MIDI files.
  • Platform: Windows
  • Price: Free to download and try, $19.95 USD for a licensed version. (The license is required to unlock features in the various tools, most importantly the ability to convert Type 0 files to Type 1.)
  • Notes: Functionality-wise, this is a veritable tool chest for anyone who works with MIDI files. The user interface seems to be geared toward more advanced users, especially the fact that the MIDI Microscope displays most values in hexadecimal format, and doesn't represent compound values (such as Channel/Program bytes) as separate values.
  • Download here.

Any others?

If you know of any tools that would be useful for any of the stuff covered in this series, please leave a note in the comments! Since MidiYodi is cross-platform and so easy to use, I chose it for the screenshots in the next part of the tutorial.

PREPARING YOUR MIDI FILES FOR LIVE

Two things we need to do before attempting to bring our MIDI files into Live are making sure we've got Type 1 files and determining which tones the composition calls for.

IDENTIFYING (AND CONVERTING) MIDI FILE TYPE

First let's figure out what type of files we're dealing with, and convert them if necessary.
  1. Launch MidiYodi go to File > File Explorer.
  2. Use the navigation controls in the File Explorer to browse to a folder containing your MIDI files. In the lower pane of the window, you'll see many details about the MIDI files located in the current folder, including the file type.
  3. If the file you plan to use is Type 0, double-click it to load it into MidiYodi. If MidiYodi asks if you want to separate the channels onto different tracks, click Yes. (If it's a type 0 file, but MidiYodi doesn't ask, it probably means the file only contained a single track/channel anyway.)
  4. Close the File Explorer dialog and go to File > Save As. Enter the name of the file you would like to save, and make sure to select Type 1 under MIDI file type before clicking Save.

GET THE PATCHES RIGHT

As mentioned before, Live will make an attempt at setting the correct Program Change values of your MIDI clips when you drag your MIDI file into your project, but this doesn't always work, and some MIDI files select different patches during the course of a song, and you will only be able to determine that this happens by examining the file outside of Live. This is easy to do in MidiYodi.
  1. Go to File > File Explorer to locate and load your MIDI file. If MidiYodi asks if you want to separate the channels onto different tracks, click Yes. (This means it's a type 0 file with data for multiple MIDI channels.)
  2. In the MidiYodi main window, each MIDI track appears on a different row. The track's name (if it has one) appears above the patch/tone name for each part. (Note that the number that appears before the track name does not necessarily correspond to the actual MIDI channel used on that track.) Each tone name listed also includes a numerical value- these are the actual MIDI Program Change numbers used in the song.



    Note that the program change numbers that you see in the Main Window are only the first ones used for each track. If the song you loaded contains program changes that occur during the song, they will not appear on this screen, even as the song plays.

    Important
    In the MIDI standard, program change values are the same as they are represented in MidiYodi- from 0 to 127. In Ableton Live, program change values range from 1 to 128. So when setting the program change properties on your MIDI clips in Live, just add 1 to whatever value MidiYodi reports.
     
  3. To see if there are any "hidden" program change events in your song, you need to inspect the tracks individually. In the MidiYodi main window, select the track you'd like to inspect and then go to Window > Event Examiner. This opens a list of all MIDI events on that track. Program Change messages appear in blue. Scroll through the list to look for any other changes, and take note of the program change number, as well as where it occurs in the song.
    MidiYodi highlights program change numbers in blue.

CHOOSING AN INSTRUMENT

Since Live doesn't include any multi-timbral instruments that respond to program change events or include a General MIDI sound set, we'll have to use third-party GM-compatible plugins or hardware instruments.

VIRTUAL INSTRUMENT OPTIONS

In the early days of VSTs there used to be a number of software instruments with General MIDI support. Two notable such products were Native Instruments Bandstand and Roland's Virtual Sound Canvas. These days, true GM-compatible virtual instruments on PC and Mac are quite rare- especially if you're looking for something with native 64-bit support. Here are some options I've tried.

Full GM support (GM sound set, multi-timbral, respond to program change events):
  • HALion 5 and HALion Sonic 2 (by Steinberg) are the only fully GM-compatible plugins I know of that have both 32-bit and 64-bit support on both Mac and PC.
  • Purity (by Sonic Cat) is a nice-sounding multi-timbral synth with full GM capabilities. It is much less expensive than the Steinberg products, but it is also 32-bit only on both Mac and PC.
  • Sound Canvas VA (Roland)  - Roland released this instrument about a year after I first wrote this post. It is almost the perfect GM plugin. It's got 32-bit/64-bit support, and works on Mac or Windows. It has the entire sound libraries of Roland's various Sound Canvas synthesizers, and is 16-part multitimbral. My only complaint is that although it's multitimbral, it lacks multi-out support. In other words, if you want to process each MIDI part as a separate audio channel in your DAW you have to use multiple Sound Canvas VA instances (one per track) instead of using just a single instance and routing separate MIDI tracks to it. But you can't beat this plugin's sound sets. The Sound Canvas line was the benchmark for General MIDI sound. I'm not going to write instructions for this one like I did for HALion and Purity, but in practice it's more like using the Purity plugin, so you can probably refer to those instructions to figure out how to get Sound Canvas VA working right inside of Live.
Limited GM support:
  • Jeskola XS-1 is a free multi-timbral Sound Font player that you can use with GM sound fonts. It is a Windows-only 32-bit plugin, but it works and it's free. I have used it successfully with both the Arachno SoundFont and the Merlin GM v32 SoundFont. XS-1 doesn't respond to program change events, so you have to load your SoundFonts and patches individually for each channel.
  • UVI Workstation with PlugSound Pro. UVI Workstation is a powerful, free multi-timbral synth for Windows and Mac, available in both 32-bit and 64-bit flavors, and UVI sells a sample library called PlugSound Pro that includes a full GM1 sound set. This doesn't really qualify as fully GM compatible, since UVI Workstation doesn't respond to program change messages (you have to manually select the individual patches for each part in your DAW project), but if you know what patches to use and you happen to pick up PlugSound Pro during one of UVI's frequent sales, this can be a fine option.
  • SampleTank with OmniSynth 2. This is confusing as heck, so bear with me: Sonic Reality's OmniSynth 2 library for SampleTank 2 includes a General MIDI sound set, and there are instructions on the Internet for setting up SampleTank 2 to respond to program change events, making the SampleTank + OmniSynth combo a fully GM-compatible instrument. This worked with both the full commercial SampleTank product and SampleTank Free. The two gotchas here are that SampleTank 2 is 32-bit only and it is also no longer available (free or otherwise) unless you already have a license for it in your IK Multimedia account. With the current version of SampleTank, things have changed. The new free version, SampleTank Custom Shop, does not load any libraries for previous SampleTank versions, so it won't work with OmniSynth. The full commercial version of SampleTank 3 will load all SampleTank-compatible libraries (including OmniSynth 2), however SampleTank 3 doesn't let you configure how it responds to program change messages, meaning it's no longer fully GM-compatible. SampleTank 3 is also 64-bit only... one of very few products I know of with no 32-bit version.

HARDWARE INSTRUMENT OPTIONS

These days it's actually easier (and sometimes even cheaper) to find a GM-compatible hardware synth or sound module than it is to find viable plugin solutions. What follows are just a few options.

Used:
  • Roland Sound Canvas. Being the General MIDI standard-bearer, Roland has released more General MIDI compatible instruments than any other vendor, and a lot of them are extremely affordable on eBay and other places where you can get used gear. Specifically, Roland released several dozen different models in their Sound Canvas series, almost all of which can be found for good prices online.
  • Roland JV-1080. This is a popular rack sound module from the late 90s that is fully GM compliant, with lots of other tricks up its sleeve.
  • Yamaha MU Series. Similar to Roland, Yamaha had its own line of affordable sound modules, known as the MU series. All of these devices had full GM support, but some of the later models supported different MIDI standards as well.
New:
  • Roland INTEGRA-7. This may be the best rack sound module ever built. It has thousands of sounds and not one, but two GM sound banks. One is a special "HQ" version with sounds that are only available on the INTEGRA-7.
  • Roland FA-06 and FA-08. These are Roland's current top-of-the-line workstation keyboards. They have a selection of sounds from the INTEGRA-7 library and a serviceable GM bank. (This is not the same as the HQ bank from the INTEGRA-7.)
  • Roland SD-50 Studio Canvas. This is a spiritual successor to the Sound Canvas series, with full GM2 support and a built-in USB audio interface.
  • Yamaha offers a number of workstation keyboards with General MIDI banks, including the Motif and MOXF lines.
  • Most of Kurzweil's "Pro Keyboards" line include General MIDI banks as well.

STEP-BY-STEP GUIDES

Now that we've covered all of the basics, it's time to actually load some MIDI files into Ableton Live. Below you can find my step-by-step guides for using the following synths to play General MIDI files in Live: