Chris Robinson
03389f390c
Avoid a full wipe and reallocation of wet buffers
2020-11-02 05:19:17 -08:00
Chris Robinson
52d58a4023
Store the wet buffers in the context
...
This is rather ugly, but we need the wet buffers to remain allocated after its
effect slot is deleted, because a voice can still use it for its final fade-out
mix.
2020-11-02 04:24:36 -08:00
Chris Robinson
be0798b56d
Finalize AL_SOFT_events
2020-10-26 10:57:48 -07:00
Chris Robinson
7bb37deb51
Replace the mixer fraction macros with constexpr variables
2020-10-21 17:16:27 -07:00
Chris Robinson
3e62600ecc
Replace some more macros with constexpr variables
2020-10-21 16:39:21 -07:00
Chris Robinson
b8f5e1f424
Change some more macros into constexpr variables
2020-10-21 10:39:00 -07:00
Jan Niklas Hasse
bd9d5d7bf0
Silence warning about unused return values
...
warning C4834: discarding return value of function with 'nodiscard'
attribute
2020-10-20 18:33:53 +02:00
Chris Robinson
95ea5951b1
Try again to work around a GCC 5 issue
2020-10-19 08:29:50 -07:00
Chris Robinson
a3903b84f9
Revert "Workaround a GCC 5 issue"
...
This reverts commit ada92b058a .
It didn't fix the problem.
2020-10-19 08:24:19 -07:00
Chris Robinson
ada92b058a
Workaround a GCC 5 issue
2020-10-19 08:01:38 -07:00
Chris Robinson
cdc15a4783
Use constexpr variables in place of some macros
2020-10-19 07:55:25 -07:00
Chris Robinson
d6686bceb0
Avoid an extra function to generate BSincHeaders
2020-10-18 16:49:36 -07:00
Chris Robinson
20cc3882b4
Do in-place initialization for the bsinc filters
...
Requires less dynamic allocations and less troublesome return values of large
arrays. Also reduces repetition with specified parameters.
2020-10-18 05:34:27 -07:00
Chris Robinson
17e88bdef3
Add a missing enum to the enum list
2020-10-16 06:39:42 -07:00
Chris Robinson
8e09ae8ee6
Finalize AL_SOFT_effect_target
2020-10-16 06:36:43 -07:00
Chris Robinson
2beb095eb1
Finalize ALC_SOFT_loopback_bformat
2020-10-16 06:35:23 -07:00
Chris Robinson
b0e025946e
Don't check for the app path if one was already retrieved
2020-10-13 01:57:53 -07:00
Chris Robinson
303ca3af72
Use inline functions for popcnt and ctz instead of macros
2020-10-13 01:21:44 -07:00
Chris Robinson
0dc9ae0998
Update event enum values
...
To keep them less spread out from other OpenAL Soft extensions.
2020-10-07 20:13:52 -07:00
Chris Robinson
7fb6d64ca8
Be more robust with to-mono channel conversions
2020-10-05 22:30:23 -07:00
Chris Robinson
e7a44d3b70
Cast the ringbuffer size to the correct type
2020-10-05 00:43:06 -07:00
Chris Robinson
7361e108a3
Fix a variable name
2020-10-05 00:17:13 -07:00
Chris Robinson
e0097c18b8
Simplify some DSound capture math
2020-10-03 16:17:34 -07:00
Chris Robinson
b5eccf424b
Remove the unused Ref logging level
2020-09-28 16:14:20 -07:00
Chris Robinson
f02bc1354d
Rework logging a little
...
Use OutputDebugStringW on Windows in addition to the log file
Avoid duplicate formatter parsing with Android
2020-09-28 11:34:24 -07:00
Chris Robinson
da29489ead
Use an enum class for the log level
2020-09-28 00:40:30 -07:00
Chris Robinson
39f4ea61c5
Add missing linear resampler to the option setting list
2020-09-24 14:21:57 -07:00
Chris Robinson
cef82153b6
Use a smaller buffer for the phase-shift filter
2020-09-24 13:26:01 -07:00
Chris Robinson
d912b92a60
Support all buffer layouts for convolution
2020-09-22 08:09:42 -07:00
Chris Robinson
191150d9a8
Remove deprecated, performance, and error event types
...
These would be better served with a proper debug API, rather than a general
audio event API.
2020-09-20 04:11:52 -07:00
Chris Robinson
8ef242bce0
Don't use direct channels with convolution
...
It may come back as an effect property, but it's probably better to not try
forcing it by default.
2020-09-18 10:12:58 -07:00
Chris Robinson
07989a34dc
Allow higher-order B-Format buffers for convolution
...
Only the first-order channels will be used, but higher-order buffers will be
allowed.
2020-09-18 00:06:10 -07:00
Chris Robinson
e7d8e7eb3f
Avoid extraneous buffers and buffer clears
2020-09-17 21:34:26 -07:00
Chris Robinson
0974b6b47c
Use inline wrappers to clarify forward/inverse FFTs
2020-09-13 04:18:40 -07:00
Chris Robinson
1d4b355622
Use standard sin and sqrt
2020-09-12 19:06:06 -07:00
Chris Robinson
bb90bfd9b3
Accumulate delays as samples before calculating nanoseconds
2020-09-12 01:52:45 -07:00
Chris Robinson
cf298075b5
Round (and clamp) the reftime instead of ceiling it
2020-09-12 00:47:04 -07:00
Chris Robinson
33d91ceeec
Avoid repeating string literals
2020-09-11 01:40:36 -07:00
Chris Robinson
a4bfba4cb5
Recognize GUID name strings with the DSound backend
2020-09-10 22:05:25 -07:00
Chris Robinson
21162cf5fc
Allow JACK to enumerate custom devices
...
Each device being associated with a port name pattern it'll try connecting to.
2020-09-10 21:09:06 -07:00
Chris Robinson
bb63d5aab3
Simplify clearing an array
2020-09-09 23:21:46 -07:00
Chris Robinson
ce0a45cbc7
Don't assume iterators are pointers
2020-09-09 14:02:02 -07:00
Chris Robinson
68a099ba35
Apply the first convolution segment in the time domain
...
This avoids an inherent delay from the effect, at the cost of higher CPU use.
Having a customizable user-specified delay (with said user ensuring a properly
trimmed impulse response) could help alleviate the cost since once the delay
exceeds the segment size, the initial FIR filter could be skipped.
2020-09-09 02:23:38 -07:00
Chris Robinson
f4a55cc8c2
Don't leave the negative frequencies as 0 for inverse FFT
2020-09-08 23:20:06 -07:00
Chris Robinson
29566b995c
Avoid an extraneous ConvolutionFilter sub-object
2020-09-06 00:16:50 -07:00
Chris Robinson
7eb5dfb3f8
Allow querying the new enums and functions
2020-09-05 23:53:53 -07:00
Chris Robinson
c52bf8c401
Rework effect slot buffer setting
...
Rather than creating an effect-specific buffer that gets passed along as a
property, the buffer is set the effect state when the effect state is created,
the device is updated, or the buffer is changed. The buffer can only be set
while the effect slot isn't playing, so it won't be changed or updated while
the mixer is processing the effect state.
2020-09-05 20:48:56 -07:00
Chris Robinson
9975aeb37f
Add methods to start and stop effect slot processing
...
A newly-created effect slot is in an AL_INITIAL state, in which processing is
stopped but will automatically become AL_PLAYING after successfully setting an
AL_EFFECTSLOT_EFFECT value (including AL_EFFECT_NULL or 0). Calling Play[v] or
Stop[v] will set the effect slot to AL_PLAYING or AL_STOPPED respectively.
While stopped, the effect won't produce audio and will not be processed.
2020-09-05 19:11:57 -07:00
Chris Robinson
7851f7d4ce
Don't add effect slots to the active list until an effect is set
2020-09-05 18:13:08 -07:00
Chris Robinson
c1ad5d6055
Avoid confusing */*...*/ syntax
...
MSVC warns about */ being outside of a comment.
2020-09-05 14:28:08 -07:00