4310 Commits

Author SHA1 Message Date
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