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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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 15, 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