[Openal-devel] Doing sound fields

Richard Furse rf015d9821 at blueyonder.co.uk
Tue Mar 18 05:23:48 PDT 2008


> -----Original Message-----
> From: openal-devel-bounces at opensource.creative.com 
> [mailto:openal-devel-bounces at opensource.creative.com] On 
> Behalf Of Jean-Michel TRIVI
> Sent: 18 March 2008 01:20
[...]
> 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
[...]

Hi there - I'm actually working on a software OpenAL renderer exactly like
this (watch this space!). If you're interested in the idea of "Sound Field
Synthesis", the main two techniques to look up on Wikipedia are Ambisonics
(has been used in games, e.g. DiRT on the PS3) and Wavefield Synthesis
(needs silly numbers of speakers, but fascinating).

The biggest problem with this project from the OpenAL side is how to make
games use my implementation, which isn't something I'd anticipated with an
open API! I'd expected it to be like OpenGL, where games will talk to
pretty-much any renderer the user chooses to install. I've had to do very
ugly things in game directories to make things work. Clues appreciated... 

Best wishes,

--Richard




More information about the Openal-devel mailing list