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
Chris Robinson
3f559e7e60
Rename a couple structs for clarity
2019-12-06 23:11:26 -08:00
Chris Robinson
c9a6527121
Use doubles for blending the B-Format decoder HRIRs
2019-12-06 22:31:30 -08:00
Chris Robinson
200b07b288
Fully reset the voice when updating the device
2019-12-05 00:18:59 -08:00
Chris Robinson
863171efc9
Check the voice's ambisonic order when starting
2019-12-05 00:18:01 -08:00
Chris Robinson
bbe1c4c64e
Test the B-Format buffer extension in alffplay
2019-12-02 13:04:44 -08:00
Chris Robinson
38037e29ba
Handle the buffer's ambisonic properties
2019-12-02 12:50:18 -08:00
Chris Robinson
799c60f3bb
Add an interface to set a B-Format buffer's layout and scaling
2019-12-02 11:51:27 -08:00
Chris Robinson
58e4d643d3
Make B-Format rotation more robust
...
This should now handle higher orders, and can be easily extended to non-FuMa
layouts and scalings.
2019-12-01 22:33:41 -08:00
Chris Robinson
1a51e3a9d1
Add an index map for 2D FuMa channels
2019-12-01 17:52:36 -08:00
Chris Robinson
b79aa32308
Store the ambisonic order for the voice
...
Currently only first-order B-Format is possible for a buffer/source, but this
will begin to allow for higher orders with an appropriate extension.
2019-12-01 15:36:25 -08:00
Chris Robinson
9559f7bfc2
Update the second-order decoder for HRTF
...
This uses fewer virtual speakers to help with clarity. The fewer speakers used
for the response, the less destructive phase interference there should be.
2019-11-30 18:42:04 -08:00
Chris Robinson
fcf03705e6
Clear the resampler after use
2019-11-29 18:19:01 -08:00
Chris Robinson
1a4a3764d1
Update built-in HRTF name for alsoft-config
2019-11-29 14:54:29 -08:00
Chris Robinson
a8d06c0731
Store HRTF delays with some fractional precision
...
Since the delays get bilinearly filtered before use, maintaining a bit of extra
precision can help accuracy even if it ultimately gets rounded to the nearest
integer before use. This should help with resampled HRTFs, which need to scale
the delays that are already rounded, and can also be leveraged by an updated
MHR format.
2019-11-29 14:01:39 -08:00
Chris Robinson
2453f4ec14
Avoid a shadow declaration warning
2019-11-29 08:41:20 -08:00
Chris Robinson
7ff165b095
Use unsigned for array indices
2019-11-29 08:33:46 -08:00
Chris Robinson
34edd3a914
Fix sorting of loaded HRTFs
2019-11-29 06:19:06 -08:00
Chris Robinson
7b3f88c430
Avoid extraneous looping
2019-11-29 05:52:33 -08:00
Chris Robinson
e80256e394
Remove an unnecessary alias
2019-11-28 16:17:00 -08:00
Chris Robinson
b310e09f59
Rename the default HRTF
2019-11-28 15:48:07 -08:00
Chris Robinson
6069eef94d
Also scale the HRTF delays for different rates
2019-11-28 14:53:13 -08:00
Chris Robinson
846a997956
Add an option to limit the HRTF's IR size
2019-11-28 14:51:45 -08:00
Chris Robinson
4eb9a0b835
Don't keep a resampled default HRTF
2019-11-28 12:57:42 -08:00
Chris Robinson
f6105cbff0
Resample HRIRs when loading
2019-11-28 12:33:26 -08:00
Chris Robinson
c093728ced
Move the polyphase resampler to the common lib
2019-11-28 10:54:47 -08:00
Chris Robinson
576adf06b1
Store HRIR coefficients using HrirArray
2019-11-28 09:46:16 -08:00