Deciding Whether to Use the MIDI or DMus Port Driver
PortCls provides a MIDI port driver and a DMus port driver. The MIDI port driver controls a simple MIDI device, such as an FM synthesizer or MPU-401 port. The DMus port driver is an enhanced version of the MIDI port driver that supports advanced MIDI features, such as downloadable sounds (DLS), precision sequencing, and channel groups that are used by Microsoft DirectMusic applications.
Hardware support for MIDI and DirectMusic generally falls into two categories. The first category consists of MPU-401 ports for sending MIDI streams to external MIDI devices and for capturing MIDI streams from external devices. Most systems have audio adapters, but few are connected to external MIDI devices. An inexpensive audio adapter might omit the MPU-401 ports to reduce cost.
The second category consists of synthesizers for playing MIDI streams. For older systems with limited processing power, hardware synthesizers are useful for faithfully rendering high-quality MIDI streams that contain many instruments and require precision timing. With today's faster processors and improved operating systems, software synthesizers are able to satisfy all but the most demanding MIDI-rendering requirements.
The MIDI and DMus miniport drivers make MIDI hardware capabilities available to applications that use DirectMusic and the Windows multimedia midiInXxx and midiOutXxx functions in Windows Server 2003, Windows XP, Windows 2000, and Windows Me/98.
In Windows Vista, DirectMusic and the midiInXxx and midiOutXxx functions will increasingly rely on software synthesis instead of hardware synthesizers. Software synthesis provides a means of enforcing the operating system's global policy (chiefly in regard to volume levels) on MIDI streams. Certain audio applications, including acoustic echo cancellation (AEC), depend on strict adherence to global policy. The degree to which applications running in Windows Vista can make use of MIDI hardware is still being determined.
For more information about DirectMusic and Windows multimedia, see the Windows SDK documentation.