We ran into a bug with hardware accelerated sound (DirectSound) using fmod. Our audio director found it (amazingly good ear I didn’t notice till he brought it to my attention) while testing out some of the EAX ambience effects. So at first we though it was EAX, then fmod settings, now it seems like it’s just the hardware acceleration.
To the best of my knowledge: The illusion of a 3D sound is created by panning sounds left and right based on the listener’s 3D position and the sound’s 3D position. Hardware sound accelerators do a couple extra things (like muffling sounds which come from behind you) and are now capable of doing effects. The effects work fine, the panning however does not. In software mode, everything is fine (minus EAX and other 3D effects of course). In hardware mode, the sounds seems to disappear from one channel at certain angles. I’ll explain it with an example.
If you stare straight ahead, and an explosion goes off at 40 degrees off center to your right (lets say still in your field of view), you should hear the sound predominantly on your right speaker/headphone and a little softer on your left one. This works just right in software. In hardware, you hear it only on your right ear. There seems to be an angle (on both sides of the direction vector) where the sound totally disappears on the opposite speaker/headphone. It then reappears a few more degrees off, as if there were a tiny dead zone.
The problem manifests itself only with hardware (specifying FSOUND_HW3D on a sample/stream when loading) and is not affected by speaker configurations (we’re using the headphones one right now). We’re using the Torque engine which comes with OpenAL. The problem doesn’t exist in OpenAL (which is also using DirectSound) where the sound is always at least a bit audible in the opposite headphone/speaker.
What we think it may be is the cone settings. FMOD doesn’t expose setting/getting functions for these. Would it be possible to know what the default cone settings FMOD internally specifies are? Could the problem not be related to the source cone at all?
We’re all a little stumped on this, while it’s not a critical issue it does sound odd and we’d like to find a solution.
If one of the fmod developers would like to test a demo with the problem, I’d be glad to email them a link.
Thanks for your time.
- Cirrus asked 15 years ago
Wow, thank you for the analysis.
We’ll try to find some way to smooth it out, we’ll live with it for now. Do you have any idea why DX would do this? Maybe I should point this thread out to someone of theirs who can hopefully shed some light.
Again, thank you for your time and support. It is most valuable and appreciated.
You’re absolutely correct, that works correctly when emulated.
It also seems like the problem is less prominent when an EAX environment is enabled. This may just be an illusion due to the reverberation however.
I’ve also been testing this on a Creative card, an Audigy, and the rest of the team uses Creative cards too. I should also have an Audigy 2 ZS to test on later today. I have an old beta Diamond MX 400 which supports DSOUND. I’ll give it a go later on too.
Excellent detective work!
Unfortunately the best reply I can give regarding a release date is ASAP!
I tried setting all cone values to 0 in OpenAL to check if it produced the “bug” too but now I simply hear nothing. I tried tweaking those values to very small ones to see if perhaps a small cone could cause this issue but it didn’t.
I’ve emailed you the link for the download. Thanks for your support!
Please login first to submit.