[Openal-devel] Doing sound fields

Jason Daly jdaly at ist.ucf.edu
Mon Mar 17 14:41:30 PDT 2008


Scott Mayo wrote:
> This question came up in a discussion with Chris Robinson, and he suggested
> it might be worth bringing up here. To set the background, Chris sent me a
> .dll for openAl Soft, which allows me to specify my speaker setup with an
> environment variable, which gets around the Vista brain-dead problem of
> forced stereo. (Thanks, Chris!) I've got this working, and can specify a
> position x,y,z position for sound, and can hear the sound off in the right
> direction. Yay openAL.
>
> Now the problem. I have what amounts to a theater, rigged for 7.1 sound,
> with seating for several people. In some situations, I want to produce a
> sound that's "out there", in "that direction". This works fine. But in many
> cases I'd want to create a sound that appears to originate from just a few
> feet away from the listener - well inside the area bounded by the speakers.
> The only way to do this is to fire multiple speakers at different volumes,
> so the vectors add up to a point inside the room.
>
> I don't see a way to explain to openAl that my speakers positioned X feet
> apart, (X typically about 15), and laid out in a given configuration, and
> that a sound 3' from the center needs to be handled by using all the
> speakers (or most) at different volumes. 
>
> I could probably write my own mixing and do it myself. I'd rather not. IS
> there an openAL solution, now or planned?
>   

I don't know if it's planned, but I agree that we need a way to do 
this.  My question is whether this is an API thing or an implementation 
thing.

For example, Creative's X-Fi drivers have a way to configure speakers in 
the manner that you suggested.  There's no reason why this information 
couldn't be used to drive their native OpenAL implementation and get the 
results you mentioned.  In the same way, OpenAL-Soft could allow this 
kind of information to be specified in the configuration file.

The other option is to create an extension that would allow this data to 
be specified at run time.  Then, it would be up to the application to 
configure the speaker array settings.

To me, the more sensible solution is to put this at the implementation 
level.  To me, it's not likely that these settings would need to change 
between applications.

-- 

--"J"

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



More information about the Openal-devel mailing list