How Windows 98 Processed MIDI Files

During the Windows 98 era, playing a MIDI file was not a matter of streaming recorded audio, but rather an act of real-time musical performance executed by hardware and software. Windows 98 processed MIDI files by reading sequential musical instructions, routing those instructions through its multimedia subsystem, and sending them to sound card hardware or software engines that synthesized the audio using FM synthesis, hardware wavetables, or the operating system's built-in software synthesizer.

The MIDI Data Pipeline

Unlike WAV or MP3 files, which contain digitized acoustic waveforms, standard MIDI files (.MID) contain only performance data. This includes instructions such as note-on, note-off, pitch bend, tempo, and instrument patch numbers defined by the General MIDI (GM) standard.

When a user played a MIDI file using Windows Media Player or a third-party application, Windows 98 processed the file through the Multimedia Control Interface (MCI) and the core Windows multimedia subsystem (winmm.dll). The OS parsed the timestamped MIDI events in real time and directed the raw control stream to the user's selected "MIDI Music Playback" device, configured via the Multimedia Control Panel.

Hardware FM Synthesis

On budget or legacy ISA sound cards, such as original Sound Blaster models and clones, Windows 98 communicated with hardware Frequency Modulation (FM) synthesis chips, most notably the Yamaha YMF262 (OPL3).

When the sound card driver received MIDI commands, it translated them into register writes for the OPL chip. The chip combined mathematical sine wave operators (modulators and carriers) to artificially emulate instruments. This method required virtually no system memory or CPU power, but it produced a distinct, synthetic, and metallic sound rather than realistic acoustic instruments.

Hardware Wavetable Synthesis

Higher-end sound cards of the late 1990s, such as the Creative Labs Sound Blaster AWE32, AWE64, or PCI-based cards like the Ensoniq AudioPCI, used hardware wavetable synthesis.

These sound cards contained dedicated digital signal processors (DSPs) paired with onboard ROM or RAM holding short, digitized recordings (samples) of real instruments. When Windows 98 sent a MIDI "Note On" message for an acoustic piano, the sound card's processor retrieved the corresponding piano sample from ROM, transposed its pitch in real time to match the requested note, modulated the amplitude based on velocity, and output the result. This delivered realistic instrument playback with zero CPU overhead.

Software Wavetable Synthesis

For systems with basic audio hardware that lacked both OPL3 chips and hardware wavetables, Windows 98 introduced broad support for software-based synthesis via the Microsoft GS Wavetable SW Synth.

Licensed from Roland and integrated into the Windows Driver Model (WDM) architecture, this engine used the host PC's CPU to render audio. The operating system decoded the MIDI events and referenced a compressed sound bank (such as gm.dls) stored in system RAM. The CPU processed the synthesis algorithms, rendered the musical score into a standard PCM digital audio stream, and sent the resulting waveform to the sound card for digital-to-analog conversion. While this method produced consistent, high-quality Roland-sampled audio across different hardware configurations, it introduced noticeable playback latency and consumed measurable CPU cycles on older Pentium processors.