I thought I would be doing fine using FMOD over the last 3-4 month. Now I try to code a new application and I get this effect:
Within FMOD I set and get positions of sound in a correct way. Lets say a Sound is at (2,2,2). I can retrieve this from FMOD again.
Also the listener Position is calculated and set in a correct way.
But when I “listen” to the scene, it seems like the sound is placed in (0,0,0).
I tried to change the Distance and RollOff Factor, but I didnt hear any effect.
I use Quad-Speaker, DDS or A3D on a TerraTec SixPack soundboard and yes, I do a FSOUND_3D_Update() each frame.
Any hint would be more than welcome!
Greetings from Germany
- MVD asked 14 years ago
Hey Brett, thanks for your tips but sadly I still have that problem.
The thing that frustates me most is that I mainly use older code, that worked perfectly, that I just copy/pasted.
I load the sound with
FSOUND_HW3D | FSOUND_LOOP_NORMAL
and check for mono, etc.
Also I calculate the listener position, up and look from the camera which I can freely move within the sene. So I have the scene with 3 sounds placed somewhere. When I start it up, I can move the camera around but the sounds seem to come from the origin. I defintly have a 3D effect though! When I turn around, the sounds move around till they come from behind. Just that they come from the from position.
I thought it could be that graphical and sound length unit dont fit, so I checked with MinMax. and this defintly seemed right, that a unit in GL repressent a unit in fmod.
I will try now to move the sounds to a large scale to see if I have any chance to get them out of the origin. Again, the 3D effects seem to work fine. I dont play them in 2D.
Thanks for any further tip!
OK, looks like after some hours of searching I found what triggers that strange behaviour with the failed positioning of sounds.
I load the sample and start it paused using FSOUND_PlaySoundEx(). Then I change attributes and used that line to actually start the playback:
channel = FSOUND_PlaySoundEx(
FSOUND_FREE, sample, NULL, FALSE);
What I now did was, that I replaced that line with this:
Now the sounds didnt come from the origin anymore.
Obviously I got a new channel for that sample on which the changed attributs had no effect. I dont really understand yet, why it acted that strange, because in the older code I used, I did it the same way and it worked fine.
Anyway, just wanted to let you know.
Please login first to submit.