322 Commits

Author SHA1 Message Date
Chris Robinson
fabb9add9b Silence an MSVC warning 2019-09-28 23:31:49 -07:00
Chris Robinson
00250042c8 Check MAX_RESAMPLER_PADDING properly to ensure it's large enough 2019-09-28 19:14:27 -07:00
Chris Robinson
7783fa738c Make the BSincTables constexpr in an anonymous namespace 2019-09-28 16:40:38 -07:00
Chris Robinson
4b746b8d37 Make MAX_RESAMPLER_PADDING specify the total padding 2019-09-28 14:35:42 -07:00
Chris Robinson
2d2e5539c0 Use FastBSinc24 for WASAPI and CoreAudio capture
Given a fixed rate, there's no downside to the fast version.
2019-09-28 03:44:13 -07:00
Chris Robinson
cbc00bcffe Combine two function calls into one 2019-09-28 03:42:17 -07:00
Chris Robinson
882b4acae8 Add "fast" variants for the bsinc resamplers
This simply omits the scale factor from the filter, similar to how up-sampling
does. The consequence of this is less smooth transitions when ramping the
pitch while down-sampling, but otherwise behaves fine.
2019-09-28 01:58:29 -07:00
Chris Robinson
9b64e5e0db Implement a "fast" bsinc path
This takes advantage of the fact than when increment <= 1 (when not down-
sampling), the scale factor is always 0. As a result, the scale and scale-phase
deltas never contribute to the filtered output. Removing those multiply+add
operations cuts half of the work done by the inner loop.

Sounds that do need to down-sample (when played with a high pitch, or is 48khz
on 44.1khz output, for example), still go through the normal bsinc process.
2019-09-26 19:24:29 -07:00
Chris Robinson
f009219523 Avoid extraneous parameters 2019-09-25 02:11:37 -07:00
Chris Robinson
5bb91b858f Use blended HRIRs for the B-Format decode 2019-09-24 22:27:12 -07:00
Chris Robinson
16a715a2b5 Fix unsigned 8-bit buffers 2019-09-24 21:49:12 -07:00
Chris Robinson
6963712d46 Use an array to match the HRTF rendering method 2019-09-24 13:51:40 -07:00
Chris Robinson
bf31ce688a Add a missing header for Android 2019-09-23 19:23:33 -07:00
Chris Robinson
61ffa23e44 Fix a couple more conversion warnings 2019-09-22 21:27:10 -07:00
Chris Robinson
24db8a3f4b Make the resampler type an enum class 2019-09-22 21:19:19 -07:00
Chris Robinson
95996effaf Move the ifstream wrapper to common 2019-09-22 12:23:41 -07:00
Chris Robinson
5f6a35c960 Avoid storing an integer in a pointer
C++ does not guarantee that, given an int of sufficient size, converting
int->ptr->int will result in the original value. A pointer may have more than
one integer representation. Only ptr->int->ptr round trips are well-defined.
2019-09-21 23:35:24 -07:00
Chris Robinson
9325f1d507 Split some code into separate functions 2019-09-21 21:14:11 -07:00
Chris Robinson
146afcbd70 Explicitly mark a couple functions as inline 2019-09-21 16:12:48 -07:00
Chris Robinson
28e62456ac Use an array and loop instead of individual tests 2019-09-21 12:08:45 -07:00
Chris Robinson
65eb0987e2 Remove and simplify some functions 2019-09-20 13:35:29 -07:00
Chris Robinson
057b253adb Use an anonymous namespace instead of static 2019-09-19 21:01:10 -07:00
Chris Robinson
ffb5623ead Fix a couple more annoying conversion warnings 2019-09-18 20:13:58 -07:00
Chris Robinson
a092624ed3 Fix some Windows warnings 2019-09-18 18:20:11 -07:00
Chris Robinson
9a0a5c79d8 Avoid hiding a class member function 2019-09-18 17:02:33 -07:00
Chris Robinson
66565ca7a3 Enable and fix some more warnings 2019-09-18 10:09:04 -07:00
Chris Robinson
aca9f4e095 Make the bsinc l and m coefficients unsigned 2019-09-17 18:38:46 -07:00
Chris Robinson
1da7512628 Avoid an unnecessary multiply 2019-09-16 21:49:06 -07:00
Chris Robinson
899a414591 Remove the last uses of the system's str[n]casecmp 2019-09-16 15:10:36 -07:00
Chris Robinson
10a841cd7e Avoid an unused variable 2019-09-16 14:10:48 -07:00
Chris Robinson
2c5c5a5397 Add and use custom string types and functions 2019-09-16 13:45:14 -07:00
Chris Robinson
650764775f Fix typo 2019-09-16 07:50:39 -07:00
Chris Robinson
fcf850c1dd Clean up some more conversion warnings 2019-09-16 07:32:13 -07:00
Chris Robinson
bf2c865d39 Clean up some more shadowing warnings 2019-09-16 07:16:31 -07:00
Chris Robinson
e16e2269b6 Add a fallback if SLAndroidDataFormat_PCM_EX isn't available 2019-09-15 20:46:37 -07:00
Chris Robinson
35129d66b7 Clean up the spaghetti mess in alcCaptureSamples 2019-09-15 13:42:56 -07:00
Chris Robinson
a999df8ce5 Rename ALautowah* for consistency 2019-09-15 12:58:58 -07:00
Chris Robinson
47f0d301dc Make the BackendFactory base destructor protected 2019-09-15 10:22:56 -07:00
Chris Robinson
c5a3c52822 Return and pass more appropriate types for backends 2019-09-15 09:50:28 -07:00
Chris Robinson
e4cc77ea23 Fix a few warnings from MSVC 2019-09-14 20:19:59 -07:00
Chris Robinson
4b8f78a8d6 Fix a few more GCC warnings 2019-09-14 19:42:54 -07:00
Chris Robinson
e82c43fb38 Fix a copy-paste error 2019-09-14 19:07:30 -07:00
Chris Robinson
807d3b64ca Enable and fix more warnings 2019-09-14 18:35:23 -07:00
Chris Robinson
2cc0600476 Avoid recalculations in the formant filter process 2019-09-14 18:35:23 -07:00
Chris Robinson
d75de6ee4d Don't hold the pulse lock while not necessary 2019-09-14 18:35:23 -07:00
Chris Robinson
2c348cecb6 Fix some more implicit conversions noted by GCC 2019-09-14 18:35:23 -07:00
Chris Robinson
532197a650 Clean up (most) implicit conversions in the backends 2019-09-14 12:44:35 -07:00
Chris Robinson
fa64b1fd6d Fix implicit conversions in the effects 2019-09-14 12:16:51 -07:00
Chris Robinson
3675dfcfef Use an unsigned index value 2019-09-14 08:50:07 -07:00
Chris Robinson
88364dcbc7 Fix more implicit conversions 2019-09-14 08:29:02 -07:00