diff options
author | Chris Robinson <[email protected]> | 2015-09-23 16:02:46 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2015-09-23 16:02:46 -0700 |
commit | 64858e3e94eb98179985f602035b42972752082a (patch) | |
tree | 43ecc6394fe2b3d5fe36e344cd1431d8b229e7cd /Alc/hrtf.c | |
parent | 4bdd58bc83f583136cde917762ead5df90c01485 (diff) |
Fix B-Format HRTF decoding
Diffstat (limited to 'Alc/hrtf.c')
-rw-r--r-- | Alc/hrtf.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -312,7 +312,10 @@ ALuint GetMovingHrtfCoeffs(const struct Hrtf *Hrtf, ALfloat elevation, ALfloat a } -/* Calculates HRTF coefficients for B-Format channels (only up to first-order). */ +/* Calculates HRTF coefficients for B-Format channels (only up to first-order). + * Note that these will decode a B-Format output mix, which uses FuMa ordering + * and scaling, not N3D! + */ void GetBFormatHrtfCoeffs(const struct Hrtf *Hrtf, const ALuint num_chans, ALfloat (**coeffs_list)[2], ALuint **delay_list) { ALuint elev_idx, azi_idx; @@ -366,10 +369,10 @@ void GetBFormatHrtfCoeffs(const struct Hrtf *Hrtf, const ALuint num_chans, ALflo y = sinf(-az) * cosf(elev); z = sinf(elev); - ambi_coeffs[0] = 1.0f; - ambi_coeffs[1] = 0.5774f * y; - ambi_coeffs[2] = 0.5774f * z; - ambi_coeffs[3] = 0.5774f * x; + ambi_coeffs[0] = 1.4142f; + ambi_coeffs[1] = x; + ambi_coeffs[2] = y; + ambi_coeffs[3] = z; for(c = 0;c < num_chans;c++) { |