DirectSound Hardware-Acceleration and SRC Sliders
Windows Me/98, and Windows 2000 and later, provide global slider controls for altering DirectSound performance on a system-wide basis. The sliders control the level of hardware acceleration and quality of sample-rate conversion (SRC) that are made available to DirectSound applications. Changes made to the hardware-acceleration and SRC sliders are persistent across boot-ups.
The hardware-acceleration and SRC settings can be changed only by direct end-user action. No API is available for changing the hardware-acceleration or SRC setting from an application program. This behavior improves stability and prevents software from placing the audio system in a state from which it cannot be removed without rebooting.
These settings affect only DirectSound applications. Note that the waveOut API always uses the best SRC quality regardless of the setting of the DirectSound SRC slider. Also, in all current versions of Windows, waveOut applications are unable to use hardware-accelerated pins on audio devices and are unaffected by the setting of the DirectSound hardware-acceleration slider. For more information about the Windows multimedia waveOut API, see the Microsoft Windows SDK documentation.
To locate the DirectSound hardware-acceleration and SRC sliders in Windows XP, for example, follow these steps:
In Control Panel, double-click the Sounds and Audio Devices icon (or just run mmsys.cpl).
On the Audio tab, select a device from the Sound Playback list.
Click the Advanced button.
Click the Performance tab.
At this point, you should see two sliders that are labeled Hardware acceleration and Sample rate conversion quality.
The hardware-acceleration slider has four settings that range from None (level 0) on the left to Full (level three) on the right. The following table shows the meaning of these settings.
|Acceleration Level||Setting Name||Description|
Disables hardware acceleration of DirectSound secondary buffers.
Enables hardware acceleration of DirectSound secondary buffers but disables vendor-specific property-set extensions.
Enables hardware acceleration of DirectSound secondary buffers and enables vendor-specific property-set extensions.
The Emulation setting above forces DirectSound into emulation mode. In this mode, DirectSound applications run as though no DirectSound driver is present. All mixing is done by DirectSound in user mode, and the resulting audio data is played back through the waveOut API. The result is typically a large increase in latency. Note that after you select this setting, you might need to reboot if you are running a Windows version that is earlier than Windows XP and you want to change to one of the other three settings: Basic, Standard, or Full. This problem has been fixed in the version of DirectSound that ships with Windows XP and later.
The Basic setting disables hardware acceleration of DirectSound secondary buffers. Under this setting, all DirectSound applications run as though no hardware acceleration is available, regardless of the capabilities of the sound card that is being used. You can use this setting during testing to emulate a sound card that has no DirectSound acceleration. With an adapter such as the OPL, which has no acceleration of DirectSound secondary buffers, this setting has the same effect as the Standard setting. In Windows Server 2003, Basic is the default setting.
The Standard setting enables hardware acceleration of DirectSound secondary buffers but disables vendor-specific extensions such as EAX (Creative Technologies' environmental audio extensions) that are exposed as property sets through the IKsPropertySet interface (see Exposing Custom Audio Property Sets). In Windows 2000, the Standard setting is selected by default.
The Full setting enables full acceleration of DirectSound secondary buffers. This setting also enables property sets for vendor-specific extensions that are exposed through the IKsPropertySet interface (see Exposing Custom Audio Property Sets). IKsPropertySet extensions include vendor-specific hardware enhancements such as EAX. This is the default setting in Windows Me/98 and Windows XP.
The following table summarizes the default settings for the hardware-acceleration and SRC sliders for the various Windows releases.
|Windows Release||Default Hardware-Acceleration Setting||Default SRC Setting|
Windows Server 2003
If the user adjusts either the hardware-acceleration or SRC setting to a value other than the default, DirectSound uses the new setting instead of the default.
In Windows XP, the KMixer system driver uses an SRC algorithm that provides a signal-to-noise ratio of up to 85 decibels when the SRC slider is set to Best. For more information about KMixer's SRC algorithms, see KMixer Driver Sample Rate Conversion and Mixing Policy.