Multimedia PC Specification Version 1.0

Created: May 2, 1992

SYSTEM HARDWARE

Minimum Multimedia PC Full System Configuration

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

Minimum Multimedia PC Hardware Upgrade Kit Configuration

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

Hardware Specifications

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

SYSTEM SOFTWARE

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.