[Openal-devel] Doing sound fields
Jean-Michel TRIVI
jmt at atc.creative.com
Mon Mar 17 18:19:36 PDT 2008
Hi Scott,
> 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 believe there are two concepts you're dealing with here, let's see how
OpenAL can help you.
The first is being able to specify sound source coordinates in 3D (i.e.
anywhere around the listener), and OpenAL is the right API to do that:
regardless of your output configuration (headphones, 2 speakers, 5.1, 7.1),
your app can send X/Y/Z coordinates to the OpenAL engine.
The second concept is about your output configuration, and what sound
processing algorithms the OpenAL engine you're using implements. OpenAL
doesn't specify or standardize the way a sound source is rendered at a
specific location. It is up to the implementation. To achieve the effect
you're trying to achieve, i.e. perceiving a sound source between the
listener(s) and the speakers, would probably rely on a technique called
Sound Field Synthesis, which relies on a large number of speakers. We're
talking 20, 40 speakers here, not just 7. I'm not aware of OpenAL
implementations that offer SFS rendering. But such a solution could
certainly be driven by OpenAL, just remember that the OpenAL API doesn't
expose anything about the actual 3D audio engine.
Jean-Michel
Notice
The information in this message is confidential and may be legally
privileged. It is intended solely for the addressee. Access to this
message by anyone else is unauthorized. If you are not the intended
recipient, any disclosure, copying or distribution of the message, or
any action taken by you in reliance on it, is prohibited and may be
unlawful. If you have received this message in error, please delete it
and contact the sender immediately. Thank you.
Jason Daly
<jdaly at ist.ucf.ed
u> To
Sent by: Scott Mayo
openal-devel-boun <scottm at obsessionaudio.com>
ces at opensource.cr cc
eative.com openal-devel at opensource.creative.co
m
Subject
03/17/2008 02:41 Re: [Openal-devel] Doing sound
PM fields
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
_______________________________________________
Openal-devel mailing list
Openal-devel at opensource.creative.com
http://opensource.creative.com/mailman/listinfo/openal-devel
ForwardSourceID:NT000292AA
More information about the Openal-devel
mailing list