[Openal-devel] Doing sound fields

Jason Daly jdaly at ist.ucf.edu
Mon Mar 17 16:38:35 PDT 2008


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.  If a user has a particular audio hardware 
configuration, why should he have to configure every OpenAL application 
he uses to match it?  Doesn't that belong in the implementation settings?

I agree that it would be nice to have a way to query it and make use of 
it, but it shouldn't have to be set each time.


> The problem is.. what's 10 feet in an OpenAL program? OpenAL is designed to be 
> very agnositic with respect to real-world-to-unit sizes (ie. a unit is a 
> unit; there is no correlation to inches or feet, and its up to the app to 
> determine how much space a unit covers). A blanket implementation 
> configuration setting may work for one app, but another app could use a 
> different scale.
>   

Personally, I've never really understood the desire to keep OpenAL 
unit-agnostic.  If you're trying to model a virtual acoustic 
environment, you're going to need to know real distances at some point 
(it pops up time and time again, this is just another time).

The speed of sound parameter points in this direction, but that's only 
used for Doppler so far.

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."

But, I digress...

The implementation would know what units the speaker settings are in 
(Creative's configuration utility happens to use feet).  When the 
application goes to query them, it would have to know what those units 
are as well.  There really isn't a way around that that I can see.


> My idea would be to use the min/reference distance of a source to specify the 
> listener's radius. An app would have a configuration setting for the number 
> of feet in the user's speaker setup, and would translate that to its own unit 
> scale to apply to generated sources (a context attribute wouldn't work since 
> those are only integers). Of course, this means apps would have to be aware 
> of it for it to work correctly.
>   

Yeah, I thought of this too.  It seems a natural way to handle it, but 
it does put an extra burden on the developer.

-- 

--"J"

"I'm a castaway stranded in a desolate land,
 I can see the footprints in the virtual sand."
	--Neil Peart

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://opensource.creative.com/pipermail/openal-devel/attachments/20080317/3a5ad095/attachment-0001.html


More information about the Openal-devel mailing list