How Windows 98 Handled MIDI Playback and Sound Banks

During the late 1990s, personal computing experienced a major shift from legacy hardware-based audio synthesis to dynamic, software-driven rendering. Microsoft Windows 98 handled Musical Instrument Digital Interface (MIDI) playback through a dual-architecture driver framework that supported legacy hardware synthesis, advanced PCI wavetable cards, and integrated software synthesis. By integrating DirectX technologies and introducing native Downloadable Sounds (DLS) support, the operating system standardized MIDI handling, ensuring consistent musical playback regardless of whether a user possessed an entry-level sound card or professional audio hardware.

Driver Architecture: VxD vs. WDM

Windows 98 operated during a transitional era for driver frameworks, supporting both legacy Virtual Device Drivers (VxD) and the newer Windows Driver Model (WDM).

Under the VxD model inherited from Windows 95, audio cards communicated directly with the system with minimal latency, but drivers were prone to instability. Windows 98 introduced the WDM architecture, which standardized audio through the Kernel Mixer (KMixer). For MIDI, WDM provided a unified layer that allowed multiple applications to share audio resources simultaneously, abstracting the physical hardware routing and standardizing how MIDI event streams reached output devices.

Hardware-Based Synthesis: FM and Dedicated Wavetable

For hardware-based playback, Windows 98 routed MIDI events through drivers targeting the sound card's onboard processing hardware:

  • FM Synthesis (OPL3): Older ISA cards, such as the Creative Sound Blaster 16, relied on frequency modulation via chips like the Yamaha YMF262 (OPL3). The driver translated incoming MIDI note and control change messages into register writes that modulated basic waveforms to emulate musical instruments.
  • Hardware Wavetable Synthesis: Higher-end cards, such as the Sound Blaster AWE32, AWE64, and the emerging Sound Blaster Live!, featured onboard digital signal processors (DSPs) and dedicated ROM or RAM. These cards stored digitized audio samples of real instruments. Windows 98 passed MIDI data straight to the card's processor via the MPU-401 interface or proprietary driver endpoints, bypassing the host CPU entirely.

Proprietary Sound Banks and SoundFonts

Prior to industry standardization, sound bank handling was largely hardware-dependent. Hardware wavetable cards utilized dedicated formats to store sample instruments:

Creative Labs dominated this market with its SoundFont technology (primarily SoundFont 2.0 / .SF2). If an audio card contained onboard sample RAM or used system memory via PCI bus mastering, Windows 98 allowed users and applications to load custom .SF2 banks. These banks mapped recorded instrument samples across keyboard zones with velocity splits, envelopes, and filter settings directly executed by the sound card hardware.

Software Synthesis: The Microsoft GS Wavetable Synth

To ensure systems without expensive wavetable hardware could still play high-quality music, Windows 98 shipped with the Microsoft GS Wavetable Software Synthesizer.

Licensed from Roland and based on the Roland Sound Canvas SC-55 sound set, this synthesizer processed MIDI playback entirely through the host CPU. It relied on a compact General MIDI/GS sound bank stored as gm.dls in the system32\drivers directory. When an application played a MIDI file, the software synth converted the MIDI instructions into digital PCM audio by referencing the gm.dls instrument samples, passing the resulting audio stream to the primary sound driver. While this introduced noticeable playback latency and consumed CPU cycles, it guaranteed a consistent, baseline General MIDI experience across all Windows 98 machines.

DirectMusic and the DLS-1 Standard

Windows 98 integrated DirectX (specifically DirectMusic, introduced in DirectX 6.1), which fundamentally changed how MIDI sound banks were handled.

DirectMusic moved beyond static, hardware-bound sound sets by adopting the Downloadable Sounds Level 1 (DLS-1) open standard created by the MIDI Manufacturers Association. DLS allowed developers to package custom instrument samples directly inside game or application data. Instead of relying on whatever general sound set was hardcoded into a user’s sound card, Windows 98 could dynamically upload custom DLS banks into system memory or hardware RAM at runtime, ensuring that MIDI sequences sounded identical on every computer.

MIDI Configuration and Routing

Windows 98 managed MIDI routing through the Multimedia applet in the Control Panel. Under the MIDI tab, users could specify the default output device from an enumerated list of installed endpoints:

  • External MIDI Out ports (for physical synthesizers connected via a game port or serial interface).
  • Hardware synthesizers (such as an internal OPL3 FM chip or onboard Creative wavetable processor).
  • Software synthesizers (such as the Microsoft GS Wavetable Synth or third-party engines like Yamaha XG SoftSynthesizer).

Applications could either query this default device via the standard Windows Multimedia API (winmm.dll) using midiOut commands or interface directly with DirectMusic for dynamic, interactive musical composition and software bank loading.