Source: http://www.we-are-in-uk.com/bbs/showthread.php? T = 696
Directsound and Waveout
Q: What is the difference between Directsound and Waveout?
A: Waveout is an old and outdated Application Interface (API) used to play digital audio on 32-bit Windows ). The old Windows operating system (such as Win9x WinNT4) has a high degree of completion in Waveout (because waveout is designed for these operating systems). If you want to achieve the best performance, you should use Waveout output on these operating systems. However, the function of Waveout is limited. It cannot support the function of "mixing multiple audio streams. This shows the Waveout in Win2k/XP, which is provided only for the compatibility of the old software. Therefore, the Waveout completion in Win2k/XP is poor, it does not use any hardware acceleration function, and all sound mixing operations are performed using software (so when the CPU usage is very high, it is often similar to the CD heap disconnection phenomenon ).
Directsound is a newer and more modern sound playing API, which has been built into the latest 32-bit Windows operating system. Directsound supports mixing of multiple audio streams, independent volume control, hardware acceleration layer, and hardware simulation layer (if some functional hardware cannot be supported, you can use software for simulation, so programmers don't have to worry that their new l33t code won't work on the old voice card 16 ). In general, as long as your operating system has installed the appropriate sound card driver and the latest DirectX, Direstsound should be able to operate well (except WinNT4 ). In Win2k/XP, Directsound is better than waveout, because in these operating systems, Directsound has a higher degree of completion than waveout (it consumes less CPU resources than waveout, having a high degree of freedom, and having no common problems with Waveout ). Directsound was originally designed to allow the game to take advantage of the system's hardware acceleration function without having to directly access low-level hardware functions (just like other DirectX components ).
Q: Why is Directsound always more vocal than waveout?
A: In Win2k/XP, changing the waveout volume seems to change the overall volume setting. However, the Directsound volume is independently controlled. In other words, you use waveout to play the music. If you set the volume to 50%, you will get a 50% volume. Then you use Directsound to play the music, and you set the volume to 50%, you only get 25% of the maximum volume. Solution: Do not use waveout and set the volume to the maximum value in the Windows volume control.
Q: Is the quality of sound output between Directsound and waveout different?
A1: In Win2k/XP (or using a WDM driver), waveout and Directsound are only different when PCM data is transmitted to Windows kernel mixer. Waveout only uses software sound mixing, so it rarely causes special problems in the system. Dircetsound can use hardware sound mixing, which may cause some known problems with sound quality.
A2: In Win9x, The Directsound driver system is completely isolated from waveout, and hardware is controlled in low-level mode, therefore, it is like using two different drivers to work with waveout and Directsound. When using sound cards of some old ISA interfaces, Directsound reduces the sampling rate of audio data to 22 khz 8 bit (or other similar sampling rate) to save the ISA bus bandwidth.
Q: What is the difference between software mixing and hardware mixing for Directsound?
A: In WinXP sp1 and DirectX 8.1, whether using Microsoft's Directsound core or driver for hardware mixing, it is easy to encounter problems. It has been confirmed that even different sound cards may encounter the "sampling frequency" issue when using hardware sound mixing to transmit audio data in Winxp. In particular, some drivers have long-standing problems (the well-known new future Audigy sound card Skipping problem may cause intermittent, static noises in some settings, and even in some examples, why is there a sudden drop in sound quality !). If you want to operate the computer stably, we recommend that you disable hardware acceleration. You can find "allow hardware acceleration" in the Driectsound field in foobar2000 preference ". Enabling it does not mean that you have actually activated this function (Directsound will automatically use software mixing when there is no available resources ).