Microsoft DirectX 8.1 (C++)

Using Effects in DirectSound

Playback effects in a pure DirectSound application are handled in fundamentally the same way as in an application that uses the DirectMusic performance and audiopaths. For more information, see Using Effects. Because there are no audiopaths in a DirectSound application, you always work directly with buffers.

To use effects, a DirectSound application must call CoInitialize to initialize COM. Doing so does not preclude creating the DirectSound object by using DirectSoundCreate8.

Effects might not work smoothly on very small buffers. DirectSound does not permit the creation of effects-capable buffers that hold less than DSBSIZE_FX_MIN milliseconds of data.

Create a secondary buffer that is capable of holding a DMO by setting the DSBCAPS_CTRLFX flag in the DSBUFFERDESC structure.

Implement effects on your secondary sound buffers by using IDirectSoundBuffer8::SetFX.

Obtain interfaces for effects by using IDirectSoundBuffer8::GetObjectInPath. Note that this method, unlike IDirectMusicAudioPath8::GetObjectInPath and IDirectMusicSegmentState8::GetObjectInPath, does not take a dwStage parameter, because DMOs are the only objects that can be retrieved from buffers.