Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Surround sound support #1255

Closed
Choum28 opened this issue Mar 6, 2023 · 10 comments
Closed

Surround sound support #1255

Choum28 opened this issue Mar 6, 2023 · 10 comments

Comments

@Choum28
Copy link

Choum28 commented Mar 6, 2023

Hi all,
Do you think it's possible to reimplement surround sound support like it was on old gold source version (pre linux HL releasse) ?
Actually it seems limited at stereo only (tested on windows).

@a1batross
Copy link
Member

Old GoldSrc used A3D. Although we potentially have code for implementing it, it is discontinued, and no compatible emulator was made. A3DLive is just a wrapper that passes sound to DirectSound skipping surround sound.

And I personally don't want to add EAX/OpenAL as it doesn't add anything significant to me, except some basic HRTF, but that's it.

There was an attempt at adding Steam Audio, but it's problematic to us, as it's non-free and I don't want to pollute the engine further with non-free code.

There are plans at adding Sound API #762 which ideally would allow replacing whole sound subsystem in game code, adding whatever you want from SteamAudio to OpenAL and this is what PrimeXT developer is highly interested in. I have some early drafts, but no implementation was done.

I'm closing this issue in favor of #762, if you have any thoughts, tell me about it there.

@Choum28
Copy link
Author

Choum28 commented Mar 6, 2023

I agree there's no point to reimplent EAX or A3D, both are still usable on windows 11, but not on other OS.

After playing a bit with Xashin hazard course, it seems that it already support some kind of sound effect :
Echo in big room
"sewer effect" inside ventilation pipe.
underwater effect is missing when in water

But my question was not about EAX or A3D sound effect ,just sound positionning for 4.1 5.1 sound setup, exept if you means that surround sound on original game was only possible with EAX extensions or A3D enabled (which I don't remember).

@a1batross
Copy link
Member

4.1 or 5.1 is not supported in any way, sadly. I don't think even GoldSrc supports it with A3D or EAX.

If I'm not wrong, it would require rewriting a significant part of the audio mixer, as we're blasting only stereo samples to the audio driver. But it should be possible somehow, as we have the needed data for positioning it to 2 or even more speakers. But I don't have such setup unfortunately.

@Choum28
Copy link
Author

Choum28 commented Mar 6, 2023

I can confirm that GoldSrc were supporting surround sound setup.
The won version for sure, I was using a 4.1 system at that time.
and also the steam version until this update came out : https://steamcommunity.com/games/70/announcements/detail/1028213937978037958

Note : for the steam version and modern windows (vista and more), it was requiring to use a directsound 3D wrapper (like Creative alchemy) to make surround sound work

@a1batross
Copy link
Member

Huh, then maybe it's EAX had a standalone mixer that supported this kind of setup. Looking at OpenAL API, it actually makes sense.

@Choum28
Copy link
Author

Choum28 commented Mar 7, 2023

I just reinstall the won version on my windows 11 system (with a DS3D and EAX wrapper) to do some test.
And you're right the surround sound is only active with EAX on.
Without it the sound is stereo only.

Too bad, having gunfire/voice precise location around you will be missed.

@a1batross
Copy link
Member

@Choum28 can you recommend a headphones with 5.1 surround audio?

If so, I would like to add it just for the fun of it.

@Choum28
Copy link
Author

Choum28 commented Mar 7, 2023

@a1batross Sadly not, I personnaly use a Logitech Z906 discret speakers system.
There's also a Z507 kit or High end stuff like Teufel for pc speakers system, behind that you will have to use home cinema stuff (like console gaming), but that will required to send 5.1 DD live or 5.1 DTS connect signal to receiver.

I know a long time ago some 5.1 headphone were avalaible (with 3 mini jack input), but I don't think that exist anymore.

There's also some sound card or software that can use a 5.1 sound input and sent it stereo heaphone and will give you impression that rear sound are really coming behind you like Creative SBX, this do the kjob but this is not as good as real speakers.

@ThreeDeeJay
Copy link

By the way, EAX is just the reverb part of DirectSound3D which is what handles 3D positioning and mixing, alongside the renderer/sound card (like CMSS-3D)

@Choum28 can you recommend a headphones with 5.1 surround audio?
If so, I would like to add it just for the fun of it.

@a1batross Beware of headphone-based virtual surround. The vast majority is complete garbage at positioning because of how 3D audio works. So to test surround sound, I'd suggest setting up HeSuVi (any stereo headphones work, though preferably good ones).

That said, while I'm aware it can be tedious to implement, proper 3D audio over headphones (with HRTF) like MetaAudio as shown here or OpenAL Soft on its own would be a much better option.
Besides customizable surround sound layouts and even potentially Atmos compatible hardware (7.1.4) and plenty of positional sound enhancements like "Distance attenuation, doppler shift, and directional sound emitters" [...] "air absorption, occlusion, and environmental reverb" Not to mention that it's hardware-agnostic (fully done in software) and multi-platform so it should also work even on Android and is usually the go-to for audio in open-source games/re-implementations

@SNMetamorph
Copy link
Member

There was an attempt at adding Steam Audio, but it's problematic to us, as it's non-free and I don't want to pollute the engine further with non-free code.

Also, Steam Audio is free and open-source now. And even it licensed with Apache-2.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants