Authoring Guidelines for MIDI Files

Follow these guidelines to author device-independent MIDI files for Windows with Multimedia:

Author for both base-level and extended synthesizer setups.

Use MIDI channels 13 through 16 for base-level synthesizer data (reserve channel 16 for key-based percussion instruments).

Use MIDI channels 1 through 10 for extended synthesizer data (reserve channel 10 for key-based percussion instruments).

Prioritize MIDI data by putting crucial data in the lower-numbered channels.

Limit the polyphony of non-percussive channels to a total of 6 notes for base-level data and 16 notes for extended data.

Limit the polyphony of percussive channels to a total of 3 notes for base-level data and 16 notes for extended data.

Use the standard MIDI patch assignments and key assignments.

Always send a program-change message to a channel to select a patch before sending other messages to that channel. For the two percussion channels (10 and 16), select program number 0.

Always follow a MIDI program-change message with a MIDI main-volume-controller message (controller number 7) to set the relative volume of the patch.

Use a value of 80 (0x50) for the main volume controller for normal listening levels. For quieter or louder levels, you can use lower or higher values.

The following illustration summarizes the use of the 16 MIDI channels in a standard MIDI file authored for Windows with Multimedia:

Prioritizing MIDI Data

Synthesizers don't always fall cleanly into the base-level and extended designations defined earlier. It's up to the end-user to determine how to use synthesizers capable of more than the base-level requirements, but not fully meeting the extended requirements. For this reason, it's important to prioritize the melodic data by putting the most critical data in lower-numbered channels. For example, a user may have a synthesizer capable of playing six melodic instruments with 12-note polyphony. The user can use this device as an extended synthesizer by setting up the MIDI Mapper to play only the first six melodic channels and ignore any information on channels seven, eight, and nine.