Re: Muddy 3D mixer
Re: Muddy 3D mixer
- Subject: Re: Muddy 3D mixer
- From: "Timothy J. Wood" <email@hidden>
- Date: Mon, 16 Sep 2002 03:04:08 -0700
The 3D mixer is really killing me...
I think I've managed to counteract the fact that you can't set the
falloff curve in CoreAudio. I can compute the desired linear volume
based on the values the game gives me. In this case it looks like
volume really means 'the number to multiply the sample values by', that
is, a scale factor for the amplitude of the waveform. Looking at a
physic book, the intensity of the sound is related to the square of the
amplitude. Thus, halving the amplitude should quarter the intensity
(-20dB).
Once I've constructed the desired dB, I then look at the distance of
the sound from the listener and compute the gain increment that
CoreAudio will need to preserve the same perceived volume at that
distance (using an approximation of the inverse of the cubic equation I
found empirically). I then add the desired dB and the CoreAudio fudge
dB and pass that value to the 3D mixer unit.
I seem to end up with a sound at at reasonable volume, but it is
TOTALLY muddy/echo-y. I finally figured out that I should turn off the
'internal reverb' on the 3D mixer... that improved the results, but it
still sounds like the high frequencies are getting attenuated with
distance. While this may be physically accurate, it isn't what I want
and it results in sounds that are totally unlike the PC version of the
game.
If I can't solve this problem, I'll have to abandon the 3D mixer for
now and just use the 2D mixer with my own vector based panning (which I
have to write anyway to support 10.1).
(BTW, before I found about the internal reverb setting, I tried
setting the reverb room type of the 3D mixer, but even though the
header says this can be done, it returns a 'invalid property' error)
-tim
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.