Chris Robinson [Mon, 22 Apr 2024 09:32:14 +0000 (22 02:32 -0700)]
Use a span to register JACK ports
Chris Robinson [Mon, 22 Apr 2024 09:15:27 +0000 (22 02:15 -0700)]
Avoid interlaced mixing for the non-RT JACK mixing
It just needs to be deinterlaced in the JACK process callback anyway.
Dominik [Sun, 21 Apr 2024 22:15:10 +0000 (22 00:15 +0200)]
Fixed compilation as a subdirectory with MinGW (#991)
Chris Robinson [Sat, 20 Apr 2024 11:59:38 +0000 (20 04:59 -0700)]
Replace a loop with a couple algorithms
Chris Robinson [Sat, 20 Apr 2024 05:06:12 +0000 (19 22:06 -0700)]
Remove an undesireable cast
Chris Robinson [Thu, 18 Apr 2024 04:32:36 +0000 (17 21:32 -0700)]
Reduce the number of mutable variables in the reverb all-passes
Chris Robinson [Tue, 16 Apr 2024 12:24:55 +0000 (16 05:24 -0700)]
Use spans more in the reverb effect
Chris Robinson [Tue, 16 Apr 2024 11:50:18 +0000 (16 04:50 -0700)]
Fix an implicit array-to-pointer decay
Chris Robinson [Mon, 15 Apr 2024 10:52:47 +0000 (15 03:52 -0700)]
Add missing include
Chris Robinson [Mon, 15 Apr 2024 01:38:57 +0000 (14 18:38 -0700)]
Rename SoundIO to SndIO
Chris Robinson [Mon, 15 Apr 2024 01:37:25 +0000 (14 18:37 -0700)]
Rename FindSoundIO.cmake to FindSndIO.cmake
Chris Robinson [Mon, 15 Apr 2024 01:05:55 +0000 (14 18:05 -0700)]
Disable SndIO by default on non-BSD systems
It can still be enabled by setting ALSOFT_BACKEND_SNDIO=TRUE with cmake, but
since it isn't loaded dynamically, don't create a requirement on libsndio when
it's not needed or wanted.
Chris Robinson [Sun, 14 Apr 2024 18:34:29 +0000 (14 11:34 -0700)]
Clarify a log message
Chris Robinson [Sun, 14 Apr 2024 03:12:32 +0000 (13 20:12 -0700)]
Clean up some asserts and add an alassert
Unlike a normal assert, alassert doesn't compile away in Release/NDEBUG builds,
making it useful for checks that must be true for continuing operation but may
not be due to unforeseeable/extenuating circumstances.
Chris Robinson [Sat, 13 Apr 2024 03:07:16 +0000 (12 20:07 -0700)]
Simplify PortAudio device enumeration
Chris Robinson [Tue, 9 Apr 2024 13:52:16 +0000 (9 06:52 -0700)]
Replace a set of ifs with a switch
Chris Robinson [Tue, 9 Apr 2024 12:57:00 +0000 (9 05:57 -0700)]
Simplify sorting new elements
Chris Robinson [Tue, 9 Apr 2024 10:56:21 +0000 (9 03:56 -0700)]
Remove unnecessary NOLINT comments
Chris Robinson [Tue, 9 Apr 2024 09:49:33 +0000 (9 02:49 -0700)]
Clean up some temporary span definitions
Chris Robinson [Tue, 9 Apr 2024 07:45:27 +0000 (9 00:45 -0700)]
Avoid calling std::max in alignas
To work around a bug in older versions of GCC 8 that some systems use.
Trung Lê [Mon, 8 Apr 2024 01:05:15 +0000 (8 11:05 +1000)]
Remove extra '; almalloc.h (#986)
Chris Robinson [Sun, 7 Apr 2024 09:22:50 +0000 (7 02:22 -0700)]
Update AppVeyor to VS 2022
Chris Robinson [Sun, 7 Apr 2024 08:22:10 +0000 (7 01:22 -0700)]
Add enumeration to the PortAudio backend
Chris Robinson [Sun, 7 Apr 2024 05:05:08 +0000 (6 22:05 -0700)]
Allow specify other channel counts for PortAudio playback
The default channel configuration is stereo. The user is responsible for
ensuring the requested channels are compatible with the device configuration
since PortAudio provides no way to check.
Chris Robinson [Sun, 7 Apr 2024 00:35:40 +0000 (6 17:35 -0700)]
(Re-)add a cubic spline resampler
Chris Robinson [Sun, 7 Apr 2024 00:15:39 +0000 (6 17:15 -0700)]
Rename the cubic resampler to gaussian
Chris Robinson [Sat, 6 Apr 2024 23:21:54 +0000 (6 16:21 -0700)]
Pass spans to the resamplers instead of pointers to arrays
Chris Robinson [Fri, 5 Apr 2024 01:12:09 +0000 (4 18:12 -0700)]
Fix implicit signedness conversion warnings on 32-bit
Chris Robinson [Thu, 4 Apr 2024 07:45:47 +0000 (4 00:45 -0700)]
Avoid more raw pointer manipulation in uhjfilter
Chris Robinson [Wed, 3 Apr 2024 01:33:34 +0000 (2 18:33 -0700)]
Be a bit safer and less explicit with spans
Chris Robinson [Tue, 2 Apr 2024 18:52:58 +0000 (2 11:52 -0700)]
Use spans in place of some pointer and iterator manipulation
Chris Robinson [Sun, 31 Mar 2024 22:42:42 +0000 (31 15:42 -0700)]
Round up the HRIR length for the SIMD HRTF filter
Chris Robinson [Sat, 30 Mar 2024 16:19:30 +0000 (30 09:19 -0700)]
Remove a couple inferred template parameters
Chris Robinson [Sat, 30 Mar 2024 13:35:38 +0000 (30 06:35 -0700)]
Inline a couple more globals
Chris Robinson [Sat, 30 Mar 2024 13:20:50 +0000 (30 06:20 -0700)]
Pass spans to the HRTF mixer functions instead of pointers
Chris Robinson [Sat, 30 Mar 2024 10:10:09 +0000 (30 03:10 -0700)]
Pass spans to the mixer functions instead of pointers
Chris Robinson [Sat, 30 Mar 2024 03:22:53 +0000 (29 20:22 -0700)]
Remove some unnecessary RESTRICT uses
Chris Robinson [Fri, 29 Mar 2024 12:13:34 +0000 (29 05:13 -0700)]
Assert for out-of-bounds subspans instead of throwing
Chris Robinson [Fri, 29 Mar 2024 09:01:39 +0000 (29 02:01 -0700)]
Minor clean up of some std::generate calls
Chris Robinson [Fri, 29 Mar 2024 08:56:09 +0000 (29 01:56 -0700)]
Add an aldirect example for the Direct extension
Chris Robinson [Thu, 28 Mar 2024 08:19:18 +0000 (28 01:19 -0700)]
Do 4 samples at a time in PhaseShifterT::process for NEON
Chris Robinson [Thu, 28 Mar 2024 04:54:25 +0000 (27 21:54 -0700)]
Process 4 samples at a time in PhaseShifterT::process
For SSE only for now. I'm not sure yet how to do it efficiently for NEON.
Chris Robinson [Thu, 28 Mar 2024 04:22:32 +0000 (27 21:22 -0700)]
Use the proper size for the spans in uhjencoder
Chris Robinson [Thu, 28 Mar 2024 03:36:26 +0000 (27 20:36 -0700)]
Support mono input files in uhjencoder
Chris Robinson [Tue, 26 Mar 2024 01:59:24 +0000 (25 18:59 -0700)]
Avoid repeating the return type
Chris Robinson [Tue, 26 Mar 2024 00:38:29 +0000 (25 17:38 -0700)]
Make an operator bool explicit
Chris Robinson [Tue, 26 Mar 2024 00:25:28 +0000 (25 17:25 -0700)]
Return a vector of strings for enumeration from the backends
Chris Robinson [Mon, 25 Mar 2024 22:52:58 +0000 (25 15:52 -0700)]
Suppress warnings about using hardware_interference_size
Chris Robinson [Mon, 25 Mar 2024 22:49:28 +0000 (25 15:49 -0700)]
Fix value truncation warning
Chris Robinson [Mon, 25 Mar 2024 20:02:38 +0000 (25 13:02 -0700)]
Change a couple string literals to string_view literals
Chris Robinson [Mon, 25 Mar 2024 06:15:23 +0000 (24 23:15 -0700)]
Don't try to sort an empty list
Chris Robinson [Sun, 24 Mar 2024 22:09:02 +0000 (24 15:09 -0700)]
Remove an unused initializer
Chris Robinson [Sun, 24 Mar 2024 09:04:54 +0000 (24 02:04 -0700)]
Simplify calculating the 90-degree phase shift FIR filter
Chris Robinson [Sun, 24 Mar 2024 08:13:03 +0000 (24 01:13 -0700)]
Avoid pointer arithmetic with HRTF storage
Chris Robinson [Sun, 24 Mar 2024 08:11:59 +0000 (24 01:11 -0700)]
Avoid pointer arithmetic with near-field filter mixing
Chris Robinson [Sun, 24 Mar 2024 07:46:13 +0000 (24 00:46 -0700)]
Fix uhjencoder's fallback channel IDs
Chris Robinson [Sat, 23 Mar 2024 08:32:09 +0000 (23 01:32 -0700)]
Use a more appropriate type for an array offset
Chris Robinson [Sat, 23 Mar 2024 08:08:59 +0000 (23 01:08 -0700)]
Remove unused getopt
Chris Robinson [Sat, 23 Mar 2024 08:06:48 +0000 (23 01:06 -0700)]
Avoid pointer arithmetic in sofa-info and makemhr
Chris Robinson [Thu, 21 Mar 2024 21:26:51 +0000 (21 14:26 -0700)]
Protect effect slot state changes with the effect slot lock
Chris Robinson [Thu, 21 Mar 2024 19:54:52 +0000 (21 12:54 -0700)]
Don't over-allocate the active effect slot array
Rather than hacking in the sorted array by assuming an equal length array after
the end of the active array, include it as the back half of the array.
Chris Robinson [Thu, 21 Mar 2024 06:05:01 +0000 (20 23:05 -0700)]
Avoid raw pointers in uhjdecoder/uhjencoder
Chris Robinson [Thu, 21 Mar 2024 04:29:55 +0000 (20 21:29 -0700)]
Recognize _M_ARM64 in PFFFT for MSVC NEON support
Chris Robinson [Wed, 20 Mar 2024 06:38:48 +0000 (19 23:38 -0700)]
Use spans a bit more in place of pointers
Chris Robinson [Mon, 18 Mar 2024 04:25:04 +0000 (17 21:25 -0700)]
Clean up some more raw pointer arithmetic
Chris Robinson [Sun, 17 Mar 2024 18:14:33 +0000 (17 11:14 -0700)]
Avoid pointers for calculating B-Format upsampler matrix
Chris Robinson [Sun, 17 Mar 2024 04:28:06 +0000 (16 21:28 -0700)]
Make a span's contents const
Chris Robinson [Sun, 17 Mar 2024 04:20:11 +0000 (16 21:20 -0700)]
Avoid some more direct pointer manipulation
Chris Robinson [Sat, 16 Mar 2024 14:55:56 +0000 (16 07:55 -0700)]
Mark some conditionally-used parameters as maybe_unused
Chris Robinson [Sat, 16 Mar 2024 14:51:23 +0000 (16 07:51 -0700)]
Add a pointer wrapper for al::span's iterators
This helps ensure expected behavior for eventually switching to std::span in
C++20, as iterator objects can't be offset with any old integer type.
Chris Robinson [Sat, 16 Mar 2024 14:15:10 +0000 (16 07:15 -0700)]
Workaround libc++ defining __cpp_lib_hardware_interference_size
Older versions of libc++ define the feature test macro
__cpp_lib_hardware_interference_size, but not the
std::hardware_destructive_interference_size and
std::hardware_constructive_interference_size variables it's for. Not sure which
version fixed it, so don't use it at all with libc++ for now.
Chris Robinson [Fri, 15 Mar 2024 19:49:06 +0000 (15 12:49 -0700)]
Don't pass an iterator where a pointer is expected
Chris Robinson [Fri, 15 Mar 2024 18:08:36 +0000 (15 11:08 -0700)]
Make another global variable inline
Chris Robinson [Fri, 15 Mar 2024 08:47:53 +0000 (15 01:47 -0700)]
Avoid some more direct pointer manipulation
Chris Robinson [Thu, 14 Mar 2024 20:29:36 +0000 (14 13:29 -0700)]
Avoid some pointer arithmetic
Chris Robinson [Thu, 14 Mar 2024 17:16:40 +0000 (14 10:16 -0700)]
Use more consistent parameter names
Chris Robinson [Thu, 14 Mar 2024 16:18:22 +0000 (14 09:18 -0700)]
Handle AL errors more consistently
Chris Robinson [Wed, 13 Mar 2024 16:11:02 +0000 (13 09:11 -0700)]
Use exceptions for effect slot errors
Chris Robinson [Wed, 13 Mar 2024 15:03:19 +0000 (13 08:03 -0700)]
Use exceptions to handle buffer errors
Instead of abusing return setError(...); to return early with a void return
type (which doesn't work for non-void-returning functions). Compilers should
also automatically optimize for non-exception paths without (un)likely
attributes.
Chris Robinson [Tue, 12 Mar 2024 15:39:41 +0000 (12 08:39 -0700)]
Move some function definitions to a more appropriate source
And fix up some headers
Chris Robinson [Tue, 12 Mar 2024 15:28:32 +0000 (12 08:28 -0700)]
Mark a function maybe_unused that's only used in asserts
Chris Robinson [Tue, 12 Mar 2024 15:27:57 +0000 (12 08:27 -0700)]
Make sure a needed header is included
Chris Robinson [Tue, 12 Mar 2024 15:24:32 +0000 (12 08:24 -0700)]
Avoid using preexisting enum values
Assumptions are what created this mess in the first place. Let's avoid making
another one.
Chris Robinson [Tue, 12 Mar 2024 15:12:37 +0000 (12 08:12 -0700)]
Avoid some pointer arithmetic
Chris Robinson [Mon, 11 Mar 2024 09:02:20 +0000 (11 02:02 -0700)]
Recognize the system device name for PipeWire and PulseAudio
This is for names like "alsa_output.pci-0000_08_00.4.analog-stereo". Names like
these are shared between PipeWire and PulseAudio APIs, offering a relatively
consistent system-level specifier (kind of like GUIDs on Windows). This doesn't
include the ALSA backend, though it's not commonly used outside of some power-
user setups (but it would be nice to find a way to identify the ALSA device
related to such a system device name).
Chris Robinson [Sun, 10 Mar 2024 07:43:53 +0000 (9 23:43 -0800)]
Use a subspan instead of pointer manipulation
Chris Robinson [Sun, 10 Mar 2024 07:39:56 +0000 (9 23:39 -0800)]
Fix ringbuffer overflow check
Chris Robinson [Sun, 10 Mar 2024 05:08:26 +0000 (9 21:08 -0800)]
Simplify generating IDs
Chris Robinson [Sat, 9 Mar 2024 07:41:04 +0000 (8 23:41 -0800)]
Use span's iterators for FlexArray
Chris Robinson [Sat, 9 Mar 2024 03:18:54 +0000 (8 19:18 -0800)]
Use a span for the distance compensation buffer
Chris Robinson [Fri, 8 Mar 2024 09:20:42 +0000 (8 01:20 -0800)]
Avoid some more raw pointers
Chris Robinson [Fri, 8 Mar 2024 07:41:22 +0000 (7 23:41 -0800)]
Remove const from a return type
Chris Robinson [Wed, 6 Mar 2024 08:26:55 +0000 (6 00:26 -0800)]
Use spans instead of raw pointers for the filters' output
Chris Robinson [Wed, 6 Mar 2024 07:30:46 +0000 (5 23:30 -0800)]
Use spans more for voice processing
Chris Robinson [Mon, 4 Mar 2024 18:23:00 +0000 (4 10:23 -0800)]
Fix buffer load size for negative buffer offsets
Chris Robinson [Mon, 4 Mar 2024 18:22:11 +0000 (4 10:22 -0800)]
Rename some 'pan's to 'gain's for clarity
Chris Robinson [Mon, 4 Mar 2024 05:21:09 +0000 (3 21:21 -0800)]
Use an iterator to iterate over the channel orders
Chris Robinson [Mon, 4 Mar 2024 02:32:17 +0000 (3 18:32 -0800)]
Iterate over the async events directly
Chris Robinson [Mon, 4 Mar 2024 00:03:10 +0000 (3 16:03 -0800)]
Give names to unnamed structs
Chris Robinson [Sun, 3 Mar 2024 17:17:40 +0000 (3 09:17 -0800)]
Add an in-progress extension for panning sources