Go Back   Steam Users' Forums > Steam Discussions > Suggestions / Ideas

Reply
 
Thread Tools Display Modes
Old 04-04-2010, 06:56 AM   #1
WildCat_ZA
 
 
 
Join Date: Jan 2006
Reputation: 194
Posts: 770
Arrow OpenAL Audio for Source Engine

Update history:

04 Apr 2010:
- Original post.
08 Mar 2011:
- Added section with links to related threads.
13 Feb 2012:
- Added link to new video (Rapture3D Demo in S.T.A.L.K.E.R.).
- Replaced outdated introduction with quick TL;DR summary.
- Updated various links and terminology.
04 Oct 2013:
- Added link to new video (Rapture3D Demo in Minecraft).
- Added link to my recent blog post about HRTFs in games.
- Added link to my new thread on Steam Community Discussions.
- Updated some links.



Quick TL;DR summary

I would love to enjoy my favourite Source Engine games with HRTF-based 3D headphone surround sound but the technology only works with OpenAL games. Please continue reading for the delicious details and links to videos and cool stuff...


My dilemma as an audio enthusiast

I use Sennheiser HD 280 Pro Sennheiser HD 800 headphones for playing games and listening to music at my PC. It's a practical solution and I prefer them to 5.1 speakers because they provide clearer sound, they don't annoy my family members, and they don't cause clutter in my relatively small room. These days, however, I am frequently disappointed with the audio in PC games. The stereo output that they produce is boring. Simple left-to-right panning is hardly a realistic simulation of how sound waves actually interact with the human head.

I have no intention of buying a 5.1 speaker system but I really want a surround sound gaming experience.


Why OpenAL?

The audio APIs that many games use these days don't provide any way for audio enthusiasts to make use of their third-party audio drivers or their audio hardware's advanced features. On the other hand, OpenAL does. OpenAL is designed so that you can have multiple OpenAL drivers installed on your system and select the appropriate driver from the "sound options menu" of any game that implements OpenAL properly.

Of particular interest to me is '3D headphone surround sound'. There are a variety of different technologies that can render audio in this manner but all the ones I've tested are implemented via the use of an OpenAL driver.

Before I continue, I must stress that 'hardware acceleration' and EAX are of no interest to me. My desire for an OpenAL implementation is specifically so that I can get access to '3D headphone surround sound' in my favourite Source Engine games.


What is '3D headphone surround sound'?

The technologies that I've tested extensively are "CMSS-3D Headphone" (by Creative Labs) and "Rapture3D" (by Blue Ripple Sound). These technologies use Head Related Transfer Functions (HRTF) to produce a stereo feed for headphones that uses psychoacoustic cues to produce clearly spatialised sounds.

This is not to be confused with 'surround sound headphones', which contain multiple speakers in each side of the headphones. I'm talking about virtualised headphone surround sound for use with any stereo headset.
Rapture3D:
Rapture3D is an OpenAL driver that can render sound to a wide variety of different speaker layouts including headphones. When rendering to headphones, it produces an astonishingly good 3D headphone surround sound experience through the use of HRTFs.
CMSS-3D Headphone:
Whilst CMSS-3D is not reliant on OpenAL, it sounds infinity better when coupled with an OpenAL-supported game. The Wikipedia article explains. In Windows Vista and Windows 7, OpenAL is the only way for CMSS-3D to get access to precise audio positioning data. The situation with the Source Engine at present is that CMSS-3D has to a use pre-processed multi-channel audio stream consisting of only 5 discrete directions.

Demonstrations

Hearing is believing, and I have created some Youtube videos to demonstrate '3D headphone surround sound'. So put on your headphones (any stereo headphones will be fine), turn up the volume and check out these videos.
Youtube: Rapture3D Audio Demonstration in UT3
Unreal Tournament 3 uses OpenAL for sound rendering. This video compares the Generic Software driver that comes with a default OpenAL installation to the Rapture3D driver. The last scene in this video (featuring trickling water) is the best.
Youtube: Rapture3D Audio Demonstration
Using some software from the OpenAL SDK, I was able to move a variety of sounds (from trickling water to metalcore music) around the listener. Not only does this demo feature sounds going behind the listener but also above and below.
Youtube: Rapture3D Audio Demo in S.T.A.L.K.E.R.
Gun fights! Bloodsuckers! This demonstration shows off Rapture3D in some more practical situations.
Youtube: Rapture3D Audio Demo in Minecraft [NEW!]
HRTFs help a lot when trying to locate dungeons because you can perceive whether the source of sounds is coming from above or below you.

Implementation

In my opinion, a proper OpenAL implementation allows the user to easily select which OpenAL driver to use. Here's a mock-up of how the Source Engine's sound options menu might look with an OpenAL implementation:
Team Fortress 2 Audio Options Mock-up for OpenAL
You'll see that the "Speaker Configuration" drop-down list has been replaced with an "Audio Device" drop-down list. The list contains all the OpenAL drivers installed on the system. The actual speaker configuration that gets used will depend on the Windows speaker configuration (or, in some cases, the speaker configuration selected in the driver software).

For me, the ideal implementation would be if Valve implemented Rapture3D as the default audio renderer for Source. That way, all users would have access to this technology; not just enthusiasts. DiRT 2, DiRT 3, DiRT Showdown, F1 2010, F1 2011, and F1 RACE STARS are all examples of existing games that ship with Rapture3D and use it as their default sound renderer.
Blue Ripple Sound
Technology
Developers
If shipping Rapture3D with Source is asking too much, I'd still be exceedingly happy with just a regular OpenAL implementation.


Related threads and articles

This is now not the only thread about this topic. Here are some other related threads:

- 3D Sound for Headphones on Source Engine:
The author of this thread gets straight to the point of what the Source engine lacks: HRTF for headphones.
- Bring Back DirectSound3D:
Although this thread actually relates to petitioning Microsoft to implement DirectSound3D in operating systems after Windows XP, it shares a similar sentiment to my thread: We need better 3D audio in games.
- I Want HRTFs In My Games!: [NEW!]
An article on my personal website about this subject. It's much more recently written than this forum post.
- SOURCE ENGINE AUDIO :: Head-Related Transfer Functions: [NEW!]
My new thread on Steam Community Discussions about this topic. It takes a slightly different approach to the suggestion by highlighting the primary goal of getting HRTFs in Source and suggests OpenAL as a possible solution.

Last edited by WildCat_ZA: 10-03-2013 at 05:00 PM. Reason: Updates
WildCat_ZA is offline  
Reply With Quote
Old 04-04-2010, 07:04 AM   #2
the unloved
 
Banned
Join Date: Mar 2010
Reputation: 84
Posts: 389
i think source should become the uber engine that ANYONE can play. so if it makes games better then yeah, as long as it lets my little bro play with his dx8


( i know he wont be able to play source games starting from l4d onwards, but progress is progress )
the unloved is offline   Reply With Quote
Old 04-05-2010, 06:50 AM   #3
MF_Kitten
 
Join Date: Mar 2010
Reputation: 42
Posts: 117
i agree on this. i'm an audio enthusiast as well, and i think valve is going the right way when it comes to audio design and stuff, but they really should do the spatial imaging like this. i would go as far as to say that they should make impulse responses/convolution reverbs of all their maps, and have it very carefully in the background. having a realistic reverb in a room makes the space seem more real. you really get a sense of the room, ya know? the audio engine could then fade the "feed" volume between the different impulses in the map (one for each room/area), and it would transition really well etc.

but that might be complicated :P
MF_Kitten is offline   Reply With Quote
Old 04-08-2010, 10:29 AM   #4
WildCat_ZA
 
 
 
Join Date: Jan 2006
Reputation: 194
Posts: 770
Quote:
Originally Posted by the unloved View Post
...as long as it lets my little bro play with his dx8
There's no need to worry about that. The changes I'm suggesting wouldn't increase the Source engine's system requirements.

Quote:
Originally Posted by MF_Kitten View Post
i would go as far as to say that they should make impulse responses/convolution reverbs of all their maps, and have it very carefully in the background. having a realistic reverb in a room makes the space seem more real. you really get a sense of the room, ya know? the audio engine could then fade the "feed" volume between the different impulses in the map (one for each room/area), and it would transition really well etc.
The Source engine already does this (or at least an approximation of it). If I remember correctly, Source Engine maps are divided into lots of smaller volumes and each one will have its own reverb and echo properties based on the surrounding surface materials and the size and shape of the area.

In my opinion, this area of the sound simulation is already being handled adequately in the Source Engine. It's the complete lack of HRTF that saddens me and motivates me to suggest the use of OpenAL.
WildCat_ZA is offline   Reply With Quote
Old 05-15-2010, 06:39 AM   #5
WildCat_ZA
 
 
 
Join Date: Jan 2006
Reputation: 194
Posts: 770
I was pretty excited to see the following change listed in a recent update to Portal:

Quote:
Added optional -snd_openal command line parameter to force the engine to use the OpenAL api, can be used if Portal is playing no audio when launched normally
Unfortunately, I was unable to get Rapture3D working. I made sure that Rapture3D was the only OpenAL driver in my SysWOW64 directory and I tried adding "-snd_openal" and even "-snd_openal 1" to Portal's launch options, but to no avail.

It seems like this parameter doesn't do anything. I can always hear immediately when Rapture3D is working and it certainly wasn't working when I tested it, which leads me to believe that the engine wasn't using OpenAL, despite the command line switch.

This is pretty disappointing. Does this change only apply to Mac users? Please Valve - if you've got the Source engine working with OpenAL on Mac, please release it for PC as well. I really want to be able to use Rapture3D in my Source Engine games.
WildCat_ZA is offline   Reply With Quote
Old 05-15-2010, 05:32 PM   #6
tschumann
 
Join Date: Mar 2009
Reputation: 148
Posts: 2,634
It probably is Mac only. One of the developers said that the OpenGL renderer is Mac only, so it's probably the same for OpenAL.
tschumann is offline   Reply With Quote
Old 05-15-2010, 10:58 PM   #7
AngelGraves13
 
 
 
Join Date: Jan 2007
Reputation: 170
Posts: 1,848
No, OpenAL and OpenGL are available on PC.

OpenAL has been used in PC games for over 3 years now. BioShock used OpenAL through FMOD.
AngelGraves13 is offline   Reply With Quote
Old 05-22-2010, 02:49 AM   #8
pmc64
 
 
 
Join Date: Mar 2010
Reputation: 374
Posts: 1,559
He's talking about the commands to enable it not OpenAL itself. You can enable OpenAL on Portal for Mac but you can't on Windows, same with OpenGL.
pmc64 is offline   Reply With Quote
Old 05-30-2010, 07:59 AM   #9
yonyz
 
 
 
Join Date: Mar 2009
Reputation: 0
Posts: 107
+1 for OpenAL support in the Source Engine.
yonyz is offline   Reply With Quote
Old 05-30-2010, 11:31 AM   #10
leveller
 
 
 
Join Date: Dec 2009
Reputation: 429
Posts: 1,828
Thumbs up to this. I do wonder if Valve will go the Open route regardless due to the ease of building for PC and Mac using Open resources.

The PC should never have been controlled by Microsoft.
leveller is offline   Reply With Quote
Old 05-30-2010, 09:55 PM   #11
Madd the Sane
 
Join Date: Apr 2010
Reputation: 12
Posts: 502
I was under the impression that OpenAL was available in the engine, at least the Mac port.
Madd the Sane is offline   Reply With Quote
Old 06-23-2010, 06:50 AM   #12
Ultra9k
 
Join Date: Jun 2010
Reputation: 32
Posts: 97
I think shipping Rapture3D with Source is indeed asking too much. But despite that, everyone would like Valve to implement openAL support in the Source engine. The audio is the thing I and most people like the less on Source games (at least the people that actually care about the audio). With openAL support it'd be an absolutely perfect engine!

Btw, I don't know about you but after trying both options on Dirt2 demo I found cmss3d (at least on a proper card with an actual x-fi chip and x-ram), to be infinitely better than Rapture 3D, even with everything on Ultra. Rapture3D sounded like crap compared with the hardware cmss3d.
Ultra9k is offline   Reply With Quote
Old 06-23-2010, 04:49 PM   #13
Flamaros
 
Join Date: Nov 2009
Reputation: 0
Posts: 107
Quote:
Originally Posted by AngelGraves13 View Post
No, OpenAL and OpenGL are available on PC.

OpenAL has been used in PC games for over 3 years now. BioShock used OpenAL through FMOD.
Bioshock use the Unreal Engine made by EPIC. It may use OpenAL and FMOD, but not at the same time. OpenAL and FMOD are already sound engine, source engine and other may have to add a layer on it to provide an easier/different way to teak sound in games. Developers can also use those libs only to get an easy way to control inputs/outputs and re-implement 3D effects their self in software.

OpenAL is the only way to provide a full hardware support on Windows vista and seven. But don't forget that your CPU can do the same job too, and certainly better. A lot of computes are already made to render the 3D scene and some of them can be shared for the sound part.
Flamaros is offline   Reply With Quote
Old 07-10-2010, 12:05 PM   #14
flibitijibibo
 
Join Date: Nov 2009
Reputation: 592
Posts: 1,234
+1 for OpenAL support. I can understand not having OpenGL support for Source on the PC, but OpenAL support would be much appreciated on all platforms. DirectSound became garbage as soon as DS3D was lost in Vista, and XAudio 2 is a joke. To be fair, Miles does very well, but it's simply holding Source back by forcing software audio.

Shouldn't hardware acceleration for audio should be normal at this point? If someone released a game that only used software rendering graphics, people would be jarateed. GPUs are cool (2 or 3 of them, even), but not APUs? Even NPUs are starting to show up.

It might seem like a painful transition at first, but the changes will be noticeable, and I'd bet anything that it'd catch on if people saw what was possible (other than increased FPS, of course).

Last edited by flibitijibibo: 07-10-2010 at 12:13 PM.
flibitijibibo is offline   Reply With Quote
Old 07-12-2010, 03:55 AM   #15
WildCat_ZA
 
 
 
Join Date: Jan 2006
Reputation: 194
Posts: 770
Quote:
Originally Posted by flibitijibibo View Post
Shouldn't hardware acceleration for audio should be normal at this point? If someone released a game that only used software rendering graphics, people would be jarateed. GPUs are cool (2 or 3 of them, even), but not APUs? Even NPUs are starting to show up.

It might seem like a painful transition at first, but the changes will be noticeable, and I'd bet anything that it'd catch on if people saw what was possible (other than increased FPS, of course).
I'm not particularly interested in hardware acceleration for audio. The amount of processing that get's done on game audio these days seems to be easily handled by the CPU.

What I'm interested in is Head Related Transfer Functions (HRTFs), which provide virtualised surround sound for gamers who prefer to use a quality pair of stereo headphones rather than a huge surround sound speaker system.

As far as I can tell, HRTFs are a fairly complicated science and are probably beyond the scope of what Valve's sound programmers should be spending their time on (or any game developer for that matter). Instead, they should be implementing third-party solutions like Rapture3D to get HRTF functionality in their games.

Alternatively, they could simply add OpenAL support and let enthusiasts buy Rapture3D seperately. Rapture3D only works with OpenAL games, which is why I'd love to see OpenAL in Source. Enthusiasts with X-Fi soundcards would also benefit because CMSS-3D sounds vastly better and is much more reliable on OpenAL games.
WildCat_ZA is offline   Reply With Quote
Reply

Go Back   Steam Users' Forums > Steam Discussions > Suggestions / Ideas


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -7. The time now is 06:13 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Site Content Copyright Valve Corporation 1998-2014, All Rights Reserved.