[openal] 5.1 and 7.1 speaker setups

Chris Robinson chris.kcat at gmail.com
Mon Feb 6 17:46:31 EST 2017

On 02/06/2017 11:04 AM, Ian Reed wrote:
> It sounds like we should just give them an option to enable or disable
> HRTF when using headphones and let OpenAL Soft do its thing otherwise.

Yeah. The general idea is that you can provide an option for "HRTF On", 
"HRTF Off", and "Default" (letting OpenAL Soft decide depending on what 
it detects).

> I have another question.
> I have a 5.1 speaker system connected to my computer.
> My default playback device is called:
> Speakers; Realtek High Definition Audio
> It will play through those speakers, or through my headphones when I
> plug them into a 3.5mm jack.
> Starting OpenALSoft while my headphones are connected does not seem to
> detect that I am using headphones (since it does not enable HRTF due to
> headphones).
> I can still enable HRTF in alsoft.ini or by using the correct parameters
> when creating the AL context or resetting the device.
> Since OpenAL Soft does not detect me using headphones, is it still
> trying to output to a 5.1 speaker system?

Probably. The system likely still reports the device as being 5.1 in 
that case. Depending on where the headphones plug in, the device might 
not even know you're using headphones either and still think it's doing 
5.1 output.

> Do I lose certain sounds or quality because of this?

That depends on the device. I'd imagine it'd fold the surround and 
front-center channels into the front-left and front-right for the 
headphones, in which case you shouldn't lose anything, but quality may 
be a bit wonky (not terrible, but not the greatest).

> When I explicitly tell OpenAL Soft to use HRTF, does it switch to 2
> channel output and ignore that DSound (or whatever API) is reporting a
> 5.1 system is connected?

With DSound it would ignore what the system says and just do stereo/HRTF 
output, yes. Though how that would actually behave and sound I don't 
know; if the system tries to upmix the HRTF/stereo stream to 5.1, and 
then the 5.1 is downmixed back to stereo for your headphones, it 
probably won't sound that great.

Unfortunately, the MMDevAPI backend (which is the default on Windows) 
doesn't allow creating a playback stream with anything but the set 
channel configuration, so OpenAL Soft will be forced to still use 5.1 if 
you don't change the device configuration.

More information about the openal mailing list