Chris Robinson
cbb82647fb
Remove an unnecessary conditional
2014-03-23 17:44:26 -07:00
Chris Robinson
e2cb41dc61
Remove the last bits of the predictive sample processing
2014-03-23 17:33:57 -07:00
Chris Robinson
72986882f5
Remove the click removal buffers for auxiliary effect slots
2014-03-23 16:28:55 -07:00
Chris Robinson
55f851093f
Remove the now-unneeded click removal buffers for the device
...
They are still there for auxiliary sends. However, they should go away soon
enough too, and then we won't have to mess around with calculating extra
"predictive" samples in the mixer.
2014-03-23 07:31:33 -07:00
Chris Robinson
81e049bd47
Step mixing gains per-sample for non-HRTF mixing
...
This fades the dry mixing gains using a logarithmic curve, which should produce
a smoother transition than a linear one. It functions similarly to a linear
fade except that
step = (target - current) / numsteps;
...
gain += step;
becomes
step = powf(target / current, 1.0f / numsteps);
...
gain *= step;
where 'target' and 'current' are clamped to a lower bound that is greater than
0 (which makes no sense on a logarithmic scale).
Consequently, the non-HRTF direct mixers do not do not feed into the click
removal and pending click buffers, as this per-sample fading would do an
adequate job of stopping clicks and pops caused by extreme gain changes. These
buffers should be removed shortly.
2014-03-23 06:57:00 -07:00
Chris Robinson
0ce0a88fd6
Move the step counter and moving flag to DirectParams
2014-03-23 03:03:03 -07:00
Chris Robinson
b0d511a860
Store the HrtfState directly in the DirectParams
2014-03-23 02:45:50 -07:00
Chris Robinson
6ee54fb1f3
Store some source mixing parameters in the active source struct
2014-03-19 13:14:11 -07:00
Chris Robinson
54b8690781
Fix a comment
2013-10-26 08:49:37 -07:00
Chris Robinson
6425480d40
Don't store the effect slot in SendParams
...
This makes it much more like DirectParams.
2013-10-06 10:11:01 -07:00
Chris Robinson
8448b94c0b
Rename Filter param member to LpFilter
2013-10-06 09:33:02 -07:00
Chris Robinson
e96cc656e9
Use C99's inline instead of __inline
2013-05-28 22:27:07 -07:00
Chris Robinson
feeec34333
Use ALfilterState for the source direct and send filters
2013-05-27 19:14:02 -07:00
Chris Robinson
52efb8d7f4
Use restrict instead of RESTRICT
2013-05-22 15:11:39 -07:00
Chris Robinson
e4186f4903
Use a properly-defined history for the FILTER struct
2013-05-21 07:10:24 -07:00
Chris Robinson
f0d27e5f91
Remove the unused Device parameter
2012-10-14 11:29:28 -07:00
Chris Robinson
3240894cd5
Remove the now-unused Source parameter from the DryMix methods
2012-10-14 11:04:36 -07:00
Chris Robinson
a4f21aaa64
Set Hrtf.Moving after setting the source params instead of after mixing
2012-10-09 06:54:21 -07:00
Chris Robinson
fa8d374613
Rename a couple functions
...
Since they don't use the stack anymore.
2012-10-05 06:44:55 -07:00
Chris Robinson
0d26b0dcc2
Put temporary storage in the device instead of on the stack
2012-10-05 06:42:26 -07:00
Chris Robinson
a6287fd407
Add a special resampler for matching sample rates
2012-10-05 06:03:19 -07:00
Chris Robinson
0b47844606
Fix potential buffer overflow with temp sample space
2012-10-05 00:27:29 -07:00
Chris Robinson
41b2c2f3bb
Remove an unneeded parameter from the resampler
2012-09-27 02:46:15 -07:00
Chris Robinson
ed82194260
Deinterlace audio when loading it into the stack.
...
It may be better to deinterlace it on load into the buffer, though I don't
imagine this will affect much. It could be nice for consistency's sake, though
it would also complicate things if we ever want to support direct access to
buffer data.
2012-09-26 17:16:25 -07:00
Chris Robinson
a20341ac2a
Ensure the ResampledBuffer is aligned
2012-09-14 04:16:49 -07:00
Chris Robinson
7635afcb52
Use a source param for the resampler and move them to the mixer source
2012-09-14 04:13:18 -07:00
Chris Robinson
ff809f2271
Move a couple methods to where they're used
2012-09-12 07:57:50 -07:00
Chris Robinson
98ff6f990a
Do the filtering separately from the mixing
2012-09-11 05:56:19 -07:00
Chris Robinson
af3b5c23c8
Try to ensure mixing samples in multiples of 4
2012-09-09 04:27:47 -07:00
Chris Robinson
2bf1979d4a
Move the target effect slot to the SendParams struct
2012-09-08 22:32:30 -07:00
Chris Robinson
89cab3cd39
Remove STACK_DATA_SIZE in favor of BUFFERSIZE
2012-09-08 22:09:34 -07:00
Chris Robinson
1c03025090
Separate the resampling and mixing steps
2012-09-08 21:34:36 -07:00
Chris Robinson
c9e87a19a9
Add cmake options to disable or require support for CPU extensions
2012-08-15 01:24:50 -07:00
Chris Robinson
3b87e29e63
Move mixers into separate source files
2012-08-15 01:01:55 -07:00
Chris Robinson
e9a20cb985
Add an SSE-enhanced HRTF mixer using intrinsics
...
Not as good as it could be, but it's something
2012-08-14 03:53:07 -07:00
Chris Robinson
0a3eba08d8
Allow building multiple types of mixers, selecting based on CPU caps
2012-08-13 09:18:46 -07:00
Chris Robinson
1323e11701
Interpolate between HRTF delay samples using the delay fraction
2012-07-20 15:08:11 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
010a66487d
Use 2 chained one-pole filters for the wet path
2012-04-30 09:33:00 -07:00
Chris Robinson
26456f13e1
Pass the direct/send params to the mixer instead of accessing through the source
2012-04-28 03:31:13 -07:00
Chris Robinson
a8a13fcbd8
Move the HrtfParams into the DirectParams
2012-04-28 02:23:53 -07:00
Chris Robinson
0a193c5645
Move the direct and send params into separate different types
2012-04-28 01:32:52 -07:00
Chris Robinson
2450ee1723
Use separate methods for the dry and wet mixing loops
2012-04-27 23:46:51 -07:00
Chris Robinson
549d542a31
Reorganize some ALsource fields
2012-04-27 01:36:13 -07:00
Chris Robinson
2cdb58fb85
The mixer always uses floats
2012-04-26 07:50:17 -07:00
Chris Robinson
68ab232364
Use a separate loop to actually update DataPosFrac and DataPosInt
2012-04-26 06:44:37 -07:00
Chris Robinson
125b743e5c
Remove hungarian notation from sources
2012-04-19 21:46:29 -07:00
Chris Robinson
e394d14cda
Use more proper enum names for the resampler
2012-02-12 08:45:19 -08:00
Chris Robinson
86ef115e21
Set the source's slot send parameter to NULL if it's the AL_EFFECT_NULL type
2012-01-23 06:29:03 -08:00
Chris Robinson
3324bab81e
Mark a couple more arrays with restrict
2011-10-08 03:08:13 -07:00