DirectMusic is a deprecated component of the MicrosoftDirectXAPI that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played. Architecturally, DirectMusic is a high-level set of objects, built on top of DirectSound, that allow the programmer to play sound and music without needing to get quite as low-level as DirectSound. DirectSound allows for the capture and playback of digital sound samples, whereas DirectMusic works with message-based musical data. Music can be synthesized either in hardware, in the Microsoft GS Wavetable SW Synth, or in a custom synthesizer.
DirectMusic provides a complete system for implementing dynamic soundtracks that take advantage of hardware acceleration, Downloadable Sounds, DirectX Media Objects, advanced 3D positioning effects and several other features. DirectMusic provides composition and playback of dynamic musical soundtracks based on stored compositional material. Rather than a static playback, the music is generated on the fly, and is played with variations, and can respond to flexible program events. Using DirectMusic, it is possible to:
Load and play sounds from files or resources in MIDI, WAV, or DirectMusic Producer run-time format. The small file size of DirectMusic soundtracks makes it very well suited for Web applications.
Schedule the timing of musical events with high precision. DirectMusic allows timestamping of MIDI input data at the moment of arrival to a system wide reference clock. Music or sound effects composed for DirectMusic can be very flexible and can change dynamically over time or in response to a user event. DirectMusic addresses the problems of Windows' legacy MidiOut API, which has shaky timing and limited real-time control.
Play from multiple sources simultaneously, each with separate timing and instrument sets.
Send tempo changes, patch changes, and other MIDI events programmatically.
On computers with sound card which lack 'wavetable' sample-based synthesis, DirectSound's Software Synthesizer ensures that message-based music such as MIDI files and DirectMusic segments sound identical on all hardware configurations rather than playing differently on different computers with different sound cards. An application can also play an unlimited variety of instruments and even produce unique sounds for individual notes and velocities.
Use more than 16 MIDI channels. DirectMusic makes it possible for any number of voices to be played simultaneously, up to the limits of the synthesizer.
Play segments on different audio paths, so that effects or spatialization can be applied individually to each sound.
Capture MIDI data, or stream it from one port to another.
DirectMusic Producer can be used to create sound files that take full advantage of DirectMusic's interactive features.
On Microsoft Windows Vista, DirectMusic uses only software synthesis. Also, the DirectMusic kernel mode synthesizer that supplies the DirectMusic components with a high-resolution timer has been removed.