[Openal-devel] Doing sound fields

Chris Robinson chris.kcat at gmail.com
Mon Mar 17 18:01:47 PDT 2008


On Monday 17 March 2008 04:38:35 pm Jason Daly wrote:
> Chris Robinson wrote:
> > But it's a very app-specific setting. If you have a circular speaker
> > setup with a radius of 10 feet, for example, and have a source that's 10
> > feet away from the listener, it should only play on the two speakers it
> > would be closest to (and as it moves closer, it would use more speakers
> > to envelop the listener and give the effect that the source is inside the
> > field, as opposed to on the edge of it).
>
> Right.  What is app-specific about that?  To me, it seems more of a
> "site" configuration (handled by implementation-level parameters) than
> an app configuration.

Because there's no way to say how many AL units there are for a foot or 
something. OpenAL is happy as long as all the values work on the same scale. 
If you divided all positions and distances by 10 (or multipled them 
by 'foo'), OpenAL would produce the same exact output. There's no way to know 
how many units an app intends to equal a foot or a meter. One app may use one 
scale, another may use half that, another doubles..

> I know keeping units out is important to some people, so I don't press
> it too much, but to me, it would be a lot simpler to just say "these are
> the units."

Actually I remembered that the EFX extension has a function that specifies the 
meters per unit (the AL_METERS_PER_UNIT listener property), but I'm not sure 
if making apps rely on EFX to specify it is the best idea. I'd imagine an 
extension, or direct-to-core, attribute could be made that explicitly uses 
the same enum value and sets the same thing as the EFX extension property, 
though (OpenGL extensions have done that a couple times).


More information about the Openal-devel mailing list