Commit Graph

6768 Commits

Author SHA1 Message Date
Chris Robinson cfc8a82951 Load the HRIRs directly into HrirArrays 2019-12-30 20:49:19 -08:00
Chris Robinson d9e3f0edf6 Avoid declaring a variable early 2019-12-30 19:17:33 -08:00
Chris Robinson 28d2294b07 Workaround for MSVC 2015 2019-12-29 21:49:29 -08:00
Chris Robinson 9fc2f8541b Don't hardcode the system paths for searching frameworks 2019-12-29 21:03:28 -08:00
Chris Robinson c1cf10f508 Handle downmixing for mono output 2019-12-29 20:35:47 -08:00
Chris Robinson 9ac8f25a05 Ignore direct channels for mono and B-Format buffers 2019-12-29 19:17:29 -08:00
Chris Robinson 137394c2cf Make the new direct channel remix extension public 2019-12-28 16:40:10 -08:00
Chris Robinson 701d43b41e Start a new extension for a new direct_channels state
So existing behavior remains consistent for anything that needs it, and new
behavior is opt-in.
2019-12-28 11:33:19 -08:00
Chris Robinson 3b3d3d3a03 Use a span for the band-splitter input 2019-12-25 21:48:58 -08:00
Chris Robinson 06b7c63cef Fix reverse iterators for spans 2019-12-25 21:48:40 -08:00
Chris Robinson f153def941 Pass a span for the biquad filter input 2019-12-25 18:39:22 -08:00
Chris Robinson 36c745a514 Fix parameter order 2019-12-25 18:32:53 -08:00
Chris Robinson 0897927419 Make a couple more functions private 2019-12-25 17:09:14 -08:00
Chris Robinson de2c64c06f Pass a span to the NFC filters 2019-12-24 23:41:26 -08:00
Chris Robinson 04b8f2a042 Reorganize some function parameters 2019-12-24 23:36:08 -08:00
Chris Robinson 28e68d03d3 Fix a shadowed parameter warning 2019-12-23 23:13:45 -08:00
Chris Robinson bff6696814 Avoid reading a struct field twice 2019-12-23 23:00:59 -08:00
Chris Robinson 16220be86e Make a duration type to handle WASAPI reference times 2019-12-22 22:05:47 -08:00
Chris Robinson 8807d373b0 Print the unhandled subformat 2019-12-22 16:38:52 -08:00
Chris Robinson a671c02b0b Try harder to find a matching WASAPI configuration
As long as the lowest channel bits match the enabled bits for a given
configuration, higher bits from any extra channels can be ignored since they
can be skipped.
2019-12-22 02:52:50 -08:00
Chris Robinson 2e6a55a87c Handle padding between device sample frames
The padding must be constant and sample type aligned (e.g. some fixed multiple
of two bytes between the start of two consecutive frames for 16-bit output).
The intent is to always have the ability for stereo output with WASAPI even if
the device has some other unsupported configuration, as long as front-left and
front-right exist.
2019-12-21 20:43:46 -08:00
Chris Robinson c2ca617ed6 Use size_t for the compressor channel count
And general cleanup of the compressor
2019-12-21 03:21:13 -08:00
Chris Robinson 54e7f48df9 Use unique setters for biquad filter parameters
One for whether a slope parameter is used, and one for bandwidth.
2019-12-21 02:02:57 -08:00
Chris Robinson 274fd36edd Improve gain/hf/lf packing when processing voice updates 2019-12-21 00:48:58 -08:00
Chris Robinson 22bbb14a65 Use a standard bool type 2019-12-19 05:16:56 -08:00
Chris Robinson 4634002104 Remix missing channels with direct channels enabled
Instead of dropping them.
2019-12-19 04:38:34 -08:00
Chris Robinson 6480c2c854 Don't apply direct channels with mono output 2019-12-18 23:29:52 -08:00
Chris Robinson 5e35f73cad Don't process direct channel sources with attenuation 2019-12-17 22:40:49 -08:00
Chris Robinson a8de1570e9 Update a comment since B-Format input isn't always FuMa 2019-12-17 22:25:00 -08:00
Chris Robinson 466c6faeb5 Correctly scale spatialized B-Format sources 2019-12-17 22:20:38 -08:00
Chris Robinson 0a65ed2190 Use normal panning for B-Format output
It can never work since it only uses auxiliary channel labels.
2019-12-17 22:12:47 -08:00
Chris Robinson 2215a4072c Don't apply stereo panning with direct channels enabled 2019-12-17 21:49:58 -08:00
Chris Robinson ad9584acc3 Avoid sscanf for parsing config lines 2019-12-14 17:26:58 -08:00
Chris Robinson ac7a5dcbfa Use size_t for array indices 2019-12-11 02:44:05 -08:00
Chris Robinson 053de62398 Don't force the HRIR length to a rounded value
The coefficient and accumulation buffers are guaranteed large enough for the
full size, and the SIMD handlers will behave the same either way.
2019-12-11 02:24:44 -08:00
Chris Robinson 7d0c01050a Fix MHR limits 2019-12-11 01:20:00 -08:00
Chris Robinson 4867f93a34 Move duplicate SOFA-related functions to a reusable library 2019-12-11 00:49:57 -08:00
Chris Robinson ae916929c9 Simplify a status-checking loop 2019-12-10 20:11:11 -08:00
Chris Robinson 47f416efaf Simplify a couple assignments 2019-12-09 23:11:16 -08:00
Chris Robinson d6bc56d7c1 Use proper array types instead of C-style arrays 2019-12-09 20:55:54 -08:00
Chris Robinson a1de05fed7 Avoid global macros for format-secific types 2019-12-09 20:45:11 -08:00
Chris Robinson e43c2bba61 Don't re-sort the enumerated HRTF list 2019-12-08 22:09:21 -08:00
Chris Robinson 0afb5a2ab9 Update the default HRTF 2019-12-08 19:29:50 -08:00
Chris Robinson f4b3c3b4da Simplify a check 2019-12-08 19:23:16 -08:00
Chris Robinson 7ded42cb94 Load SOFA HRIRs in a background thread 2019-12-08 19:17:58 -08:00
Chris Robinson 5942974d47 Report the non-uniform elevations in sofa-info 2019-12-08 17:56:56 -08:00
Chris Robinson 8076fd8aa9 Report the number of IRs used from SOFA files 2019-12-08 17:01:34 -08:00
Chris Robinson a280373dc1 Improve blended IR delay precision for the B-Format decoder 2019-12-08 16:46:11 -08:00
Chris Robinson 8cb0e0a58b Simplify some parameters 2019-12-08 13:37:42 -08:00
Chris Robinson 1dc26f305a Improve detection of compatible layouts in SOFA files 2019-12-08 03:36:27 -08:00