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
576adf06b1
Store HRIR coefficients using HrirArray
2019-11-28 09:46:16 -08:00
Chris Robinson
925e6e979c
Rework HRTF enuemration so the loaded HRTFs are separate
2019-11-28 08:24:29 -08:00
Chris Robinson
1e93fba6d0
Rename HrtfEntry to HrtfStore
2019-11-28 06:10:36 -08:00
Chris Robinson
eb8922596a
Apply the full HRIR length for the B-Format decoder
2019-11-21 23:55:10 -08:00
Chris Robinson
2fd8c619b3
Rename a couple struct fields
2019-11-21 02:58:35 -08:00
Chris Robinson
7bc4a27900
Allocate storage for full HRTF coefficient lengths
2019-11-21 02:43:34 -08:00
Chris Robinson
6159b837cf
Add a first-order ambisonic decoder for HRTF
2019-11-18 00:32:01 -08:00
Chris Robinson
c86a28af5c
Simplify some pi statements
2019-11-16 14:33:09 -08:00
Chris Robinson
6ad252efda
Use wrappers to distinguish elevation and azimuth values
2019-11-16 14:07:31 -08:00
Chris Robinson
d120e1464f
Improve precision of the HRTF ambisonic decoder matrix
2019-11-13 08:39:27 -08:00
Chris Robinson
0ad512dd51
Clear the whole response HRIR before blending
2019-11-10 21:56:19 -08:00
Chris Robinson
74cbba511d
Limit HRTF ambisonic decoding to second-order
...
The generated third-order matrix has incorrect first-order coefficients,
indicating a wonky decoder. The generated second-order matrix looks more
stable.
2019-11-09 13:04:44 -08:00
Raulshc
c5f88ab59f
EFX: Add explicit cast to a square function
...
MSVC 2015 and above returns the expression according to its datatype.
In this case, returns 4294967295 instead of -1.
2019-11-09 12:12:53 +01:00
Chris Robinson
d2608e4bde
Avoid holding HRTF accumulation samples per-source
...
It notably simplifies things to mix HRTF sources into an accumulation buffer
together, which the Dry buffer's Ambisonic-to-HRTF decode is then added to,
before being mixed to the Real output.
2019-11-03 00:30:33 -07:00
Chris Robinson
2741a94e58
Use rotate to reorder the default list entry
2019-10-28 23:47:30 -07:00
Chris Robinson
d37a294d4c
Add a config option for custom ALSA capture devices
2019-10-27 19:20:26 -07:00
Chris Robinson
101afb1ee4
Convert HRTF field distances to meters when creating storage
2019-10-27 15:50:59 -07:00
Chris Robinson
cac4072781
Change a few more really small gain values to 0
2019-10-26 19:57:17 -07:00
Chris Robinson
0cba99ed1b
Avoid static constexpr for arrays iterated over at run-time
2019-10-25 01:43:23 -07:00
Chris Robinson
5ac1f19241
Don't dereference the end iterator
2019-10-24 21:58:35 -07:00
Chris Robinson
48347f62b5
Don't trace twice for a new HRTF data file
2019-10-24 15:28:28 -07:00
Chris Robinson
f0977e5cc9
Print the found file entries after sorting
2019-10-24 15:10:37 -07:00
Chris Robinson
7bed2fe7cc
Report the real ambisonic order set for HRTF rendering
2019-10-24 14:33:43 -07:00
Chris Robinson
f40e69f9e3
Use a 26-point Lebedev grid for the HRTF ambisonic decode
2019-10-23 23:36:02 -07:00
Chris Robinson
4733fc6f1e
Fix azimuth limit
2019-10-22 15:23:17 -07:00
Chris Robinson
fcde56e1fc
Increase the max elevation and azimuth count for HRTFs
2019-10-21 11:30:39 -07:00
Chris Robinson
f58167e72d
More sanely handle the voice state when mixing
2019-10-14 20:45:23 -07:00
Chris Robinson
33fd1f9efd
Use better types for some specific sizes
2019-10-13 09:37:07 -07:00
Chris Robinson
630d4d573d
Gracefully drain the OpenSL capture buffer on disconnect
2019-10-10 13:33:27 -07:00
Chris Robinson
d2053e6784
Use one PulseAudio mainloop per device
...
To help avoid devices blocking on each other when handling asynchronous
messages.
2019-10-09 23:25:56 -07:00
Chris Robinson
8bf3da0cd2
Remove a useless prebuf check with PulseAudio
2019-10-09 09:45:02 -07:00
Chris Robinson
57cdac3368
Create the initial PulseAudio stream corked
2019-10-09 09:42:35 -07:00
Chris Robinson
404f3e2d08
Don't track the PulseAudio context state in devices
2019-10-09 05:01:30 -07:00
Chris Robinson
b687e952ef
Make C callbacks noexcept
...
No telling what would happen if exceptions managed to get back into presumably
C-based callers.
2019-10-09 03:29:25 -07:00
Chris Robinson
a7c1245360
Use smart pointers for ALSA param handles
...
And simplify some related error handling
2019-10-09 02:16:08 -07:00
Chris Robinson
2842df5a02
Catch exceptions from backend start calls
2019-10-09 00:11:19 -07:00
Chris Robinson
963580c2d5
Never return null from CreateRingBuffer
...
Allocation failure would already throw a bad_alloc anyway, now a size overflow
throws an exception too.
2019-10-08 21:55:03 -07:00
Chris Robinson
7726a06d26
Clean up some exception messages and avoid duplicate log messages
2019-10-08 05:44:38 -07:00
Chris Robinson
360330b2ad
Define some simple wrapper methods inline
2019-10-08 03:41:49 -07:00
Chris Robinson
f4bc3d7ab2
Improve logging for Windows
2019-10-08 00:21:21 -07:00
Chris Robinson
52a003e9bb
Avoid raw lock/unlock calls
2019-10-07 23:22:06 -07:00
Chris Robinson
f0fa6c6baf
Fix BackendVase typo
2019-10-07 22:42:54 -07:00
Chris Robinson
9b411cfcbe
Reduce some indentation
2019-10-07 22:25:45 -07:00
Chris Robinson
02d80cd74d
Use exceptions for backend open failures
2019-10-07 21:37:56 -07:00
Chris Robinson
f8ff4e269b
Put the pragma defines in a separate header
2019-10-07 15:26:35 -07:00
Chris Robinson
acb6baad90
Use std::array instead of plain arrays in a couple places
2019-10-05 21:23:31 -07:00
Chris Robinson
eb89faf963
Use a span instead of a reference-to-array
2019-10-05 20:00:22 -07:00
Chris Robinson
267b79f337
Avoid duplicate structs
2019-10-05 16:11:38 -07:00