All Multimedia PCs provide Base-level or Extended synthesizer capabilities. In developing MIDI compositions for your applications, you'll also need a MIDI keyboard and may want to include one or more synthesizers in your development system. The following pieces of hardware will provide your system with the capacity to develop MIDI compositions for your applications.
The standard Multimedia includes a MIDI interface, and at least a Base-level synthesizer is included in the hardware and supported through Windows with Multimedia.
Using the synthesizer in the Multimedia PC is the most direct approach for developing MIDI compositions. You can compose exactly what the user will hear. Testing your MIDI files on a several Multimedia PC synthesizers will give you a good idea of how playback sound can vary depending on synthesizer capability.
The MIDI keyboard will generate MIDI commands to produce music. MIDI keyboards are packaged in at least two configurations: a master keyboard that connects to other MIDI devices and a keyboard-synthesizer.
A master keyboard connects to the synthesizer in your computer and supplies the synthesizer with MIDI messages to produce sound. Master keyboards generally can control several MIDI devices.
In comparison, the keyboard-synthesizer can perform the base functions of a master keyboard. It also can operate as a self-contained unit.
You'll most likely use a keyboard and MIDI sequencer software to create a MIDI score. A MIDI sequencer is very much like a multi-track tape recorder. When you create a MIDI song using one instrument, you can overlay this song with more instruments to produce the melody, harmony, and percussion.
When creating a MIDI file for a Multimedia PC, make sure that your create a Base-level version on channels 13-16 and an Extended version on channels 1-10. Read the section “Authoring Device-Independent MIDI Files” later in this chapter to find out why this is important and how to create a proper file.
Here are the general steps involved in creating a MIDI score for Windows with Multimedia.
Compose each track in the score
Build the composition track by track
Edit each channel until you're satisfied
Modify the characteristics of the score
Store the composition
Most musicians develop the melody, bass harmony, and percussion of their composition from a keyboard by playing, recording, playing back, and editing each component until it sounds just right.
To create the final composition, each track must be recorded using a sequencer. Certain designated channels must be used to ensure device-independent playback in the Multimedia PC. The section, “Authoring Device-Independent MIDI Files,” discusses this topic in detail. In general, you'll need to build your composition to work for both Base-level and Extended synthesizers.
Build channels 1 through 10 for the Extended synthesizer; use nine melodic tracks and one percussive track.
Build channels 13 through 16 for the Base-level synthesizer; use three melodic tracks and one percussive track.
You'll want to make the songs sound consistent on both Extended and Base-level synthesizers. To accomplish this, it's recommended that you duplicate the dominant melodies and harmonies of the song in the first three channels for Extended synthesizers (channels 1-3) and Base-level synthesizers (channels 13-15). You may need to reduce the polyphony for channels 13-15.
Sequencers typically maintain each channel's data as a separate track, allowing you to play them back and edit them independently. Go through and edit all the channels until satisfied with the quality of each.
If you compose your MIDI score using the synthesizer in a standard Multimedia PC, you can be reasonably certain that the instrument patches and volume levels will work fine for other Multimedia PCs. Otherwise, you should translate your patches to the standard MIDI patch specifications defined in the section, “Authoring Device-Independent MIDI Files,” and test playback on a Multimedia PC synthesizer.
Another modification you might want to make at this stage is to specify whether notes in the channel play on the Left or Right speakers, or in between.The general process for modifying a channel message and include stereo goes like this:
1.Set the instrument patch to the appropriate patch number as defined in the General MIDI Mode standard (shown later in this chapter).
2.Set the volume of the channel.
3.If you want stereo, set the Pan Controller Message to the appropriate value between Left or Right.
MIDI files can be stored in three file formats: 0, 1, and 2. Most sequencers can export data in MIDI file format 0 or 1. Save the sequence as a format 0 or format 1 MIDI file—Windows with Multimedia supports only file formats 0 (single track) and 1 (multiple track). It is recommended that you use format 0—especially for CD-ROM since it minimizes both RAM usage and the number of seeks. Once you have saved the MIDI file, you are ready to play it from your application.
You can also use MIDI files composed on a different system. Here are the general steps to prepare and convert these files for Windows with Multimedia.
Rechannelize the MIDI data
Convert patch numbers to the General MIDI Mode specification
Set a volume level
Duplicate the most important melodies and harmonies of the song in the first three channels for both the Extended and Base-level synthesizers. Make sure the channel numbers and polyphony match the guidelines for Windows with Multimedia MIDI files. (channels 1 through 10 for an Extended synthesizer; channels 13 through 16 for the Base-level synthesizer).
The final MIDI file must have patch numbers that match valid Microsoft MIDI patch assignments.
The relative volume levels may be different in every synthesizer, and so, to get a truly accurate reading, you'll want to play the file through the synthesizer in the Multimedia PC.
Start with a volume setting of 80 for normal listening levels. For quieter or louder playback volume, change the value accordingly. Volume levels range from 0 through 127. You will want to adjust the volume in every channel. This is especially important when authoring your MIDI sequence on a system different from the final playback system.
MIDI specifications show a coordinated effort to provide standard communications protocol and connections, and allow devices manufactured by different manufacturers to communicate with each other. Although the MIDI specification addresses several issues, individual manufacturers have had to define their own instrument patch definitions, resulting in a lack of numbering standardization among MIDI devices.
The “MIDI 1.0 Detailed Specification” doesn't define any standard patch assignments for synthesizers. Therefore, when you create a MIDI file, it won't be reproduced correctly unless it is played back on the same MIDI synthesizer setup used to create it. For example, if you create a piano concerto on one synthesizer and try to play it back on another, it might be played with a flute instead of a piano.
One solution to this problem is to map all the MIDI device patches from a common set of patch definitions. The Microsoft MIDI Mapper, included with Windows with Multimedia, maps one instrument patch number to another so that the synthesizer knows which instrument is intended to be used, even though the original file uses standard patch numbers.
The following pages offer the following aids to creating MIDI files usable for the different synthesizers that may exist in Multimedia PCs:
A list of general authoring guidelines
How to prioritize your MIDI data
The standard MIDI patch assignments
The standard MIDI key assignments
These guidelines include a list of standard patch assignments and standard key assignments for percussion instruments. Using the MIDI Mapper, MIDI files authored to these guidelines can be played on any Multimedia PC with internal or external MIDI synthesizers.
Most sequencer programs available today include a channel mapping option that lets you direct that single channel to any of the other 15 channels available. This mapping capability lets you specify the exact channel on which you want to record. This is an important feature for MIDI authoring in Windows with Multimedia, since, to ensure device independence, only designated channels may be used.
Follow these guidelines to author 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:
Synthesizers don't always fall cleanly into the Base-level and Extended designations defined earlier. It's up to the end-user (or the manufacturer of the Multimedia PC) 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.
The standard MIDI patch assignments for authoring MIDI files for use with the Multimedia extensions are based on the MIDI Manufacturers Association (MMA) General MIDI Mode specification. The following table shows the standard MIDI patch assignments.
Piano | Reed |
0 Acoustic Grand Piano | 64 Soprano Sax |
1 Bright Acoustic Piano | 65 Alto Sax |
2 Electric Grand Piano | 66 Tenor Sax |
3 Honky-tonk Piano | 67 Baritone Sax |
4 Rhodes Piano | 68 Oboe |
5 Chorused Piano | 69 English Horn |
6 Harpsichord | 70 Bassoon |
7 Clavinet | 71 Clarinet |
Chromatic Percussion | Pipe |
8 Celesta | 72 Piccolo |
9 Glockenspiel | 73 Flute |
10 Music box | 74 Recorder |
11 Vibraphone | 75 Pan Flute |
12 Marimba | 76 Bottle Blow |
13 Xylophone | 77 Shakuhachi |
14 Tubular Bells | 78 Whistle |
15 Dulcimer | 79 Ocarina |
Organ | Synth Lead |
16 Hammond Organ | 80 Lead 1 (square) |
17 Percussive Organ | 81 Lead 2 (sawtooth) |
18 Rock Organ | 82 Lead 3 (caliope lead) |
19 Church Organ | 83 Lead 4 (chiff lead) |
20 Reed Organ | 84 Lead 5 (charang) |
21 Accordion | 85 Lead 6 (voice) |
22 Harmonica | 86 Lead 7 (fifths) |
23 Tango Accordion | 87 Lead 8 (bass + lead) |
Guitar | Synth Pad |
24 Acoustic Guitar (nylon) | 88 Pad 1 (new age) |
25 Acoustic Guitar (steel) | 89 Pad 2 (warm) |
26 Electric Guitar (jazz) | 90 Pad 3 (polysynth) |
27 Electric Guitar (clean) | 91 Pad 4 (choir) |
28 Electric Guitar (muted) | 92 Pad 5 (bowed) |
29 Overdriven Guitar | 93 Pad 6 (metallic) |
30 Distortion Guitar | 94 Pad 7 (halo) |
31 Guitar Harmonics | 95 Pad 8 (sweep) |
Bass | Synth Effects |
32 Acoustic Bass | 96 FX 1 (rain) |
33 Electric Bass (finger) | 97 FX 2 (soundtrack) |
34 Electric Bass (pick) | 98 FX 3 (crystal) |
35 Fretless Bass | 99 FX 4 (atmosphere) |
36 Slap Bass 1 | 100 FX 5 (brightness) |
37 Slap Bass 2 | 101 FX 6 (goblins) |
38 Synth Bass 1 | 102 FX 7 (echoes) |
39 Synth Bass 2 | 103 FX 8 (sci-fi) |
Strings | Ethnic |
40 Violin | 104 Sitar |
41 Viola | 105 Banjo |
42 Cello | 106 Shamisen |
43 Contrabass | 107 Koto |
44 Tremolo Strings | 108 Kalimba |
45 Pizzicato Strings | 109 Bagpipe |
46 Orchestral Harp | 110 Fiddle |
47 Timpani | 111 Shanai |
Ensemble | Percussive |
48 String Ensemble 1 | 112 Tinkle Bell |
49 String Ensemble 2 | 113 Agogo |
50 SynthStrings 1 | 114 Steel Drums |
51 SynthStrings 2 | 115 Woodblock |
52 Choir Aahs | 116 Taiko Drum |
53 Voice Oohs | 117 Melodic Tom |
54 Synth Voice | 118 Synth Drum |
55 Orchestra Hit | 119 Reverse Cymbal |
Brass | Sound Effects |
56 Trumpet | 120 Guitar Fret Noise |
57 Trombone | 121 Breath Noise |
58 Tuba | 122 Seashore |
59 Muted Trumpet | 123 Bird Tweet |
60 French Horn | 124 Telephone Ring |
61 Brass Section | 125 Helicopter |
62 Synth Brass 1 | 126 Applause |
63 Synth Brass 2 | 127 Gunshot |
The standard MIDI key assignments for percussion instruments are based on the General MIDI Mode specification. The following illustration shows the standard key assignments for MIDI files authored for Windows with Multimedia:
@HU1 =