Re: Muddy 3D mixer
Re: Muddy 3D mixer
- Subject: Re: Muddy 3D mixer
- From: Kurt Bigler <email@hidden>
- Date: Sun, 15 Sep 2002 23:02:11 -0700
on 9/15/02 9:46 PM, Timothy J. Wood <email@hidden> wrote:
>
So, I'm trying to empirically measure the falloff curve in the 3D
>
mixer and I have an app where I have two sets of mixer parameters
>
(azimuth, elevation, distance and gain) and a looping sound and a
>
button to switch between the two sets of parameters.
>
Now, if I put one set at zero distance and zero gain (i.e., play the
>
sound unaltered), it sounds like it should. But, if I play a sound way
>
out in the distance and then up the gain to try to get the same
>
perceived volume, the sound is really muddy. I'm not putting any sort
>
of effects processor in the audio unit chain and I get the same effect
>
whether I use HRTF, SoundField or VectorBasedPanning as the
>
spatialization algorithm.
>
>
In all cases, the sound is positioned directly along the ray pointing
>
directly in front of the listener.
>
>
What gives?
This is not a direct answer to your question, a response that I hope might
be relevant and also a point of input for Apple.
I am just guessing that the entire 3D mixer scenario is actually trying to
emulate real physics. So the falloff should be as it actually is in the
real world. If you forget these details I think you can figure this out in
the following kind of way. If in a 3D world you had a planar (2D) source,
there is no falloff, because the planar waves radiate without spreading.
Reduce that to a linear (1D) source and you have a cylindrical wave front,
so 1 dimension of spreading, so the amplitude would be proportional to 1/r.
Going to a point (0D) source you have a spherical wave front, so 2
dimensions of spreading, so amplitude proportional to 1/r-squared.
If you are talking about power then you have to square everything, but you
are probably not in this case.
If the physical model were more sophisticated, then other kinds of losses
would enter into the equation, and things are much more complex, possibly
complex enough that empirical determination without knowing about the
underlying model would be almost impossible. I am _guessing_ that the 3D
mixer is not that sophisticated and you would find a 1/r-squared falloff.
This is a poor substitute for actual documentation, I know, but I figured I
would say what seems apparent to me lacking any other forthcoming
information. The empirical approach may just not be fruitful without some
knowledge of the model.
The other things I would have trouble guessing at without actual
documentation is how the 3D model is calibrated in terms of units. I find
it hard to imagine how it could be a unitless situation. There must be some
reference distance at which the falloff gain would be 1 in a unitless model,
so you would probably have an implicit unit anyway, whatever the distance
1.0 would represent, perhaps. Resulting amplitudes would seem to me to
depend on the size if not the efficiency of the virtual transducer (or ear)
that is picking up the sound at a given location.
It would be not only convenient for developers, but possibly important for
stability that this gets clearly documented so that you (Apple) don't have
an OOPS when you go to document it and find that you have to change the
interface, such as to account for physical units (for example dynes per
square centimeter, or whatever) in some clearer way, because otherwise you
end up with something bogus.
What I am really saying is that if I am not mistaken, input and output
amplitudes and distances must have some units involved, otherwise there is
no sensible meaning for a falloff "gain" of 1 occurring at a certain
distance. Or in other words, the concept of gain as a unitless quantity is
contrived without a lot of units being involved in the underlying
calculation. This just comes from a physics perspective. I know nothing
about what implicit standards may exist for 3D mixers that might make this
irrelevant.
-Kurt Bigler
_______________________________________________
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.