Re: More confusion
Chris Robinson <[email protected]> Mon, 03 Dec 2012 00:47:44 -0800
| Newsgroups | gmane.comp.lib.openal |
|---|---|
| Message-ID | <[email protected]> |
On 12/02/2012 07:21 PM, [email protected] wrote: > Hi, all! > > Progress is moving along nicely on my project, thanks to your help, so... > thank you! You're welcome. :) > I'm confused on something. First, let me make sure I understand a > fundamental the way I think I understand it. > > I have a bunch of Sources located in various places in 3D space (or 2D if > it's easier), and these Sources are all playing Mono buffers... maybe > they're moving, maybe they're not. If I'm playing this through a Device > that supports 5.1 or 7.1 surround sound, will the sounds appear to be > "beside" or "behind" or "in front of" me based on the Location of the > Sources? This basically depends on the implementation. OpenAL Soft will do this if the system specifies a 5.1 or 7.1 sound setup. I believe Apple's will do it as well. I think Creative's Windows drivers should do it if it's either Generic Hardware, or a hardware-specific driver (Generic Software is mono or stereo only). > Assuming I haven't made a colossal error in understanding above... > > I've been looking at the OpenAL Programmer's Gude and I'm totally lost as > to how to configure the Device for which sound mode (2-channel stereo, > quadrophonic, 2.1, 3.1, 5.1, 7.1 surround etc) it should be using. Is > this something that is set up outside of OpenAL (in the system or driver > settings) and then OpenAL just uses what is available? For OpenAL Soft, it depends on what the system tells it. Under OSX, it depends on what the AudioUnitGetProperty(..., kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, ...) call reports back, which is likely what the user has set somewhere in the system configuration. Under Windows, it depends on what the IAudioClient_GetMixFormat or IDirectSound_GetSpeakerConfig calls return (if using MMDevAPI or DSound, respectively), which is based on what the user has set in the control panel for the device. > What if the device > supports multiple modes? How am I supposed to know which mode the user > intends me to use? Or, assuming I can query the device for supported > modes and then give the user a choice, how do I tell OpenAL or the device > which mode the user chose? Currently OpenAL doesn't have a way to query or set specific output modes. IIRC, the idea was that apps shouldn't care, and it would use all configured speakers to output the sounds as best it can. Some systems can have some really weird and non-standard setups, and OpenAL wouldn't be able to cover all possible configurations. And when you have things like HRTF, it can even be a bit misleading (i.e. it's technically only stereo, but it can be better than 7.1 as far as sound positioning goes). Though it may not actually be a bad idea to make an extension for this, as long as the setting is treated as a hint, and there's some kind of non-determinable "ALC_SYSTEM" setting for when a system-imposed mode is used. A companion extension to handle HRTF would be nice to have, too. It's something to think about and discuss, anyway. _______________________________________________ Openal mailing list [email protected] http://opensource.creative.com/mailman/listinfo/openal