Created: May 2, 1992
CPU
IntelÒ 386SXÔ or compatible
RAM
2 MB of RAM
Magnetic Storage
3.5-inch floppy disk drive, 1.44-MB capacity
30-MB hard disk drive
Optical Storage
CD-ROM with CD-DA outputs
Audio
8-bit digital-to-analog converter (DAC), linear PCM sampling, 22.05 kHz and 11.025 kHz rate, DMA/FIFO with interrupt
8-bit analog-to-digital converter (ADC), linear PCM sampling, 11.025 kHz rate, microphone level input
Music synthesizer
On-board analog audio mixing capabilities
Display Adapter
VGA
Input
101-key keyboard
Two-button mouse
I/O
Serial port
Parallel port
MIDI I/O port
Joystick port
Optical Storage
CD-ROM with CD-DA outputs
Audio
8-bit DAC, linear PCM sampling, 22.05 kHz and 11.025 kHz rate, DMA/FIFO with interrupt
8-bit ADC, linear PCM sampling, 11.025 kHz rate, microphone level input
Music synthesizer
On-board analog audio mixing capabilities
I/O
MIDI I/O port
Joystick port
CPU
Intel 386SX or compatible (minimum)
RAM
2 MB of extended (linear address space) memory
Magnetic Storage
3.5-inch floppy disk drive, 1.44-MB capacity
30-MB hard disk drive (minimum)
Optical Storage
CD-ROM drive with:
Sustained 150 KB/sec transfer rate
Average seek time of one second or less
10,000 hours MTBF
Mode 1 capability (mode 2 and forms 1 and 2 optional)
Subchannel Q (subchannels P and R through W optional)
If R through W subchannel support is provided, additional APIs must be implemented in the MSCDEX driver. Specifications for these additional APIs are available from Microsoft Corporation.
MSCDEX version 2.2 driver that implements the extended audio APIs
The drive must sustain a transfer rate of 150 KB/sec without consuming more than 40 percent of the CPU bandwidth. This requirement is for read block sizes no less than 16K and a lead time no longer than is required to load the CD-ROM buffer with one read block of data. We recommend that the drive have on-board buffers of 64 KB and implement read-ahead buffering. Read-ahead buffering is described in a specification available from Microsoft Corporation.
Audio
CD-ROM drive with CD-DA (Red Book) outputs and a front-panel volume control. CD ROM/XA audio may be provided as an option.
8-bit (16-bit recommended) DAC with:
Linear PCM sampling
DMA or FIFO buffered transfer capability with interrupt on buffer empty
22.05 kHz and 11.025 kHz sample rates mandatory
44.1 kHz sampling rate desirable
Optional stereo channels
No more than 10 percent of the CPU bandwidth required to output 11.025 kHz or 22.05 kHz; no more than 15 percent for 44.1 kHz
8-bit (16-bit recommended) ADC with:
Linear PCM sampling
11.025 kHz mandatory (22.01 kHz or 44.1 kHz sampling rate optional)
DMA or FIFO buffered transfer capability with interrupt on buffer full
Microphone input
Internal synthesizer hardware with multivoice, multitimbral capabilities, six simultaneous melody notes, and two simultaneous percussive notes.
Internal mixing capabilities to combine input from three (four recommended) sources and to present the output as a stereo, line-level audio signal at the back panel. The four sources are CD Red Book, synthesizer, DAC (waveform), and an auxiliary input source (recommended but not required). Each input must have at least a 3-bit volume control (eight steps) with a logarithmic taper (4-bit or greater volume control is strongly recommended). If all sources are sourced with –10 dB (consumer line level: 1 milliwatt into 600 ohms = 0 dB) without attenuation, the mixer will not clip and will output between 0 dB and 3 dB. Individual audio source and master digital volume control registers and extra line-level audio sources are highly recommended.
Guidelines for Synthesizer Implementation
The MicrosoftÒ WindowsÔ graphical environment with Multimedia Extensions (referred to hereafter as Windows with Multimedia) defines a MIDI file authoring standard and supports device-independent playback of MIDI files authored to the standard. To enable this, Multimedia PC synthesizers need to follow the guidelines below.
Windows with Multimedia includes a user-configurable MIDI mapper that can change MIDI channel and patch numbers in a MIDI data stream, so synthesizers need not conform to the specific MIDI channel assignments and patch numbers defined below. If the synthesizer does not conform, however, a MIDI map file should be provided to make configuring a Multimedia PC with a specific synthesizer easier for the user. Microsoft also recommends that synthesizers created for the Multimedia PC (that is, using audio boards) provide general MIDI mode (GMM). GMM is a standard patch and channel map defined by the MIDI Manufacturers Association and is fully compatible with the MIDI implementation for Windows with Multimedia.
1. Base Multitimbral vs. Extended Multitimbral
Some Multimedia PC synthesizers can play back only a few timbres (also called instruments or patches) simultaneously at any time. Others can play back multiple timbres at one time. To cover the wide range of capability, two synthesizer types are defined: Base Multitimbral and Extended Multitimbral. Each type is assigned a subset of the 16 MIDI channels.
Base Multitimbral specification: MIDI Channels 13 through 16. Base Multitimbral synthesizers must be able to play three melodic timbres (channels 13 through 15) and two percussive timbres (channel 16) simultaneously. Base Multitimbral synthesizers must also be able to play six melodic notes and two percussive notes simultaneously. The melodic and percussive notes may be allocated across the melodic and percussive instruments, respectively, in any combination. For example, a Base Multitimbral synthesizer could play three flute notes, two harpsichord notes, one cello note, and two base drum “notes” at one time. Base Multitimbral synthesizers may exceed these minimum capacities, but MIDI files do not take advantage of additional capacity.
Extended Multitimbral specification: MIDI Channels 1 through 10. An Extended Multitimbral synthesizer must be able to exceed the base specification by some undetermined amount. These synthesizers should have capabilities as close as possible to the following goals: Extended Multitimbral synthesizers should be able to play nine melodic timbres (channels 1 through 9) and eight percussive timbres (channel 10) simultaneously and 16 melodic notes and 16 percussive notes simultaneously. The melodic and percussive notes may be allocated across the melodic and percussive instruments in any combination. Extended Multitimbral synthesizers may exceed these capabilities, but MIDI files do not take advantage of additional capacity. (See the “Authoring Standard” section below to learn how MIDI files take advantage of these two synthesizer definitions.)
2. Note and Timbre Stealing
When a synthesizer encounters a note beyond its polyphony limit (for example, a fifteenth melodic note for an Extended Multitimbral synthesizer capable of playing only 14 melodic notes at one time), it should “steal” the oldest melodic note playing to play the new note. Melodic notes should not steal percussive notes and percussive notes should not steal melodic notes.
The melodic MIDI channels for each synthesizer type are in priority order, with the lower channels a higher priority. When a synthesizer encounters a melodic timbre beyond its multitimbral limit (for example, a ninth melodic timbre for an Extended Multitimbral synthesizer capable of playing only eight melodic timbres at one time), it should drop the timbre on the highest melodic MIDI channel—channel 9, in this case.
3. Instrument Loading
MIDI sequencers under Windows with Multimedia tell the synthesizer’s driver what patches are to be used before it plays back a MIDI file, using the midiOutCachePatches function. For synthesizers that load instrument patches into PC or board RAM, this permits the driver to preload the necessary instrument patches. Drivers for synthesizers that load patches into board RAM of limited capacity can buffer additional patches in PC RAM, so they may be loaded at interrupt time when needed.
4. Standard Instruments
The table below lists the standard instruments synthesizers should implement. When it is not feasible to implement all instruments, at least one instrument from each group should be implemented.
5. Authoring Standard
MIDI authors are required to provide two versions of every MIDI composition. Both versions are stored in the same MIDI file. Channels 1 through 10 hold the version written for Extended Multitimbral synthesizers. Channels 13 through 16 hold the version written for the Base Multitimbral synthesizer. MIDI authors put the most important melodic timbres in lower melodic MIDI channels, so they decide which timbres drop if the synthesizer’s multitimbral capacity is exceeded.
MIDI authors benefit from the additional effort of authoring for two synthesizer types. Their files can be played back on a wide variety of Multimedia PC synthesizers without being modified.
General MIDI Patch Name | Source |
Acoustic grand piano | 0 |
Bright acoustic piano | 1 |
Electric grand piano | 2 |
Honky-tonk piano | 3 |
Rhodes piano | 4 |
Chorused piano | 5 |
Harpsichord | 6 |
Clavinet | 7 |
Celesta | 8 |
Glockenspiel | 9 |
Music box | 10 |
Vibraphone | 11 |
Marimba | 12 |
Xylophone | 13 |
Tubular bells | 14 |
Dulcimer | 15 |
Hammond organ | 16 |
Percussive organ | 17 |
Rock organ | 18 |
Church organ | 19 |
Reed organ | 20 |
Accordion | 21 |
Harmonica | 22 |
Tango accordion | 23 |
Acoustic nylon guitar | 24 |
Acoustic steel guitar | 25 |
Electric jazz guitar | 26 |
Electric clean guitar | 27 |
Electric muted guitar | 28 |
Overdriven guitar | 29 |
Distortion guitar | 30 |
Guitar harmonics | 31 |
Acoustic bass | 32 |
Electric bass fingered | 33 |
Electric bass picked | 34 |
Fretless bass | 35 |
Slap bass 1 | 36 |
Slap bass 2 | 37 |
Synth bass 1 | 38 |
Synth bass 2 | 39 |
Violin | 40 |
Viola | 41 |
Cello | 42 |
Contrabass | 43 |
Tremolo strings | 44 |
Pizzicato strings | 45 |
Orchestral harp | 46 |
Timpani | 47 |
String ensemble 1 | 48 |
String ensemble 2 | 49 |
Synth strings 1 | 50 |
Synth strings 2 | 51 |
Choir aahs | 52 |
Voice oohs | 53 |
Synth voice | 54 |
Orchestra hit | 55 |
Trumpet | 56 |
Trombone | 57 |
Tuba | 58 |
Muted trumpet | 59 |
French horn | 60 |
Brass section | 61 |
Synth brass 1 | 62 |
Synth brass 2 | 63 |
Soprano sax | 64 |
Alto sax | 65 |
Tenor sax | 66 |
Baritone sax | 67 |
Oboe | 68 |
English horn | 69 |
Bassoon | 70 |
Clarinet | 71 |
Piccolo | 72 |
Flute | 73 |
Recorder | 74 |
Pan flute | 75 |
Bottle blow | 76 |
Shakuhachi | 77 |
Whistle | 78 |
Ocarina | 79 |
Synth lead 1 - Square wave lead | 80 |
Synth lead 2 - Sawtooth wave lead | 81 |
Synth lead 3 - Calliope lead | 82 |
Synth lead 4 - Chiff lead | 83 |
Synth lead 5 - Charang | 84 |
Synth lead 6 - Solo synth voice | 85 |
Synth lead 7 - Bright saw wave lead | 86 |
Synth lead 8 - Brass and lead | 87 |
Synth pad 1 - Fantasia pad | 88 |
Synth pad 2 - Warm pad | 89 |
Synth pad 3 - Poly synth pad | 90 |
Synth pad 4 - Space voices pad | 91 |
Synth pad 5 - Bowed glass pad | 92 |
Synth pad 6 - Metal pad | 93 |
Synth pad 7 - Halo pad | 94 |
Synth pad 8 - Sweep pad | 95 |
Synth SFX 1 - Ice rain | 96 |
Synth SFX 2 - Soundtrack | 97 |
Synth SFX 3 - Crystal | 98 |
Synth SFX 4 - Atmosphere | 99 |
Synth SFX 5 - Brightness | 100 |
Synth SFX 6 - Goblin | 101 |
Synth SFX 7 - Echo drops | 102 |
Synth SFX 8 - Star theme | 103 |
Sitar | 104 |
Banjo | 105 |
Shamisen | 106 |
Koto | 107 |
Kalimba | 108 |
Bagpipe | 109 |
Fiddle | 110 |
Shanai | 111 |
Tinkle bell | 112 |
Agogo | 113 |
Steel drums | 114 |
Woodblock | 115 |
Taiko drum | 116 |
Melodic tom | 117 |
Synth drum | 118 |
Reverse cymbal | 119 |
Guitar fret noise | 120 |
Breath noise | 121 |
Seashore | 122 |
Bird tweet | 123 |
Telephone ring | 124 |
Helicopter | 125 |
Applause | 126 |
Gunshot | 127 |
Display Adapter
VGA-compatible display adapter and a color VGA-compatible monitor.
A basic Multimedia PC uses mode 12h (640-by-480, 16 colors). An enhanced configuration referred to as VGA+ is recommended with 640-by-480, 256 colors.
The recommended performance goal for VGA+ adapters is to be able to blt 1-bit-per-pixel, 4-bit-per-pixel, and 8-bit-per-pixel device-independent bitmaps (DIBs) at 350K pixels per second given 100 percent of the CPU and at 140K pixels per second given 40 percent of the CPU. This recommendation applies to run-length encoded images and non-encoded images. The recommended performance is needed to fully support high-performance applications such as synchronized audiovisual presentations.
User Input
Standard 101-key IBMÒ-style keyboard with standard DIN connector
Two-button mouse with bus connector
I/O
Standard 9-pin or 25-pin asynchronous serial port, programmable up to 9600 baud, and a switchable interrupt channel
Standard 25-pin bidirectional parallel port with interrupt capability
One MIDI port with In, Out, and Thru; must have interrupt support for input and FIFO transfer
IBM-style analog or digital joystick port
The Multimedia PC system software shall conform to the APIs, functionality, and performance described in the Microsoft Windows version 3.0 Software Development Kit (SDK) Reference–Volume I manual and Volume 2 manual (version 3.0) and the Microsoft Multimedia Development Kit (MDK) Programmer’s Reference manual.