47 Commits

Author SHA1 Message Date
Chris Robinson
d802a5785e Fix indexing for basic B-Format decoding 2019-03-17 14:03:21 -07:00
Chris Robinson
3683e31662 Constify some parameters and remove an explicit loop 2019-02-23 00:01:38 -08:00
Chris Robinson
317206e8f3 Remove the FOAOut mixing buffer and associated post-processes 2019-02-22 22:35:37 -08:00
Chris Robinson
a964890537 Add helpers to get the channel count from an ambisonic order 2019-02-21 04:05:49 -08:00
Chris Robinson
194fcb6bb7 Rename MAX_AMBI_COEFFS and MAX_AMBI2D_COEFFS 2019-02-19 15:39:33 -08:00
Chris Robinson
2c04095d22 Apply the upsampler's all-pass when mixing the band-split samples 2019-02-19 02:05:35 -08:00
Chris Robinson
0763dfa954 Apply the all-pass separately from the upsampling mix 2019-01-08 18:34:45 -08:00
Chris Robinson
edba7da8ab Avoid macros for indexing HF and LF fequency bands 2019-01-08 17:21:22 -08:00
Filip Gawin
0d3a0635d9 Avoid using old style casts
To think about:
examples/alffplay.cpp:600
OpenAL32/Include/alMain.h:295
2019-01-08 19:42:44 +01:00
Chris Robinson
fababe76c4 Don't use the dual-band upsampler for basic ambisonic decoding 2019-01-06 17:45:44 -08:00
Chris Robinson
f5b6d761ff Apply an all-pass on the existing output when upsampling ambisonics 2019-01-06 06:50:58 -08:00
Chris Robinson
13056b45b0 Revert back to using a band-splitter to increase the HF response
Unfortunately the shelf filter causes issues due to the shelf gain magnitude
creating a varying phase offset. The splitter also creates phase offsets, but
it's consistent regardless of gain.
2019-01-06 05:15:11 -08:00
Chris Robinson
3b91010e21 Pass the normalized crossover frequency to the reset method 2019-01-05 22:31:13 -08:00
Chris Robinson
aa29bf5933 Remove unnecessary structs and buffers 2019-01-05 22:24:38 -08:00
Chris Robinson
3f35fcc4b5 Simplify MixParams and AmbiUpsampler
Since the dry buffer is always an ambisonic target now
2019-01-05 21:59:04 -08:00
Chris Robinson
cff20c2fe8 Use BFormatDec for custom and built-in ambisonic decoding 2019-01-05 19:21:25 -08:00
Chris Robinson
641bbf075d Enable simplified upsampling for AmbiUpsampler 2019-01-05 00:23:06 -08:00
Chris Robinson
6d7e8cf8b0 Simplify the BFormatDec upsampler
Since the only difference applied is a scalar on the high-frequency response, a
B-Format-to-B-Format transcode can be accomplished with a high-shelf filter. A
similar thing can be done with AmbiUpsampler, but only when outputing to
periphonic B-Format.
2019-01-04 22:17:30 -08:00
Chris Robinson
3b7f668b28 Avoid an intermediate mixing buffer 2018-12-24 20:44:55 -08:00
Chris Robinson
11d815cfd3 Repack some AmbiUpsampler fields for better access patterns 2018-12-23 15:55:12 -08:00
Chris Robinson
ba9aba699d Properly rebalance the HF scale with ambisonic upsampling 2018-12-23 10:37:07 -08:00
Chris Robinson
49ac268334 Add index maps from 2D and 3D 2018-12-20 04:19:35 -08:00
Chris Robinson
8d3f7651c9 Use std::array in place of some C-style arrays 2018-12-20 03:26:46 -08:00
Chris Robinson
d18140391a Rename some conversion arrays 2018-12-20 02:46:59 -08:00
Chris Robinson
59013b5cb5 Avoid hard-coded scale factors in BFormatDec's upsampler 2018-12-17 07:12:37 -08:00
Chris Robinson
a359cb85e6 Mix each frequency band individually for ambisonic upsampling 2018-12-16 22:37:29 -08:00
Chris Robinson
3b0fd20bee Always use the transcode method with the AmbiUpsampler 2018-12-16 21:03:24 -08:00
Chris Robinson
741861eaa6 Put the ACN index map in a header
Also put it and the Ambisonic scales in a more appropriate header.
2018-12-15 23:28:49 -08:00
Chris Robinson
0dd13a9dfe Make the AmbDec speaker and matrix arrays dynamic 2018-12-15 02:56:19 -08:00
Chris Robinson
2d13e0af29 Add macros for the ambisonic order masks 2018-12-14 23:26:44 -08:00
Chris Robinson
0882728dec Cleanup bformatdec.cpp a bit 2018-12-13 22:48:02 -08:00
Chris Robinson
0d36ba0fbb Use helpers to get the Ambisonic scales and layout maps 2018-12-10 22:35:32 -08:00
Chris Robinson
e87eb07db4 A bit more cleanup 2018-12-10 21:30:22 -08:00
Chris Robinson
c9f5617f06 Avoid several uses of memset 2018-12-08 14:22:20 -08:00
Chris Robinson
9e9b771e8a A bit more cleanup 2018-12-08 04:10:45 -08:00
Chris Robinson
5ea3c8fb60 Use member functions for BFormatDec and AmbiUpsampler 2018-12-08 02:50:34 -08:00
Chris Robinson
7695afe0cb Clean up some more loops 2018-12-08 02:15:00 -08:00
Chris Robinson
e60d0886d0 Use class methods for BandSplitter and SplitterAllpass filters 2018-12-05 15:38:05 -08:00
Chris Robinson
b3b4220182 Use unique_ptr for BFormatDec and AmbiUpsampler 2018-11-22 05:37:35 -08:00
Chris Robinson
4dc8f44d00 Move the alignment-aware allocator and vector to headers 2018-11-18 01:33:26 -08:00
Chris Robinson
d7cc9b912b Use new/delete for ALCcontext objects 2018-11-18 00:38:31 -08:00
Chris Robinson
d10301c209 Remove unused headers and checks 2018-11-17 19:52:54 -08:00
Chris Robinson
26f7007507 Allocate the appropriate amount in the aligned allocator 2018-11-04 15:21:03 -08:00
Chris Robinson
087fdd3ca9 Properly mark arrays constexpr and/or static 2018-11-04 15:19:48 -08:00
Chris Robinson
96819237d6 Convert ambdec.c to C++ 2018-11-03 19:51:23 -07:00
Chris Robinson
ba5ec8b074 Be more C++-friendly with the B-Format decoder 2018-11-03 18:00:05 -07:00
Chris Robinson
67f9efdad4 Convert the BFormat decoder to C++ 2018-11-03 15:32:09 -07:00