[Openal] OpenAL Programmer Needed
William Stewart
bills at apple.com
Mon Oct 5 12:29:41 PDT 2009
I gather from your question below that you want to provide your own
mixes of 5.1 renderings. In the current implementation you can only
provide stereo sounds (that are not localised, but are rendered to the
stereo channels). So, I guess this is the background to your question.
As typical game play uses mono sounds, and then has the engine
localise these, it seems to me that you are wanting to do something
more elaborate, and provide your own mixes that the engine would "just
render" as needed?
Given that we support multiple configurations (Quad up to two versions
of 7.1), this "pass through" notion becomes more complex and would
require the rendering engine to do various mix-downs and
transformations to match multichannel audio files to the output
rendering.
My question is really to understand what you are wanting to use these
multichannel files for? How prevalent is this in your game, what kind
of sounds are you "pre-rendering" in this use case, or are you doing
your own localised rendering, that you want to pass through the OpenAL
mixer?
There's not necessarily a "right answer" here - I want to understand
the use cases better as we haven't really considered this notion of
multichannel OpenAL sound sources in any detail.
Thanks
Bill
ps
(Just as a thought, given some previous discussions on this list, I
think it might be worth reiterating the basic operational mode of
OpenAL on Mac OS X).
On Mac OS X, there is a utility application called "Audio MIDI Setup".
For each audio device that is currently available on the user's system
(built in audio, USB or Firewire, etc), there is a button that allows
the user to "Configure Speakers" - this allows users to tell the OS
two things:
- what kind of speaker set up is being used on a given audio device
(for ex, stereo, 5.1, etc)
- what channel is each speaker on (channel 1 is left, channel 2 is
right, etc)
The app also gives you the ability to test your config by sending out
pink noise on that channel.
The speaker configuration has 2 buttons, one for "default stereo pair"
and one for "multichannel" configuration. Applications that just do
stereo output, will typically look at the default stereo pair setup,
whereas apps that can do surround or multichannel output, will look at
that option. In general the "mutlichannel" configuration is the
primary configuration that a user should use (and so, you can also set
this up to stereo).
Mac OS X also has a notion of a "Default Output Device" - this is the
main audio device that applications that do NOT present UI to the user
will use as their audio output. iTunes, QT Player, DVD Player are
examples of these.
Ok, so that's the background, so, how does this work with OpenAL?
OpenAL uses the default output device as its destination (we did this
so that games would not have to provide UI to select an audio device
and it seemed a reasonable choice given that most people want their
game audio to go to the same place as music or movie audio).
When OpenAL launches, it looks at the speaker configuration for the
multichannel option, and uses that to decide the number of channels it
will render too for that audio device.
If the user has set their "multichannel" configuration to stereo,
OpenAL will render in stereo to those two channels.
If the user has set their "multichannel" configuration to 5.1, then
OpenAL will render 5.1 to those six channels.
With Snow Leopard, we have full support for surround configurations
from Quad to 7.1 output rendering
OpenAL localises 1 channel sounds into the sound field that it is
rendering. It has a 2 channel pass through mode, so that it can take
stereo background music and play these out of the left/right channels
- those sounds are not localised by the rendering engine.
On Oct 3, 2009, at 6:40 AM, Unitonemike at aol.com wrote:
> Hello,
>
> We're a training school doing audio production for an online rpg
> production and and need help to change the coding to play 5.1
> discrete multichannel audio. We are not programmers and have no
> expertise in this area. Ideally we'd like to maintain the 3D
> playback and also do quad files as well if possible.
>
> Our initital need is to modify the existing code for an OSX version
> (we're 10.5.8) that we are using. The game is currently programmed
> to play mono and stereo audio files, and also uses ogg compression,
> which we would need to maintain for any 5.1 and quad files.
>
> The game is PlaneShift and the game engine is CrystalSpace, and I've
> been told we'll probably need changes to both. Later we might want a
> Windows version also.
>
>
>
> Sincerely,
>
> Michael Verdick
> _______________________________________________
> Openal mailing list
> Openal at opensource.creative.com
> http://opensource.creative.com/mailman/listinfo/openal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://opensource.creative.com/pipermail/openal/attachments/20091005/2e5c5247/attachment.html
More information about the Openal
mailing list