rrrabuyvsvsveytfazersurdwarubawvev

The Complete K2000 > Standard MIDI File Translator

Standard MIDI File Translator



Dear Users Group,

A while back I had mentioned that I was searching for a Mac utility to automatically remap GM Program Changes in a Standard MIDI File (SMF) to whatever Program Changes matched best in my Kurzweil K2000/2500 setup. I am happy to report that Darwin Grosse (who wrote some of the VAST Tutorials) stepped up to the plate and implemented my idea.

Together we have put together a very useful program we call "SMF Translator. It has exceeded my requirements to the point where it can also perform various Controller and Sys-Ex Filtering functions as well as Controller Number remapping. The program includes full documentation. After setting up your templates (i.e always remap Program #1 to Kurzweil Bank , Program #6, etc) Simply drag the MIDI File onto the utility and it performs your conversions and places the new file in a folder that you specify. And yes, I hired Darwin to make a PC version as well. I have decided to offer these Standard MIDI File Translators as a FREE gift from Sweetwater sound to the K2000 Users Group.

The program is great!!! It has saved me countless hours. I hope you enjoy it, too! I use it every day with Performer to easily play GM files from the web.

Enjoy,

Chuck Surack
President, Sweetwater Sound, Inc.



Before downloading, you may want to check out the
documentation for Power Macintosh or Windows 95.
Choose your OS and
begin your download



SMF Translator for Power Macintosh

By Chuck Surack and Darwin Grosse

SMF Translator is a complete Standard MIDI File translation tool. With SMF Translator (abbreviated as SMF-T), you are able to change file type and creator flags, strip or translate controller messages, remove many MIDI event types and convert Bank Change and Program Change to suit your MIDI studio.

File Selection

There are two ways to select the files for translation -- using the standard file selection dialog, or using drag-and-drop. To choose files with the dialog, select the "Select SMF File" menu option (or hit command-O). A standard dialog will be displayed, with all available options. Note: no files are filtered out, since SMF files retrieved from the Internet (as well as those that you get from a friend's PC) do not have the correct File Type settings.

To choose files with drag-and-drop, you can drag a file icon onto the SMF Translator program icon. If SMF-T is not already running, it will be started, with the dragged file placed into the input file list.

Output Options

Output options are located on the tabbed panel with the title "Output". It is the panel that is displayed when you first launch SMF Translator. You can choose two destinations for the translated output.

1. You can output to the Source Folder. This will place the translated SMF file into the same directory as the original (input) file. If "Overwrite existing files?" has been selected, the new file will replace the current file. If the overwrite option has not been selected, the suffix "(new)" will be added to the original files name.
2. You can output to a selected directory. This will place the translated SMF file into a directory that you select. To choose a directory, click on the Select button. A directory selection dialog will be displayed allowing you to pick a directory. This directory is displayed below the radio buttons (in the example above, the selected directory is "Macintosh HD:DDG Projects:Test Output"). If "Overwrite existing files?" has been checked on, the output file will replace any previously translated file. If the overwrite option has not been selected, the suffix "(new)" will be appended to the name of a previous translation file.

In addition to selecting an output destination, you can also define the File Type and File Creator entries for the translated SMF file. This will "force" the File Type and File Creator (required by the Macintosh OS for proper program launching) to be set to the new values. Typical values are "Midi" for the File Type (representing a Standard MIDI File), and "MOUP" for the File Creator (representing creation by Mark of the Unicorn Performer). The software package you use my prefer a different file creator -- change this entry to suit.

Controller Options

Controller options are located on the tabbed panel with the title "Ctrls". You can select this panel by clicking on the Ctrls tab. On this tab, you have a number of options. They are:

1. "Strip all Ctrls except 1,7,64" This function is pretty broad-based, and will generally be used for situations where a Standard Midi File has been created for a specific synthesizer (typically a Sound Canvas or equivalent), and contains a number of controllers that will not be used by your synthesizer (like a Kurzweil K2500). This will remove all controllers except for #1 (the mod wheel), #7 (channel volume) and #64 (the sustain pedal). When this option is selected, all other controller options are disabled -- since there isn't much remaining translation to be done!
2. "Strip all Bank Changes" When you are working with an SMF file that was written for a specific synthesizer (say, an Alesis QSR) that has more than 128 programs, bank changes will be scattered throughout the file. Selecting this option will remove all bank changes -- keeping all patch changes within standard settings.
3. "Control Strip (3 options)" The Control Strip options allow you to remove any three specific controllers. For example, if you received a file from a Kurzweil K2500, you might find a number of controller #6 (data slider) messages that affect your patches. You can use these options to remove any specific controller message from the SMF data.
4. "Control Xlt (3 options)" The Control Translate (Xlt) options allow you to change one controller into another. For example, if you received a file with a number of controller #1 (mod wheel) movements for filter control, and were using a Kurzweil K2500 with the data slider (controller #6) controlling the filter, you could change all #1 messages into #6 messages. The fields on the left are the "translate from" controller numbers, while the right side contains the "translate to" numbers.

Event Options

Event options are located on the tabbed panel with the title "Events". You can select this panel by click on the "Events" tab. On this tab, you have several check boxes for option selection. They are:

1. "Strip Poly Aftertouch" If this option is selected, all polyphonic aftertouch messages will be removed from the MIDI data.
2. "Strip Mode Messages" MIDI mode messages are used to change a synthesizers method of responding to polyphonic data. Mode messages are often expressed as "MONO, OMNI, POLY". If you select this option, any changes to the synthesizer MIDI mode will be removed.
3. "Strip Program Changes" If you want to remove all MIDI program changes, you can select this box. Note: This option will remove the program changes before the patch translation function occurs. If this box is selected, no patch changes will exist in the translated file.
4. "Strip Channel Aftertouch" If this option is selected, all channel aftertouch messages will be removed from the MIDI data.
5. "Strip Pitch Wheel" Pitch wheel changes can clog the MIDI data stream, and often do not map appropriately between synths. By selecting this option, you can remove all Pitch Wheel messages from the MIDI file.
6. "Strip Sysex" Sysex (system exclusive) data is often found in SMF files (SMF files created for the Roland Sound Canvas will often do an enormous amount of patch creation using sysex messages), and are often useless for any other synthesizer. By selecting this option, sysex data is excluded from the output file.
7. "Strip Meta Events" Meta events are placed in an SMF file for sequencer information and data storage. You will seldom want to strip these event, and it will make the file unreadable by most sequencers. However, in some instances (like when you are preparing a file for a MIDI-based game engine), you may find Meta Event stripping useful.
8. "Strip NRPN Events" NRPN (Non-Registered Parameter Number) events are used by many synthesizer (GM, GS and XS synths in particular) for patch modification and setup. If you are using a standard synthesizer or sampler (like a Kurzweil K2500 or Akai S1000), these events are useless, and will be ignored by the synth. You may want to remove them in order to "clean up" the MIDI event list. Selecting this option will remove all NRPN control events from the translated SMF file.

The Patch Translation Table

Most often, SMF files are created using the GM (General MIDI) patch specification. This specification provides 128 "standard" patches that will handle most music. However, many advanced synthesizers and samplers do not have the standard GM patches; or, you may want to use your own patches instead of those provided by your synth manufacturer. On the Patch Translation Table, you are presented with the 128 standard patches, and are provided with bank and program changes that will correspond to your synthesizer. There are a few rules in the entry of these items:

1. If you do not want to change a bank or program, simply enter a "-1" as in the appropriate table position.
2. You should generally not enter a bank change without a corresponding patch change.
3. You should not use negative numbers for your entries, with the exception listed above.
4. The bank changes are implemented using the Kurzweil standard of controller #0, where banks changes 0-9 map to K2500 banks 000-900. Numbers greater than 9 are translated or ignored, based on synthesizer settings. A future version will provide more bank change options.
5. After the 128th are ten table entries for the GM channel 10 drum programs. They are numbered D00 - D127, and are supported by most GM and GS synths. Additionally, there is an entry labeled GS Kits (Dflt), which is the patch and bank change that will be used if the channel 10 program change does not match the "D" number. This will allow you to modify the SMF drum channel separately from the rest of the MIDI data.

These setting, as well as all of the setting in the SMF-T system, are saved to a preference file (located in your system | Preference folder) with the name "SMF Translator Prefs". Generally, if you are having a problem with program execution, you may want to delete (or rename) this file, and restart the program.

Executing a Translation

Actually running a translation is simple, once all of the settings have been done. Simply select some files, then hit the "Process" Button. A dialog will appear to notify you of the program's progress, then the dialog will disappear and the file list will be empty. If there is an error in execution, you will be notified and processing will stop. Also, if the file is not a Standard MIDI file, processing will be stopped.

Other than that, there isn't much to tell! The best way to learn the program is to run a number of files through the process. Load a file into a sequencer, then save it. Run the file through the SMF Translator, then examine the results.

System Specifics

SMF Translator requires the following:

* Any Macintosh OS capable Power PC system.
* Mac OS version 7.5 or greater.
* 4 Mb memory (8 or greater is preferred).
* Plenty of disk space (for all those SMF files!).

This program will not run on a 68k Macintosh, and no plans are in place to modify the code to support them. Sorry!
Support for SMF Translator is provided by Darwin Grosse Multimedia


SMF Translator/PC

By Chuck Surack and Darwin Grosse

SMF Translator/PC is a complete Standard MIDI File translation tool for 32-bit Windows environments. With SMF Translator/PC (abbreviated as SMF-T), you are able to strip or translate controller messages, remove many MIDI event types and convert Bank Change and Program Change to suit your MIDI studio.

File Selection

You select files for processing using a standard file dialog. To display the dialog, either hit the <SELECT> button on the main form, or select the "Add SMF File(s) to list" menu option. You can then select any file (or multiple files, using the control-click selection option) for processing. When selected, the files will appear on the Input Files list. To clear the list, you can either click on the <CLEAR> button, or select the "Clear File List" menu selection.

Output Options

Output options are located on the tabbed panel with the title "Output". It is the panel that is displayed when you first launch SMF Translator. You can choose two destinations for the translated output.

1. You can output to the Source Folder. This will place the translated SMF file into the same directory as the original (input) file. If "Overwrite existing files?" has been selected, the new file will replace the current file. If the overwrite option has not been selected, the suffix "(new)" will be added to the original files name.
2. You can output to a selected directory. This will place the translated SMF file into a directory that you select. To choose a directory, click on the Select button. A directory selection dialog will be displayed allowing you to pick a directory. This directory is displayed below the radio buttons (in the example above, the selected directory is "C:\My Documents"). If "Overwrite existing files?" has been checked on, the output file will replace any previously translated file. If the overwrite option has not been selected, the suffix "(new)" will be appended to the name of a previous translation file.

Controller Options

Controller options are located on the tabbed panel with the title "Ctrls". You can select this panel by clicking on the Ctrls tab. On this tab, you have a number of options. They are:

1. "Strip all Ctrls except 1,7,64" This function is pretty broad-based, and will generally be used for situations where a Standard Midi File has been created for a specific synthesizer (typically a Sound Canvas or equivalent), and contains a number of controllers that will not be used by your synthesizer (like a Kurzweil K2500). This will remove all controllers except for #1 (the mod wheel), #7 (channel volume) and #64 (the sustain pedal). When this option is selected, all other controller options are disabled -- since there isn't much remaining translation to be done!
2. "Strip all Bank Changes" When you are working with an SMF file that was written for a specific synthesizer (say, an Alesis QSR) that has more than 128 programs, bank changes will be scattered throughout the file. Selecting this option will remove all bank changes -- keeping all patch changes within standard settings.
3. "Control Strip (3 options)" The Control Strip options allow you to remove any three specific controllers. For example, if you received a file from a Kurzweil K2500, you might find a number of controller #6 (data slider) messages that affect your patches. You can use these options to remove any specific controller message from the SMF data.
4. "Control Xlt (3 options)" The Control Translate (Xlt) options allow you to change one controller into another. For example, if you received a file with a number of controller #1 (mod wheel) movements for filter control, and were using a Kurzweil K2500 with the data slider (controller #6) controlling the filter, you could change all #1 messages into #6 messages. The fields on the left are the "translate from" controller numbers, while the right side contains the "translate to" numbers.

Event Options

Event options are located on the tabbed panel with the title "Events". You can select this panel by click on the "Events" tab. On this tab, you have several check boxes for option selection. They are:

1. "Strip Poly Aftertouch" If this option is selected, all polyphonic aftertouch messages will be removed from the MIDI data.
2. "Strip Mode Messages" MIDI mode messages are used to change a synthesizers method of responding to polyphonic data. Mode messages are often expressed as "MONO, OMNI, POLY". If you select this option, any changes to the synthesizer MIDI mode will be removed.
3. "Strip Program Changes" If you want to remove all MIDI program changes, you can select this box. Note: This option will remove the program changes before the patch translation function occurs. If this box is selected, no patch changes will exist in the translated file.
4. "Strip Channel Aftertouch" If this option is selected, all channel aftertouch messages will be removed from the MIDI data.
5. "Strip Pitch Wheel" Pitch wheel changes can clog the MIDI data stream, and often do not map appropriately between synths. By selecting this option, you can remove all Pitch Wheel messages from the MIDI file.
6. "Strip Sysex" Sysex (system exclusive) data is often found in SMF files (SMF files created for the Roland Sound Canvas will often do an enormous amount of patch creation using sysex messages), and are often useless for any other synthesizer. By selecting this option, sysex data is excluded from the output file.
7. "Strip Meta Events" Meta events are placed in an SMF file for sequencer information and data storage. You will seldom want to strip these event, and it will make the file unreadable by most sequencers. However, in some instances (like when you are preparing a file for a MIDI-based game engine), you may find Meta Event stripping useful.
8. "Strip NRPN Events" NRPN (Non-Registered Parameter Number) events are used by many synthesizer (GM, GS and XS synths in particular) for patch modification and setup. If you are using a standard synthesizer or sampler (like a Kurzweil K2500 or Akai S1000), these events are useless, and will be ignored by the synth. You may want to remove them in order to "clean up" the MIDI event list. Selecting this option will remove all NRPN control events from the translated SMF file.

The Patch Translation Table

Most often, SMF files are created using the GM (General MIDI) patch specification. This specification provides 128 "standard" patches that will handle most music. However, many advanced synthesizers and samplers do not have the standard GM patches; or, you may want to use your own patches instead of those provided by your synth manufacturer. On the Patch Translation Table, you are presented with the 128 standard patches, and are provided with bank and program changes that will correspond to your synthesizer. There are a few rules in the entry of these items:

1. If you do not want to change a bank or program, simply enter a "-1" as in the appropriate table position.
2. You should generally not enter a bank change without a corresponding patch change.
3. You should not use negative numbers for your entries, with the exception listed above.
4. The bank changes are implemented using the Kurzweil standard of controller #0, where banks changes 0-9 map to K2500 banks 000-900. Numbers greater than 9 are translated or ignored, based on synthesizer settings. A future version will provide more bank change options.
5. After the 128th are ten table entries for the GM channel 10 drum programs. They are numbered D00 - D127, and are supported by most GM and GS synths. Additionally, there is an entry labeled GS Kits (Dflt), which is the patch and bank change that will be used if the channel 10 program change does not match the "D" number. This will allow you to modify the SMF drum channel separately from the rest of the MIDI data.

These setting, as well as all of the setting in the SMF-T system, are saved to a preference located in the SMF-T program directory. Generally, if you are having a problem with program execution, you may want to delete (or rename) this file, and restart the program.

Executing a Translation

Actually running a translation is simple, once all of the settings have been done. Simply select some files, then hit the "Process" Button. A progress bar will display during processing, then the file list will be cleared. If there is an error in execution, you will be notified and processing will stop. Also, if the file is not a Standard MIDI file, processing will be stopped.

Other than that, there isn't much to tell! The best way to learn the program is to run a number of files through the process. Load a file into a sequencer, then save it. Run the file through the SMF Translator, then examine the results.

System Specifics

SMF Translator/PC requires the following:

* Any 32-bit Microsoft Windows system.
* Any Windows-compatible PC.
* 16 Mb memory (32 or greater is preferred).
* Plenty of disk space (for all those SMF files!).

This program will not run on a Windows 3.1, and no plans are in place to modify the code to support it. Sorry!
Support for SMF Translator is provided by Darwin Grosse Multimedia