GM to XG MIDI File Conversion

(Using Cakewalk Pro Audio Ver. 9)

PART TWO - CONVERSION & SYSEX

 
COMMENTS: Many MIDI files have up to 16 channels of data.  Number of notes sounding at one time may require a polyphony of up to 64 notes. Each channel requires a separate sound module in your Synth to reproduce the Patch (program change).

It stands to reason that if you have a low-priced synth with only 4 to 6 sound modules, that is the maximum number of channels you can play.  You may have to delete some tracks from a midi file to be able to use it.  Also, if your maximum polyphony is only 20 to 28 notes, there may be some cut-off of sounds when the maximum polyphony exceeds that total. A modern sound card such as Creative Labs SoundBlaster Audigy 2 can play 16 channels and up to 64 notes of polyphony.  This is why many MIDI authors use their sound card instruments for creating and playing back files. 

Check your manual to find out these details for your particular instrument.
 

GM/GS to XG CONVERSION.
Open Cakewalk 9.  From the menu, select File | Open. Browse to the "GMtoXG" folder which you have installed, and click on the sample file "S48kgm.mid" to select, then click the "Open" button. 
This is a perfect GM File.  There is no sysex included, and the Bank select is blank "---". When a GM file is created using a Roland synth, the Bank select would show as zero (0).  This has no impact on Yamaha equipment, but some Synths, such as a Korg, have no instruments in Bank 0, so the file would only play "garbage".

You will notice that the "DRUMS" track (channel 10) is showing as "0".  This is not valid for Yamaha XG, and we will fix it after we rename the file.
 

To preserve this original file, click on File | Save As, and the following screen will open.  Insert cursor just before ".mid" and add "-XG" to the name portion. Make sure "Save as type:" is set to MIDI Format 1. Click the "Save" button.
After saving, the revised name will already be loaded in Cakewalk.

Scroll down the Track View, keeping your eye on the channel numbers, and look for Channel 10, which in this example is track 10.  Note that the patch number is 0 and the Bank is blank ("---). Both the Patch and Bank must be corrected for use with XG devices.

Double-click on track 10 under the "Patch" or "Bank " heading, and the Track Properties window will open.

During initial Cakewalk setup we assigned Yamaha XG Drum Kits to Channel 10, as correctly indicated beside Port: and Channel: above.
Leave Bank Select Method: at Normal *
Click the down arrow in the Bank: select box and select "16256-XG Drum Kits". A little explanation is required.  Yamaha Drums and Drum kits are located in Bank 127.  (The Bank select controllers MSB = 127, LSB = 0).  HOWEVER, Cakewalk has a unique method that uses a formula:
128 x MSB + LSB.  Translated this equals, 128 x 127 + 0 = 16256. Therefore, in Cakewalk, the XG Drum Kits are shown as Bank 16256.
Notice that the Bank has changed to 16256-XG Drum Kits, and the Patch number has changed to 1 Standard Kit. Click the "OK" button to close this window. From the main menu, click File | Save.

There is no Sysex file currently loaded.  Depending on your Synth, it may not be required.  Play the file now and make sure that the drums are playing normally. Also that the instruments sound right. If not, you need to Double-Click under the "Bank" heading, one track at a time, and select Bank = "0-XG Bank 0", then the OK button,  until it appears as in the image below:
 

 
If your Synth supports XG,  you need to load "xg-reset.syx".

From the Cakewalk main menu, click on View | Sysx (or the sysx button).

You will notice above, that all the Sysex banks are shown as <empty>, indicating there is no Sysex message associated with this file, as we stated above. If you know your Synth supports "XG", then we must load the proper sysex now. Refer to the icons in the toolbar at the top of the Sysx screen you just opened and Click on the File folder icon (which I have circled in red). Files of type Sysx Binary will now be showing in the cw9 folder. Click on "xg-reset.syx" then on the "Open" button.
Final step is to set the "Auto Send" for this bank of sysex, see below.
Click the green "up-arrow" (6th from the left on the Sysx window tool bar) and a check mark will appear under the "Auto" heading. Click on the "x" in the title bar (upper right corner) to close this screen.

Again, from the main menu, click on File | Save and the sysex will be saved with the MIDI file.
Click File | Close
Click File, then scroll down to S48kgm-XG.mid and click. 
File will open and load in tracks view and the following screen will be on top:

Click the "OK" button. PLAY YOUR REVISED FILE~~ BE PATIENT, THIS FILE DOES NOT START UNTIL MEASURE 7.
A DIFFERENT VARIATION!
Close "S48kgm-XG.mid"

Browse to the "GMtoXG" folder and click on the sample file "100498.mid" to select, then click the "Open" button.
The file will load and the "Auto-Send Sysx" message box will be on top.  Since we do not know what the sysex message is, click the "Cancel" button for now and we will deal with the Sysex later.
From the Cakewalk menu choose File | Save AS
Again, rename the file by adding "-XG"  (100498-XG.mid) and save as Type 1.
 

Scroll down the Track View, keeping your eye on the channel numbers, and look for Channel 10, which in this example is tracks 8 and 9.  Note that the patch number on track 8 (Drums) is 0 and the  Bank is 0-No Drums. On track 9 (Percussion) there is no patch number and no Bank entry. Track 8 is the main drum track, and the author has added some additional drum notes on Track 9.  Both are on channel 10, which is the required channel for drums and percussion instruments.

One difference in this file is that instead of the Bank being blank ("---"), all instrument banks are showing as 0-XG Bank 0.  Bank zero was already in the file, and since we have defined our instruments as being XG, "-XG Bank 0" has been added automatically. This is a good indication that the file was created using a Roland synthesizer. The number 0 for patch on track 8 is because a Yamaha Bank has not yet been assigned and Cakewalk is using the default 0-127 numbering system. This difference will be fixed automatically by Cakewalk.

Double-Click Track 8, channel 10 to open the Properties dialogue box.
Opposite "Bank:" click the down arrow and select "16256 XG Drum Kits", and then click the "OK" button.

Double-Click Track 9, channel 10 to open Properties again.
Opposite "Patch:" select 0.
Opposite "Bank:" again select "16256 XG Drum Kits" and click "OK"

Notice in the new image above, both tracks 8 and 9 now indicate a patch number of 1 (Standard Kit) and a Bank of 16256-XG Drums.  This completes any corrections required, with the exception of Sysex.

From the Cakewalk menu, click on View | Sysx  and the following screen will appear:

This has a GM system on, a GS Reset, and some setup information in Bank 3 for the Roland synth. We want to delete all of these.  Click on the 4th. button from the left in the Sysx window toolbar (like an X) to delete. Then click OK in the pop-up box.  Next select Bank 1 and repeat. Same thing for Bank 2, until all banks show as <empty>. Move the cursor back to Bank 0.

Click the File folder icon and load "xg-reset.syx".  Don't forget to click the 6th. icon (Up-Arrow) to turn "Auto-Send" on.

From the menu, click File | Save.  Then, File | Close.
Re-open the file.  The "Auto-Send" dialogue will again open, and this time click "OK" to have the correct sysex message sent to your synth.

You can confirm the sysex by again clicking on View | Sysx and it should appear as in the following:

 
There are MANY more variations of GM/GS MIDI Files that you will run across and may have difficulties with.  We suggest you read on a little futher to see what you may encounter.
 
 
 <--Back      Go to Part Three --> More Variations Described

 ©2005 MidiStudio.com. All Rights Reserved
Last Update: September 13, 2005
This site is owned, designed and produced by Les Gorven
dba Business Technologies