What's New in DirectSound

[The feature associated with this page, DirectSound, is a legacy feature. It has been superseded by WASAPI and Audio Graphs. Media Casting have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Media Casting instead of DirectSound, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The DirectSound application programming interface (API) has not been significantly revised for DirectX 9.0. However, many performance enhancements were implemented for the Summer 2004 Update (DirectX 9.0c).

In addition, the following changes have been made:

  • The maximum frequency of sound buffers has been increased from 100 kHz to 200 kHz, where supported by the operating system. (These higher frequencies are not supported by DirectShow.)

  • Frequency and effects controls (DSBCAPS_CTRLFREQUENCY and DSBCAPS_CRTLFX) can now be combined on buffers. Combining these flags makes it possible to have Doppler shift on buffers with effects.

  • Audio formats described by the WAVEFORMATEXTENSIBLE structure are fully supported throughout DirectSound.

  • The standard effects support parameter curves (when hosted outside of DirectSound) without having to call IMediaObjectInPlace::Process on them repeatedly in very small increments.

Windows XP SP 2

For Windows XP SP 2, Windows Server 2003 SP1, and Windows XP Pro x64 Edition, speaker configuration was expanded. DSSPEAKER_7POINT1 is now DSSPEAKER_7POINT1_WIDE and a new configuration DSSPEAKER_7POINT1_SURROUND was added.

Windows Vista

The following changes were made for the Windows Vista version of the DirectSound API to reflect the features of the new audio driver stack:

  • Software (DSBCAPS_LOCSOFTWARE) buffers support multichannel audio on Windows Vista.

  • Hardware (DSBCAPS_LOCHARDWARE) buffers always fail to create on Windows Vista.

  • DSSPEAKER_5POINT1 is now DSSPEAKER_5POINT1_BACK and a new configuration DSSPEAKER_5POINT1_SURROUND was added. For a complete list, see speaker configurations in IDirectSound8::SetSpeakerConfig.