Chris Robinson
0e0e85af72
Don't bother with a separate reset method for BFormatDec
2019-03-31 22:27:56 -07:00
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