VOGONS


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

There could be a lot of parts to the answers so I will try to be specific. Feel free to correct me:

  1. Games in early 2000s had started setting requirement for DirectX (should be specifically DirectSound?) for the games. What did DirectSound do for the games, what were the other sound components needed other than DSound? = DSound rendered the game's sound. Other components could include Kernel mixing for processing of all stuff or direct mernel streaming if app wanted to access direct HW.
  2. What was present for the same purpose of DSound before it was used (mid-90s, Win95 era, or for cards that didn't have DSound support)? = WinMM
  3. What replaces DSound now? I would have blindly accepted XAudio2, but there seems to be a gap of 2007-2008 in Windows Vista...what was being pushed then by MS to use? = XAudio2? No 3D acceleration from MS in 2007-2008? Core Audio?
  4. The successors and predecessors of DSound, whatever characteristic they have, are they a complete replacement of what DSound had, or there are some stuffs that have been separated into other APIs/processes? = Probably complete replacement with generational additions, upgrades.
  5. What is the Wave Mapper? Was it one (or one of the multiple predecessors of DSound (that is still used today)? = WinMM. Yes it was the predecessor of DSound.
  6. What is the WASAPI? Anything related to XAudio2 or DSound? Anything similar to KMixer? = Session API, where all the sound sessions take place.
  7. Is XACT2 a replacement for DSound, XAudio2 or it is just a library to build on those 2 APIS? = library to write DSound or XAudio2
  8. s there a good place to read about the DSound3D, I never found any...

Thanks in advance for your time

Last edited by BEEN_Nath_58 on 2023-10-04, 09:28. Edited 3 times in total.

previously known as Discrete_BOB_058

Reply 1 of 18, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t

There's fairly detailed Wikipedia article on DirectSound, with reference links for further reading.

As for immediate successors, many games developed during the WinXP -> Vista -> Win7 transitional period used OpenAL.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 2 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Joseph_Joestar wrote on 2023-10-03, 18:18:

There's fairly detailed Wikipedia article on DirectSound, with reference links for further reading.

As for immediate successors, many games developed during the WinXP -> Vista -> Win7 transitional period used OpenAL.

Yes there was OpenAL, but did MS offer nothing in that period?

That links to DSound. I mentioned DSound3D

previously known as Discrete_BOB_058

Reply 3 of 18, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
BEEN_Nath_58 wrote on 2023-10-03, 18:40:

That links to DSound. I mentioned DSound3D

From the article that I linked:

In DirectX 8, DirectSound and DirectSound3D (DS3D) were officially merged and given the name DirectX Audio, however the API is still commonly referred to as DirectSound.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 4 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Joseph_Joestar wrote on 2023-10-03, 18:46:
BEEN_Nath_58 wrote on 2023-10-03, 18:40:

That links to DSound. I mentioned DSound3D

From the article that I linked:

In DirectX 8, DirectSound and DirectSound3D (DS3D) were officially merged and given the name DirectX Audio, however the API is still commonly referred to as DirectSound.

To be specific I am talking about the old, before merger, DirectSound3D... it performs HRTF, thats' all I know...

previously known as Discrete_BOB_058

Reply 5 of 18, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t

There is some additional info in the reference links of the Wikipedia article:

I'm not sure if that info is from before the merger or after, but it might be relevant. Anyhow, from personal experience, I can say that DirectSound3D allows 5.1 surround sound in certain games. Some of those are documented in this thread.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 6 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Joseph_Joestar wrote on 2023-10-03, 19:11:
There is some additional info in the reference links of the Wikipedia article: […]
Show full quote

There is some additional info in the reference links of the Wikipedia article:

I'm not sure if that info is from before the merger or after, but it might be relevant. Anyhow, from personal experience, I can say that DirectSound3D allows 5.1 surround sound in certain games. Some of those are documented in this thread.

GTA Vice City has DSOUND3D HW acceleration, and there is DSOUND HW acceleration. I am quite unsure how Dsound3d sw emulation (which is default for gtavc nowadays) has been running smoothly for P4 users with AC'97 chips. Could it be that dsound3d sw is just plain Dsound?

Edit: A remarkably good read: http://shanekirk.com/2015/10/a-brief-history- … ows-audio-apis/

previously known as Discrete_BOB_058

Reply 7 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

From the Link in my prev message, I come to the following conclusion:

Wave Mapper (broadly, WINMM) was the predecessor of Dsound

XAudio2 is the successor of DSound

2007-2008, when Vista launched and there was no XAudio2, MS still supported Dsound, but only in SW mode. This should mean the earliest DX10 libaries should contain DirectSound too. The only HW accelerated API back then was OpenAL?

WASAPI is the spot of all sound sessions. It could be compared to DWM but not completely (DWM could be more definitely compared to its parent Core Audio API)

I will take some time to edit my first post, feel free to correct my interpretation if incorrect

previously known as Discrete_BOB_058

Reply 8 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

Another confusion made from:
Re: indirect sound

jonpol talks about wanting to use Wasapi over XAudio2, but I interpret that XAudio2/Dsound has to stay on top of Wasapi and throw it's instructions on a wasapi sessions. If there's no XAudio2, then how?

I could assume that direct hardware programming for exclusive mode in Wasapi can remove the dependency of an API, but what for non-exclusive modes? Is this direct WASAPI usage a form of WDM/kernel streaming in Win9x (without using DSound)?

Also Wikiledia states XAudio2 runs on top of DSound in XP but Wasapi in Vista+, this makes DSound's successor Core Audio? Again XAudio2 runs on top of DSound on XP, is there a way to have XAudio2 over DSound over Wasapi on Vista+?

previously known as Discrete_BOB_058

Reply 9 of 18, by shevalier

User metadata
Rank Member
Rank
Member
Joseph_Joestar wrote on 2023-10-03, 18:18:

As for immediate successors, many games developed during the WinXP -> Vista -> Win7 transitional period used OpenAL.

I would not say. The OpenAL is a proprietary API from Creative.
Somebody tried to use it and happily forgot about it.
FMOD defeated everyone.
And this is good, because everyone is tired of the problems with h/w DirectSound3D.

Aopen MX3S, PIII-S Tualatin 1133, Radeon 9800Pro@XT BIOS, Diamond monster sound MX300
JetWay K8T8AS, Athlon DH-E6 3000+, Radeon HD2600Pro AGP, Audigy 2 Value

Reply 10 of 18, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
shevalier wrote on 2023-10-04, 07:57:

I would not say. The OpenAL is a proprietary API from Creative.

Proprietary or not, quite a few games used OpenAL during the 2006-2009 transitional period, including AAA heavy hitters like Unreal Tournament 3, Battlefield 2142, Mass Effect and Bioshock. Obviously, it was used before that as well.

It did fall out of favor during the early 2010s though.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 11 of 18, by thp

User metadata
Rank Member
Rank
Member
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

What is the Wave Mapper? Was it one (or one of the multiple predecessors of DSound (that is still used today)? = WinMM

Wave Mapper, just like Midi Mapper is a way for you (as a developer using the winmm API) to get a default output device without having to do the enumeration and choosing of available devices yourself (e.g. how you configure the MIDI synth that Windows Media Player is using).

MIDI_MAPPER is a device ID you can pass to midiOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-midioutopen

WAVE_MAPPER is a device ID you can pass to waveOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-waveoutopen

Both functions are part of the winmm library, it’s not a separate API. Sometimes the family of functions are called “waveOut API” and “midiOut API”.

Reply 12 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
thp wrote on 2023-10-04, 08:37:
Wave Mapper, just like Midi Mapper is a way for you (as a developer using the winmm API) to get a default output device without […]
Show full quote
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

What is the Wave Mapper? Was it one (or one of the multiple predecessors of DSound (that is still used today)? = WinMM

Wave Mapper, just like Midi Mapper is a way for you (as a developer using the winmm API) to get a default output device without having to do the enumeration and choosing of available devices yourself (e.g. how you configure the MIDI synth that Windows Media Player is using).

MIDI_MAPPER is a device ID you can pass to midiOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-midioutopen

WAVE_MAPPER is a device ID you can pass to waveOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-waveoutopen

Both functions are part of the winmm library, it’s not a separate API. Sometimes the family of functions are called “waveOut API” and “midiOut API”.

Yes, that makes sense 👍

previously known as Discrete_BOB_058

Reply 13 of 18, by shevalier

User metadata
Rank Member
Rank
Member
Joseph_Joestar wrote on 2023-10-04, 08:04:

Proprietary or not, quite a few games used OpenAL during the 2006-2009 transitional period, including AAA heavy hitters like Unreal Tournament 3, Battlefield 2142, Mass Effect and Bioshock. Obviously, it was used before that as well.

It did fall out of favor during the early 2010s though.

"One game studio" Croteam used it for some reason in 2020 in Serious Sam 4.
But OpenAL was not a replacement for DirectSound3D, it was an attempt by Creative to stall for time.
Some studios have decided to experiment with this technology, just like Physx.
At the time of Vista's release, the most common sound card was Realtek ALC655 😀
In which the most correct and reference audio render was used - software.
Because Microsoft finally got tired of this abundance of proprietary APIs from vendors, with which the result was different for everyone.

BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What is the WASAPI?

Microsoft's attempt to oust Steinberg with their ASIO.
Well, so that audiophiles don’t make a fuss.
An interface that allows low latency transmission of a bit-accurate stream to a sound card.

Aopen MX3S, PIII-S Tualatin 1133, Radeon 9800Pro@XT BIOS, Diamond monster sound MX300
JetWay K8T8AS, Athlon DH-E6 3000+, Radeon HD2600Pro AGP, Audigy 2 Value

Reply 14 of 18, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
shevalier wrote on 2023-10-04, 10:30:
Microsoft's attempt to oust Steinberg with their ASIO. Well, so that audiophiles don’t make a fuss. An interface that allows low […]
Show full quote
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What is the WASAPI?

Microsoft's attempt to oust Steinberg with their ASIO.
Well, so that audiophiles don’t make a fuss.
An interface that allows low latency transmission of a bit-accurate stream to a sound card.

Yes that talks about the exclusive mode WASAPI, but how would you program it for shared and exclusive mode. For example, in DSound you have different interfaces to choose from, from which you choose an operation to be done. You choose a device for output, query for device capabilities. Does WASAPI have equivalent resources for this in shared mode? And how is it done in exclusive mode?

previously known as Discrete_BOB_058

Reply 15 of 18, by shevalier

User metadata
Rank Member
Rank
Member

This is not my level of questions.
But if you understand the code, clsid2 in MPC-HC solved this issue.
In addition, it’s open source, you can borrow it.
https://github.com/clsid2/mpc-hc/tree/develop

Although OpenAL with the transfer of coordinates of 5.1 speakers for further mixing into headphones using X-Fi for watching movies would be ideal.
But alas, OpenAL became dead without being born.

Aopen MX3S, PIII-S Tualatin 1133, Radeon 9800Pro@XT BIOS, Diamond monster sound MX300
JetWay K8T8AS, Athlon DH-E6 3000+, Radeon HD2600Pro AGP, Audigy 2 Value

Reply 16 of 18, by mirh

User metadata
Rank Member
Rank
Member
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

Games in early 2000s had started setting requirement for DirectX (should be specifically DirectSound?) for the games. What did DirectSound do for the games, what were the other sound components needed other than DSound? = DSound rendered the game's sound. Other components could include Kernel mixing for processing of all stuff or direct mernel streaming if app wanted to access direct HW.

This seems so vaguely written that I suspect a case of XY problem.
Anyhow, games in the 90s had already started to require it - and it's just the audio api. Nothing more nothing less, just like direct3d you have to support it or the game is bust.
https://web.archive.org/web/20040720080834/ht … rivermodels.asp
https://web.archive.org/web/20031011183712/ht … design_4mqv.asp
https://web.archive.org/web/20031217211517/ht … design_5gkn.asp

BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What was present for the same purpose of DSound before it was used (mid-90s, Win95 era, or for cards that didn't have DSound support)? = WinMM

You don't really want to know what existed before the windows days.

BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What is the Wave Mapper? Was it one (or one of the multiple predecessors of DSound (that is still used today)? = WinMM. Yes it was the predecessor of DSound.

It's kinda the first google result.
https://www.soundonsound.com/sound-advice/q-w … ft-sound-mapper

BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What is the WASAPI? Anything related to XAudio2 or DSound? Anything similar to KMixer? = Session API, where all the sound sessions take place.

https://github.com/dechamps/FlexASIO/blob/master/BACKENDS.md

BEEN_Nath_58 wrote on 2023-10-03, 17:31:

Is there a good place to read about the DSound3D, I never found any...

I'm sure your wild mind will appreciate my deranged scrapings of the web here

Joseph_Joestar wrote on 2023-10-03, 18:18:

As for immediate successors, many games developed during the WinXP -> Vista -> Win7 transitional period used OpenAL.

Not that many tbh.
OpenAL if any was the successor as far as all of the creative's gimmicky and locks were concerned (notwithstanding the fact that the design itself wasn't bad)

BEEN_Nath_58 wrote on 2023-10-03, 20:27:

Wave Mapper (broadly, WINMM) was the predecessor of Dsound
XAudio2 is the successor of DSound

I wouldn't be so sure really, many games in 1995 were pretty much DOS-based and called it a day.
I'm skeptical the majority of people could even just afford a sample-based sound card? AdLib, WSS, MIDI, SoundFont were probably more important.

And I'm fairly sure XAudio2 is a gaming-specific api which is only a subset of the whole "scope" of directsound.

BEEN_Nath_58 wrote on 2023-10-03, 20:27:

2007-2008, when Vista launched and there was no XAudio2, MS still supported Dsound, but only in SW mode. This should mean the earliest DX10 libaries should contain DirectSound too. The only HW accelerated API back then was OpenAL?

For pete's sake, just forget the fact that some api touches the hardware or not. That has no implication on quality, unless you live in an ecosystem that is hardcoded on ancient expectations from the 90s.
Also XAudio2 launched in late 2007 (and it is kinda of an easier abstraction of the XAudio xbox api I believe?) and directsound in Vista was actually expanded. Still, lacking any other high level abstraction any interested developer should have used WASAPI.

BEEN_Nath_58 wrote on 2023-10-03, 20:27:

WASAPI is the spot of all sound sessions. It could be compared to DWM but not completely (DWM could be more definitely compared to its parent Core Audio API)

WASAPI is, duh, an audio api. It is not "a" thing like a process.
The audiosrv service if any would be the matching relative of dwm.exe (even though I'm not sure about its corresponding driver in kernel space).

And the "Core Audio " (proper noun) api is the one they have over at osx.
Core Audio APIs (capitalized because reasons, but it's just a common noun) are actually four. Some developers refer to them as MMDevApi, from the name of the library that implements them.

shevalier wrote on 2023-10-04, 07:57:

I would not say. The OpenAL is a proprietary API from Creative.

It is an open API, that for a long time was only developed with Creative proprietary implementation needs in mind.
Still, credit due where it is due, they still maintained the core specification, the router and the basic wrapper.

P.s. and just for the records, FMOD itself used to support it too (as can be seen in bioshock.. and some older world of warcraft builds apparently?)

Joseph_Joestar wrote on 2023-10-04, 08:04:

Obviously, it was used before that as well.

Let's just say that it's a miracle that older versions even worked and continued to work.
Also, in the early 2010s CT dropped the ball, so there was nobody else aiding developers and evangelizing.

shevalier wrote on 2023-10-04, 10:30:

"One game studio" Croteam used it for some reason in 2020 in Serious Sam 4.

https://steamdb.info/stats/releases/?tech=SDK.OpenAL
There is actually kind of a resurgence as of lately. Admittedly, probably more because it has been integrated in some second class middleware than because of specific decisions on the side of developers.. but still. And it's used outside of gaming too. Telegram for instance statically links openal-soft.

shevalier wrote on 2023-10-04, 10:30:

But OpenAL was not a replacement for DirectSound3D, it was an attempt by Creative to stall for time.
Some studios have decided to experiment with this technology, just like Physx.

"Some studios decided to experiment with this technology" => Epic had it as the default audio api in UE3. Mhh k.
And yes it was a replacement for ds3d (even though it was originally meant to just be a glue for cross-platform ports, and even though on its release day no native implementation existed so the default was still ds3d eventually).

Btw just the same, physx also having locked down eyecandy doesn't mean that it wasn't successful. Thousands of games (and hundreds of AAA ones) used it in its normal cpu version.

shevalier wrote on 2023-10-04, 10:30:
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

[*]What is the WASAPI?

Microsoft's attempt to oust Steinberg with their ASIO.

No, it's literally THE windows sound api.
Everything else (though perhaps simpler) is just stacked on top of it. Including modern openal-soft that is.

shevalier wrote on 2023-10-04, 14:21:

But alas, OpenAL became dead without being born.

And yet it moves.
I believe cool kids nowadays use HeSuVi for headphone virtualization then, but as good as it could be at least on paper a post-process APO (that can access the final output of 8 discrete channels at most) should stand below in-game remixing with a full 360° 3-dimensional sound stage.

Last edited by mirh on 2024-09-03, 01:43. Edited 2 times in total.

pcgamingwiki.com

Reply 17 of 18, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Once upon a time Windows wasn't available to play more than one digitized sound at once.
When you had more than one sound card you had this opportunity of course. I also have heared about a sound driver for an Ensonic SoundScape who installed 3 wave devices at once.

Was this controlled by Wave Mapper?

Reply 18 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++
BEEN_Nath_58 wrote on 2023-10-04, 09:25:
thp wrote on 2023-10-04, 08:37:
Wave Mapper, just like Midi Mapper is a way for you (as a developer using the winmm API) to get a default output device without […]
Show full quote
BEEN_Nath_58 wrote on 2023-10-03, 17:31:

What is the Wave Mapper? Was it one (or one of the multiple predecessors of DSound (that is still used today)? = WinMM

Wave Mapper, just like Midi Mapper is a way for you (as a developer using the winmm API) to get a default output device without having to do the enumeration and choosing of available devices yourself (e.g. how you configure the MIDI synth that Windows Media Player is using).

MIDI_MAPPER is a device ID you can pass to midiOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-midioutopen

WAVE_MAPPER is a device ID you can pass to waveOutOpen() - https://learn.microsoft.com/en-us/windows/win … api-waveoutopen

Both functions are part of the winmm library, it’s not a separate API. Sometimes the family of functions are called “waveOut API” and “midiOut API”.

Yes, that makes sense 👍

WinMM dates back to Windows 3.0a MME, I think. There was an older audio API, however: SNDBLST.DLL
It could be used on ordinary Windows 3.0/3.0a, even in Real-Mode on an 8088/8086 computer.

Installation on Windows 3.1x and WFWG is also possible, but native 3.1 sound drivers have to be unloaded in Control Panel.
The Sound Blaster DLL is aware of the SB 1.0, 1.5, 2.0 and SB Pro, I think. Not sure about SB Pro 2, SB16 or clones.

More information here: Adventures with Windows 3.0

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//