Commit Graph

7185 Commits

Author SHA1 Message Date
Chris Robinson 8e7199cbb6 Avoid a cmake check for determining the size of long 2020-08-13 14:04:29 -07:00
Chris Robinson fd52c828a9 Improve handling main() with UTF-8 args on Windows 2020-08-12 17:40:00 -07:00
Chris Robinson 476e9d7522 Cleanup some warnings with ffmpeg/alffplay 2020-08-12 17:39:08 -07:00
Chris Robinson b12cd77d32 Use a wait predicate instead of a while loop 2020-08-12 10:00:43 -07:00
Chris Robinson ed1135f7ae Fix configure-time ffmpeg version detection 2020-08-12 09:48:17 -07:00
Chris Robinson 57d6df29b4 Update .gitignore for QtCreator files 2020-08-11 10:11:20 -07:00
Chris Robinson 529049dc59 Remove an unused variable 2020-08-11 10:06:12 -07:00
Chris Robinson 475ed0f039 Use a FlexArray instead of a vector for distance compensation 2020-08-11 05:59:20 -07:00
Chris Robinson c549797af0 Make osme things constexpr 2020-08-10 15:11:52 -07:00
Chris Robinson e8b3e82f96 Change a couple functions into member functions 2020-08-07 06:22:39 -07:00
Chris Robinson 84354c792e Cleanup OSS enumeration and fix duplicate names 2020-08-07 00:11:29 -07:00
Chris Robinson 02f8419663 Fix DIAGNOSTIC_POP for GCC and Clang 2020-08-06 23:20:20 -07:00
Chris Robinson 58a2a5e2e3 Add a comment about 32-bit GCC stack aligning with SSE codegen 2020-08-05 17:43:51 -07:00
Chris Robinson 816510fee7 Update changelog 2020-08-05 07:18:13 -07:00
Luis Cáceres 064710cdf7 Force stack alignment on 32-bit gcc for proper SSE use (#462)
Fixes crashes due to misaligned stack variables in SSE instructions (#460).
2020-08-05 07:16:56 -07:00
Chris Robinson 7ddd49e16a Add the jack/connect-ports option to alsoft-config 2020-08-05 00:43:08 -07:00
Chris Robinson f138369808 Add an option to auto-connect JACK ports 2020-08-05 00:27:12 -07:00
Chris Robinson 516de157d8 Use std::array instead of some C-style arrays 2020-08-05 00:10:10 -07:00
Chris Robinson 2e1645f32a Print the error from pthread_setschedparam 2020-08-04 12:46:27 -07:00
HALX99 7cac5304c8 Add ios build for travis (#452)
* Add ios build for travis

* fix cmake command and set osx_image: xcode11

* print cmake version

* print cmake version before config

* [iOS] By default use iphoneos for sysroot

* Use ios.toolchain.cmake to build ios

* By default, don't require gnu extension

* Update CMakeLists.txt

Co-authored-by: deal <deal@dealdeMac.local>
2020-08-01 02:52:36 -07:00
Chris Robinson 76c57990be Cleanup and fix a typo in the changelog 2020-07-23 19:20:55 -07:00
Chris Robinson 39a2f0626a Use a predicate instead of a while loop 2020-07-23 09:03:47 -07:00
Chris Robinson ac1fc1b60a Don't include headers in a namespace definition 2020-07-23 09:03:47 -07:00
Chris Robinson 91df03f7eb Simplify mixer buffer size saturation handling 2020-07-23 09:03:47 -07:00
kcat 4817d82185 Merge pull request #453 from devnexen/haiku_support_completion
GetProcBinary implementation for Haiku.
2020-07-21 10:27:43 -07:00
David Carlier d3ffaeb8d7 GetProcBinary implementation for Haiku. 2020-07-21 17:22:38 +00:00
Chris Robinson f409cb4039 Revert "Don't call find_package(WindowsSDK) if the platform ver is already set"
This reverts commit c1383e3a48.
2020-07-09 00:07:33 -07:00
Chris Robinson c1383e3a48 Don't call find_package(WindowsSDK) if the platform ver is already set 2020-07-08 23:32:24 -07:00
Chris Robinson da25557ed6 Remove dead code 2020-06-30 16:44:14 -07:00
Chris Robinson b0e72266b6 Don't round up the dst size when the src size was saturated 2020-06-29 19:41:08 -07:00
Chris Robinson 775187788a Fix SrcBufferSize calculation when downsampling 2020-06-29 12:34:12 -07:00
Chris Robinson 88ad84edf6 Reduce the MAX_PITCH to 10
255 is insanely overkill. The bsinc resamplers fade to silence after a few
octaves, and the others would be a mess.
2020-06-29 11:32:15 -07:00
Chris Robinson f81558c948 Avoid including windows.h in threads.h 2020-06-28 12:55:55 -07:00
Chris Robinson 31791c9997 Workaround a MinGW quirk
Sometimes MinGW defines strncasecmp to _strnicmp in string.h, which can cause
problems with al::strncasecmp if it's not consistently replaced.
2020-06-26 05:39:26 -07:00
Chris Robinson c4cf84c549 Update default HRTF 2020-06-21 19:41:07 -07:00
Chris Robinson a0eb532100 Apply simulated HRIR occlusion in the frequency domain 2020-06-21 19:28:37 -07:00
Chris Robinson 967ea42359 Update the default HRTF 2020-06-21 05:01:35 -07:00
Chris Robinson 24393ab192 Synthesize missing elevations in the frequency domain
This should help avoid destructive phase interference. The occlusion low-pass
filter is still applied in the time domain due to no clear topology (cutoff
frequency, slope, bandwidth, etc).
2020-06-21 00:29:57 -07:00
Chris Robinson a01dbeb09f Use multiple threads for magnitude calculations
Also allow user-declarable thread count.
2020-06-19 16:43:09 -07:00
Chris Robinson bc91e4d302 Update the default HRTF 2020-06-19 15:44:20 -07:00
Chris Robinson 8780976979 Avoid blending multiple IRs for the -90 elevation IR 2020-06-19 15:28:22 -07:00
Chris Robinson 4cd0e333c8 Calculate the HRIR onsets and magnitudes separately from loading
This should help improve memory use a bit since the SOFA file can be unloaded
before allocating some temp buffers for onset detection and FFT calculation.
2020-06-17 17:15:26 -07:00
Chris Robinson 3f26ce4a82 Add a makemhr option to use the farthest field only
All fields are used for equalization, but only the farthest field is resampled,
reconstructed, normalized, and written to the mhr.
2020-06-17 16:25:40 -07:00
Chris Robinson beba71a6f9 Resample HRIRs after equalization 2020-06-17 13:03:26 -07:00
Chris Robinson 4cfd63a1c7 Avoid reinitializing the resampler with each HRIR 2020-06-17 01:50:11 -07:00
Chris Robinson cd6bb65d49 Resample HRTFs in the frequency domain in makemhr
This should produce far better results given it works directly on the frequency
response magnitudes prior to phase reconstruction, as it doesn't deal with a
linear phase filter on a truncated time-domain response (with the result also
getting truncated in both direction).

The in-library on-load HRTF resampler still uses the linear filter due to its
relative performance and simplicity benefits. It's good enough as a backup,
though users with custom HRTFs would benefit from resampling when creating the
mhr (adjusting its window size as appropriate/desired).
2020-06-17 01:15:01 -07:00
Chris Robinson 8ea7d5183b Print the synthesized elevations' azimuth counts 2020-06-16 17:33:26 -07:00
Chris Robinson b0b720c609 Avoid an unnecessary local variable 2020-06-16 14:01:39 -07:00
Chris Robinson bd0144065a Set channel labels from WFX channel masks 2020-06-15 20:21:54 -07:00
Chris Robinson c142b49981 Print the name of unhandled PulseAudio channels 2020-06-15 14:07:21 -07:00