Hardware

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.

Base-level MIDI Synthesizer

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.

A MIDI keyboard

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.

Building a MIDI Score

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

Compose Each Track

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.

Build the Composition

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.

Edit Each Channel

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.

Modify Characteristics of the Score

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.

Store the Composition

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.

Converting Existing MIDI Files

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

Rechannelize the MIDI Data

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).

Convert Patch Numbers

The final MIDI file must have patch numbers that match valid Microsoft MIDI patch assignments.

Set a Volume Level

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.

Authoring Device-Independent MIDI Files

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.

General Authoring Guidelines

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:

Prioritizing Your MIDI Data

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.

Using Standard MIDI Patch Assignments

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

Standard MIDI Key Assignments

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 =