View Single Post
Old 14-01-2010, 09:50 AM   #155 (permalink)
katamakel
DICE
 
katamakel's Avatar
 
Join Date: Jan 2010
Posts: 2
Default

Alright people, you asked more questions about the audio engine and I have more answers! I should start by saying I'm not one of the crazy guys in that video. That's our head of audio David and the lead sound designer for BC1/BC2, Stefan.

Answers time.

1. I talked about having a "faster CPU", which might be a bit vague, so let's elaborate a little on that. The way the revision of the audio engine that's in BC1/BC2 works is that it'll use a single HW thread to do all audio logic and mixing, ie. it'll help more with a CPU with a higher frequency. This actually also goes for the consoles as well, so on PS3 all the mixing will be done on a single SPU whereas the audio logic still runs on the PPUs. So this touches on the "future revisions" bit as well. As a game becomes "feature complete", any major changes will be done on some other branch of the engine so as to not endanger the game's stability etc. So I can't say much about it, but the current revision of the audio engine will utilize multiple HW threads in parallel for both audio logic and mixing. This obviously goes for consoles as well, since we basically don't have any platform-specific code (in the audio engine, apart from the lowest level).

2. Let's tackle some quality settings! It's fairly simple really, we do all audio processing in 32-bit floating point at 48kHz which is then always quantized down to 16-bit (due to issues with certain sound cards in 32-bit) on PC. On consoles it's always 48kHz/32-bit floating point. We do not support sample rates above 48kHz due to similar issues with the aforementioned sound cards. Also, the revision of the audio engine that BC1/BC2 uses does not fully utilize 7.1 surround sound, but we'll get to that in the future. So, short answer: 5.1/48kHz/16-bit will get you the best experience.

3. Alright, so the 3.7% thing. I'll be honest and say I didn't research this enough and only counted Creative's cards. After looking into it a little more, there are indeed more cards that have some degree of HW acceleration support. At least on paper. That Realtek card for example only supports EAX 1-2 and if memory serves that's what was around when BF2 came out, and it's roughly equivalent to the HW reverb solution that was in the first Xbox (I3DL2 reverb). While I wouldn't put it as harshly as "Hardware accelerated sound is a dead and dying path to invest into", I won't argue the point. With Windows Vista Microsoft ditched the HAL path for DirectSound, which means anyone wanting to use HW accelerated sound card features in Vista or after will have to use OpenAL (Creative's "DirectSound"). As I mentioned previously, the structure of DirectSound is mostly legacy due to how old HW worked, and as such is very limiting. This is why Microsoft chose to adopt their XAudio engine (originally created for Xbox360) for Windows as well, and also to remedy a ton of other fidelity issues. If locking a buffer of audio samples and play it back using some volume and panning settings is all you need (I include 3D positioning in panning), then these "old skool" APIs are probably sufficient. Hell, you even get some free reverberation! But once you want to do a bit more with your audio you'll just end up using your own mixing engine and stream the result of that into a dynamic buffer for output to the sound card. So while I understand that it might feel disheartening to have bought a sound card that touts all these nifty features and not have us use them, they're simply not in line with what we want/need to be able to do. It's not all in vain though, most of those cards have pretty good DACs and nice (high) Signal-Noise ratios. The way forward right now seems to be Larrabee and other GPGPUs. Wow, that's a wall-o-text right there..

4. Let's end on a lighter note and talk about the "impaired hearing" state in BC2. For this effect we're using a IIR2 low-pass filter at 400Hz with an unfiltered sound playing on top of it.


Cheers guys!
katamakel is offline   Reply With Quote