Author Topic: what is directsound??  (Read 933 times)

0 Members and 1 Guest are viewing this topic.

Offline chrisNova777

  • Administrator
  • Posts: 8341
  • Gender: Male
  • "Vintage MIDI Sequencing + Audio Production"
    • www.oldschooldaw.com | vintage audio production software + hardware info
what is directsound??
« on: September 21, 2017, 09:00:37 PM »
https://www.sweetwater.com/sweetcare/articles/what-directsound/

Quote
What is directsound and how do I use it?
Article #12337 Updated on Apr 27, 2007 at 12:00 AM
Windows 95 VxD
————–
DirectSound was originally added during the timeframe of Windows 95 at which time audio drivers where of the VXD style. A special set of APIs was developed which audio driver writters had to incorporate into their product’s VXD in order to support DirectSound directly. Without these changes, the Windows DirectSound subsystem would perform an “emulation” in which the DirectSound data from games, etc would be turned into standard MME style wave data, which would add quite a bit of latency.

Windows 98 VxD
————–
VxD style drivers written for Windows 95 can also be used on the Windows 98 platform, in which case DirectSound is managed in the exact same way.

Windows 98 WDM
————–
With Windows 98, Microsoft came up with a new WDM style driver. With this type driver, there was a standardized low latency wave interface into the Windows kernel. The OS would then expose these wave interfaces to applications as either the standard MME wave ports or via DirectSound. Thus, once an audio driver is written in WDM style it automatically gets DirectSound support without any special code additions & without the emulation latency overhead.

Windows NT 3.51 & 4.0
———————
The older Windows NT operating systems require a totally different type of driver to support audio hardware than the VxD. This is based partially on the fact that the NT OS is a very secure system where memory sharing is not permitted and there might be multiple processors trying to access the same piece of hardware. So there are many protective calls that must be added to a hardware driver which runs at a rather priviledged level in the system.

The upshot of this is that, even though there is DirectX on the Windows NT platform, there is no special DirectSound API interface for the Windows NT 3.51 & 4.0 style drivers. The way that DirectSound is supported here is via emulation through the standard MME wave ports. (Similar to a Windows 95 VxD for which the audio designer did not provide the APIs for DirectSound.) There just is NO equivalent API in Windows NT 3.51 & 4.0 style drivers and thus the user is stuck with this emulation mode.

To further complicate things on the Windows NT platform is the fact that you are “stuck” with a particular version of DirectX. Under Windows 9X, when Microsoft releases a newer version of DirectX, they also release an upgrade utility that developers can include with their new applications. Thus if someone is taking advantage of some new DirectX 7 feature, this upgrade utility will check to make sure that the version of DirectX on the Windows 9X system is at the appropriate level. This ONLY applies to Windows 95 & 98.

For Windows NT 3.51 there was NO DirectX support. For Windows NT 4.0, DirectX3 support was added with Service Pack 3. Later Service Packs (4, 5, & 6a) still only provide the DirectX3 support added in SP3. So if someonewants to run an app that specifically requires a higher level DirectX than 3 on Windows NT 4, they will not be able to upgrade it to a higher level of DirectX.

Windows 2000
————
Windows 2000 supports 2 types of audio hardware drivers, the older Windows 3.51 & 4.0 style driver and the newer WDM style driver that work on Windows 98. When using the Windows 3.51 & 4.0 style driver under Windows 2000, the only DirectX support porvided is “emulation” style just as when these drivers are used under Windows NT 4.0. However, the WDM style driver uses the same standardized low latency interface in Windows 2000 that it does in Windows 98. Therefore, there is real DirectSound support
in this case which the driver gets by default for being of the WDM style. Again, as mentioned for Windows 98, there are no special DirectSound related APIs that get added to a WDM style driver; you get DirectSound support automatically by being a WDM style driver.