The Echo Sample

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

The Windows Media Player Plug-in Wizard can create a DSP plug-in project for Microsoft Visual C++. The default code generated by the wizard allows the user to provide a scale factor between 0 and 1, which is used by the program as a multiplier for the audio samples. This is a very simple implementation that you can study to understand how Windows Media Player interacts with DSP plug-ins. The information in the section named About DSP Plug-ins can help you to understand the default implementation.

The sample described in this section is a bit more complex. This sample allows the user to specify a delay time, in milliseconds, and an effect level. The code uses these values to generate an echo effect when playing files that contain pulse code modulation (PCM) audio. Many of the file types that Windows Media Player renders use PCM audio.

This guide is divided into the following sections:

Section Description
Echo Sample Overview Describes the general requirements and specifications for the sample. Describes how the plug-in works.
Echo Sample Properties Describes how to modify the wizard code property and add methods for the new property required for the Echo sample.
Modifying the Echo Sample Property Page Shows how to modify the existing property page implementation to work with the Echo sample.
Working with Streaming Resources Demonstrates adding code to allocate and free a buffer required for the Echo sample.
Implementing CEcho::DoProcessOutput Describes how to implement the code that creates the echo effect.
Using the Echo Sample DSP Plug-in Describes how to use the completed sample.

 

DSP Plug-ins Programming Guide