Alter how panpot/pair-wise panning works
commit08948079e93cbb7321be5715df36f54c5e6be3b7
authorChris Robinson <chris.kcat@gmail.com>
Thu, 23 Feb 2017 08:23:16 +0000 (23 00:23 -0800)
committerChris Robinson <chris.kcat@gmail.com>
Thu, 23 Feb 2017 09:32:44 +0000 (23 01:32 -0800)
tree5901fce0305094cc843698671c2689208e2f8df5
parent0ce4c9b8fa90df6111fb81debf583b0fc9200063
Alter how panpot/pair-wise panning works

This change allows pair-wise panning to mostly go through the normal ambisonic
panning methods, with one special-case. First, a term is added to the stereo
decoder matrix's X coefficient so that a centered sound is reduced by -3dB on
each output channel. Panning in front creates a similar gain response to the
typical
L = sqrt(1-pan)
R = sqrt(pan)
for pan = [0,1]. Panning behind the listener can reduce (up to) an additional
-10dB, creating a audible difference between front and back sounds as if
simulating head obstruction.

Secondly, as a special-case, the source positions are warped when calculating
the ambisonic coefficients so that full left panning is reached at -30 degrees
and full right at +30 degrees. This is to retain the expected 60-degree stereo
width. This warping does not apply to B-Format buffer input, although it
otherwise has the same gain responses.
Alc/ALu.c
Alc/panning.c
OpenAL32/Include/alu.h