I’m working in a CAVE system (4 big screens with projectors).
Due to the configuration of the projection system we have I can’t use speakers. So I decided to use headphones. Headphones + head tracking system seems to be a good choice. fmod is fast and so is the tracking system for the orientation of the listener. So realtime orientation and position of the listener is possible.
But the results in sound localization is very bad.
I have a Fatality X-Fi Xtreme Gamer and when using the Hardware mode with CMSS filter ON, the sound is a little better, but only when the sound is going from the back of the haed (the sound is filtered and it seems to be going from behind our head).
But when the sound is supposed to be in front of you, it just seems to be a little above our head, but never in front of us. And actually the sound seems to be IN our head, but at the top of our skull.
So maybe I forgot to initialize something in fmod in order to use headphones ?
Or maybe there is nothing very convincing about sounds and headphones with fmod ?
Of course the perfect thing for me would be to be able to use HRTF, but I understood in some posts that fmod doesn’t provide any good HRTF stuff for now (I tried it, using FMOD_INIT_SOFTWARE_HRTF, but the results are bad too).
So can you tell me if I can do something to hava a pretty good (even average) sound loacalization in a 3D world using fmod ?
Or will I have to give up Fmod and use real hrtf stuff ? (we’re working on our own hrtf system, but it requires a deddicated computer and it is not very fast for now)
Thank you for your time.
- Ceydric asked 9 years ago
I haven’t looked into FMOD’s HRTF stereo output of 3d sounds, but you could also experiment with using FMOD with a multichannel 5.1 output and then running that through a separate HRTF processor, like a Dolby Digital Headphone device.
Try this out: [url=http://av.jvc.com/product.jsp?modelId=MODL027291&pathId=2&page=1:27ey9tok]JVC SU-DH1[/url:27ey9tok]
This forum thread might also be interesting: [url=http://www.head-fi.org/forums/f4/dolby-headphone-processor-headphones-268462/:27ey9tok]Which Dolby Headphone processor? Which headphones?[/url:27ey9tok]
It might seem like I’m a little biased towards Dolby Digital headphone (because I have a colleague who was a part of the development team) but I have heard the results and they are great.
I’ve heard lots of others that aren’t
Studer is the only other company that impressed me with a surround sound headphone processor, but I saw that back in 2000 and I’m not sure if they still make it.
- mattconnolly answered 9 years ago
Are you saying you’re using FMOD_HARDWARE? The 3d spatialization stuff is entirely controlled by the soundcard, not us. You should probably try a different soundcard. Maybe your windows setting hasnt got the quality and performance sliders set to max?
Thank you for your answers.
I will take a look at your links mattconnolly, thank you for that.
Brett, I tried FMOD_HARDWARE and FMOD_SOFTWARE. Both gave different results, but the hardware is better (but still no sound seems to be going in front of me). The windows settings are set to maximum .
When I just listen to the sound, I see that the sound is filtered with different filters according to its position (the sound is "brighter", "cleaner", when it is supposed to be in front of us, but the result is bad, I feel like the sound is in my head, [u:1h1kvggd]not in front of me[/u:1h1kvggd]. On the contrary when the sound is supposed to be behind, the sound is less bright, there is some kind of low-pass filter, which works a little.)
I mean the sound seems clearly to be filtered, according to its position, but I don’t "feel" the sound to be in front or behind me at all. This is only filters.
I changed my sound card (I had an Audigy, and I recently bought an X-Fi).
The 3D positioning computations were bad with my Audigy, and now they seem correct (When I bent my head, the sound volume was increasing with my Audigy, like if I was getting closer to the source of the sound, but now with the X-FI, the volume stays the same).
So OK, maybe I should try another sound card. But what sound card do you advise me ? I though X-FI were good ones …
Anyway, once again, thanks for your posts.
The problem is you’re using a generalized average HRTF based on someone else’s head.
It should be the shape of your head, your ears, or even your haircut that affects how you perceive it. 😀
The only way to get an accurate HRTF is to use a personalized HRTFs. Unfortunately sound card manufacturers dont realize this (its something that could be built into the sound card control panel where you do a bunch of listening tests to get the best experience).
Yes, you’re right about the personalization of the HRTF, Brett (I know quite a lot about how HRTF works because I’ve studied them for a whiile now, but the personalization is so time consuming that it is not possible to do this for every people going into our CAVE system. And I’ve tried general HRTF which are not good).
But in the other hand, I listened to the virtual haircut file (http://www.moillusions.com/2007/04/virt … n-mp3.html). And it works well (but all seems to happen behind you, so I couldn’t listen to sounds coming in from of me to compare).
I’m aware that this file has been created with two microphones put in hears of a fake head (probably), so there is no realtime computation in this, but still, this is not my head which has been used and the result is simply amazing. I can "see" where the people are, just by listening to the sounds they do by walking, talking … with realtime 3d sounds I can’t say really where the sound is coming from.
Mattconnolly, I used the links you gave me. So I went on the Dolby page, in order to learn a little more about Dolby Headphones. There are some sound examples, which I tried with my headphone. And unfortunately there is no sound in front of me (when the man walking says "I’m in front of you", he’s certainly not in front of me … just between my hears …).
I’m using big Senheiser headphones which I believe are pretty good. So I presume their technology isn’t really working (for me and for my boss who tried it too)
Thanks again, I think I’ll try to find another solution … if there is one.
I’m still very surprised that nowadays in games we can’t simulate (even a little) sounds coming in from of you with headphones. I know that vision is very important and so your brain attach the sound to what you see, but if there is no target in front of you you can’t tell where the sound is going from ? Like if an enemy is hidden in front of you ?… I’m very surprised. But probably most of the gamers are playing with 5.1 speakers or are not very demanding about sounds.
The HRTFs that Aureal used in their Vortex sound cards were the only time I had HRTF actually sound right to me, unfortunately that tech got buried when creative bought them (along with realtime reverb calculation based on polygons – the current FMOD geometry API was inspired by A3D)
Not sure if it’s helpful, but what you’re doing reminds me of beyerdynamic’s Headzone. The German c’t tested it in issue 12/2007 and said it is way better than Dolby Headphone, CMSS-3D and AKG’s Hearo 999. It’s very expensive (2000+ €) but maybe it’s what you’re looking for?
- madens answered 9 years ago
Have you tried this :
You should be able to use the XFi’s harware processing for HRTF.
Thanks to OpenAL, the XFi sould be able to understand the location of your sound sources and apply HRTF real time filtering (CMSS3D headphones ON, I guess).
I am not sure yet whether it works or not, but I am going to experiment it in a few days/weeks. I am working in an immersive virtual room too, with head tracker etc… and a SoundBlaster XFi.
Please let me know if you found the answer
- dub6ko answered 8 years ago
A word of warning: I wouldn’t use the code from that link
[code:33d79cj3]result = pFMOD->createDSPByType(FMOD_DSP_TYPE_ECHO, &pDSPEcho);
if (result != FMOD_OK)
Their error case is to print a message say "success" and their error handling is a comment… 😮
it should something like this:
[code:33d79cj3]result = pFMOD->createDSPByType(FMOD_DSP_TYPE_ECHO, &pDSPEcho);
if (result == FMOD_OK)
- Guest answered 8 years ago
Please login first to submit.