Chris Robinson
12d4953a5f
Remove a couple redundant distance checks
2019-03-23 13:55:07 -07:00
Chris Robinson
6df673e01c
Don't redundantly set the voice's direct output buffer
2019-03-23 13:30:15 -07:00
Chris Robinson
819ec8a653
Rename and move ALeffectProps
2019-03-22 22:48:12 -07:00
Chris Robinson
3a6e741e90
Use MixParams for the wet buffers
2019-03-22 19:25:55 -07:00
Chris Robinson
edc32b40a5
Slightly improve casting in the modulator effect
2019-03-22 17:47:19 -07:00
Chris Robinson
ea8b02dead
Pass ALeffectProps directly to the get/setParam* methods
2019-03-22 16:04:13 -07:00
Chris Robinson
e7e585f65c
Use the effect state factory to set the default effect props
2019-03-22 15:00:37 -07:00
Chris Robinson
f951f4a66b
Implement getDefaultProps for effect state factories
2019-03-22 12:58:24 -07:00
Chris Robinson
935f386982
Use a separate EffectStateFactory for standard reverb
2019-03-22 11:57:32 -07:00
Chris Robinson
8a1b1f4204
Make sure the file is rewound before writing the wave header
2019-03-19 22:10:49 -07:00
Chris Robinson
7880540407
Use a sorted vector for looking up contexts
...
Note that the device still holds and uses a linked list of its contexts. The
sorted vector is used to verify handles given by callers.
2019-03-19 18:53:32 -07:00
Chris Robinson
90465e9124
Use a sorted vector for devices instead of a linked list
2019-03-19 15:56:30 -07:00
Chris Robinson
813976e58d
Add some enum casts for the WASAPI backend
2019-03-19 01:33:36 -07:00
Chris Robinson
9695952c8d
Rename DevProbe enum names
2019-03-19 00:24:54 -07:00
Chris Robinson
3e816de4fb
Use SSE intrinsics in a few more places
2019-03-18 20:58:48 -07:00
Chris Robinson
73a43fb19c
Don't bother trying _controlfp or __control87_2
2019-03-18 20:27:25 -07:00
Chris Robinson
2de1d17bc6
Use SSE intrinsics to set FTZ and DAZ
2019-03-18 20:14:40 -07:00
Chris Robinson
d802a5785e
Fix indexing for basic B-Format decoding
2019-03-17 14:03:21 -07:00
Chris Robinson
f96c37120b
Always reset all voices on disconnect
2019-03-16 17:01:04 -07:00
Chris Robinson
339a37b034
Include std::placeholders once in an anonymouse namespace
2019-03-16 15:15:59 -07:00
Chris Robinson
12999f9efe
Simplify calculating azimuth and elevation indices for HRTF
2019-03-14 22:26:19 -07:00
Chris Robinson
9f5a7a7a50
Fix wrapping for the upper HRIR index
2019-03-14 13:17:07 -07:00
Chris Robinson
3a39a2c790
Set the correct target gain after a fade-out HRTF mix
2019-03-12 16:45:34 -07:00
Chris Robinson
24ae12f58e
Check a value where its used
2019-03-12 09:56:02 -07:00
Chris Robinson
098c7ca6ea
Fix not looping when the source offset is beyond the loop end
2019-03-11 22:09:30 -07:00
Chris Robinson
24b43fe852
Remove a couple redundant local variables
2019-03-11 22:00:28 -07:00
Chris Robinson
30a7c6d86f
Pass the voice state as a parameter instead of reloading it
2019-03-11 20:00:14 -07:00
Chris Robinson
2c67ab0d2c
Rename ALvoice fields for consistency
2019-03-10 16:29:06 -07:00
Chris Robinson
030b24a40d
Improve handling of voice's AmbiScales for upsampling
2019-03-10 15:46:46 -07:00
Chris Robinson
663a6ce4e7
Use the correct value for MAX_AMBI2D_CHANNELS
2019-03-10 15:39:31 -07:00
Chris Robinson
d99d2a400a
Don't copy old coeffs in MixHrtfBlendBase
2019-03-10 14:31:46 -07:00
Chris Robinson
80e55b87ed
Avoid an extra level of indentation
2019-03-10 12:50:38 -07:00
Chris Robinson
0d295cf811
Don't directly use a buffer for updating source parameters
2019-03-10 11:52:39 -07:00
Chris Robinson
e5651c15dd
Avoid excessive transformations of the source position
2019-03-10 11:33:08 -07:00
Chris Robinson
12721f94a7
Add a method to apply an HF scale without band-splitting
2019-03-10 10:30:33 -07:00
Chris Robinson
6a95189ef6
Fix for MSVC decaying arrays to pointers with ?:
2019-03-09 21:54:15 -08:00
Chris Robinson
106671d451
Fade out voices that end normally
...
Sometimes a sound may end with non-0 amplitude, particularly if a buffer queue
underruns. This helps avoid clicks and pops for sources that don't already end
in silence.
2019-03-09 21:32:14 -08:00
Chris Robinson
87479b4b32
Play dummy samples and force a fade out on stopping voices
2019-03-09 18:34:00 -08:00
Chris Robinson
ef0f335132
Add a Stopping state for voices
...
This currently doesn't do much, except have the mixer progress it to Stopped.
It's valid to have without a source or buffers, and in the future will allow
fading out when a source is paused or stopped.
2019-03-09 16:48:07 -08:00
Chris Robinson
d39cfcc7bb
Clear the voice's buffer when detaching from source
2019-03-09 13:20:10 -08:00
Chris Robinson
90d1e1212b
Pass a reference to function for a template parameter
2019-03-03 00:24:33 -08:00
Chris Robinson
2d14de3fb0
Use more specific names for temp buffer storage
2019-03-02 23:41:26 -08:00
Chris Robinson
e4b76d2627
Reverse the HRTF field array
...
Most often a sound's distance will be beyond the farthest field measurement, so
It's more efficient to have the farthest field first and avoid looping through
the whole field array for them.
2019-02-27 23:13:40 -08:00
Chris Robinson
86926f0998
Combine the reverb output mixes into a single call
2019-02-25 05:52:37 -08:00
Chris Robinson
81aa5af3b9
Make sure the reverb fading completes
...
The processing loop doesn't depend on being aligned anymore, so it won't get
stuck when only less than 4 samples can be done in a non-final update.
2019-02-25 01:08:11 -08:00
Chris Robinson
4d6b66163c
Convert the device frequency to float just once
2019-02-24 19:07:21 -08:00
Chris Robinson
d6fb4d5f52
Make sure the voice's direct buffer is always set
2019-02-24 19:02:49 -08:00
Chris Robinson
d2664e2192
Remove a duplicate index array
2019-02-24 18:00:49 -08:00
Chris Robinson
cadff0f6c1
Reduce BUFFERSIZE to match the default period size
...
Also adds a bit more space to the temp source data buffer, to avoid needing to
loop on matching sample rates.
2019-02-24 16:13:51 -08:00
Chris Robinson
a2ba550ebf
Rework reverb A/B-Format conversion mixing
...
This should help improve performance using the optimized mixers, and fewer
passes on the transforms, though at the cost of more memory.
2019-02-24 15:43:56 -08:00