Implement NFC filters for Ambisonic rendering
commit583d431947be540a33843d68feb5f1456671c298
authorChris Robinson <chris.kcat@gmail.com>
Fri, 10 Mar 2017 12:35:32 +0000 (10 04:35 -0800)
committerChris Robinson <chris.kcat@gmail.com>
Fri, 10 Mar 2017 12:35:32 +0000 (10 04:35 -0800)
tree0f85220f58dd446d9732cb3a70bf7917585619c8
parentd9b1995e95ac3d838566500f1e5496ae71d832e0
Implement NFC filters for Ambisonic rendering

NFC filters currently only work when rendering to ambisonic buffers, which
includes HQ rendering and ambisonic output. There are two new config options:
'decoder/nfc' (default on) enables or disables use of NFC filters globally, and
'decoder/nfc-ref-delay' (default 0) specifies the reference delay parameter for
NFC-HOA rendering with ambisonic output (a value of 0 disables NFC).

Currently, NFC filters rely on having an appropriate value set for
AL_METERS_PER_UNIT to get the correct scaling. HQ rendering uses the averaged
speaker distances as a control/reference, and currently doesn't correct for
individual speaker distances (if the speakers are all equidistant, this is
fine, otherwise per-speaker correction should be done as well).
Alc/ALc.c
Alc/ALu.c
Alc/mixer.c
Alc/panning.c
OpenAL32/Include/alMain.h
OpenAL32/Include/alu.h
OpenAL32/alSource.c