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
Chris Robinson
1bb93f4fc2
Avoid direct function template and alias types
...
It's somewhat ambiguous what they mean. Sometimes acting as a pointer, other
times having weird behavior. Pointer-to-function types are explicitly defined
as such, whereas uses of these tend to be as references (never null and not
changeable).
2019-10-03 04:22:39 -07:00
Chris Robinson
b350ae3766
Remove the Offset parameter from ApplyCoeffs
2019-10-02 22:38:19 -07:00
Chris Robinson
bce6889173
Remove an unnecessary struct specifier
2019-10-02 22:20:34 -07:00
Chris Robinson
324fb8d0b7
Fix a comment
2019-10-02 19:22:14 -07:00
Chris Robinson
58085f1c7b
Clean up some unnecessary includes
2019-10-02 19:13:07 -07:00
Chris Robinson
50198ee30c
Clean up some ALfloat -> float
2019-10-02 17:07:23 -07:00
Chris Robinson
64e2c377d8
Move ALvoice from alu.h to a separate header
2019-10-02 16:53:23 -07:00
Chris Robinson
d639935e19
Move a couple types to the source they're used in
2019-10-02 15:37:33 -07:00
Chris Robinson
a35cac7ce0
Rename mixvoice.cpp to voice.cpp
2019-10-02 15:29:01 -07:00
Chris Robinson
2980adb8c0
Make sure the temporary HRIRs are properly aligned
2019-10-01 22:50:28 -07:00
Chris Robinson
a0a55d300f
Remove an unnecessary function
2019-10-01 21:45:44 -07:00
Chris Robinson
5d7a1fa6da
Clear the HRTF state values on allocation
2019-09-30 19:29:01 -07:00
Chris Robinson
4d127a2f98
Avoid infs/nans in the crest detector
...
It needs to be investigated why the rendered mix sometimes has such large
sample values when starting, but the compressor/limiter shouldn't generate NaNs
because of it.
2019-09-30 17:29:04 -07:00
Chris Robinson
cf617760b6
Separate a couple assignments from conditionals
2019-09-30 03:03:27 -07:00