Chris Robinson
48aa1e10d6
Use the high-shelf filter in place of low-pass
...
They effectively both work to lower (or raise) high frequencies. However, the
high-shelf performs better when gain=1.
2013-05-28 10:57:38 -07:00
Chris Robinson
6556626055
Simplify and fix some filter gain calculations
2013-05-27 21:57:22 -07:00
Chris Robinson
feeec34333
Use ALfilterState for the source direct and send filters
2013-05-27 19:14:02 -07:00
Chris Robinson
9e84f38a46
Use generic VCALL[_NOARGS] macros instead of type-specific wrappers
2013-05-27 11:48:29 -07:00
Chris Robinson
d1c5599c8e
Use an ALeffectProps union to store the effect properties
2013-05-25 22:07:31 -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
563f16dc2a
Fix overflow issues when converting float to int
...
32-bit floats can only reach between -16777215...+16777215 (25 bits) before it
starts losing whole-number accuracy. Some compiler optimizations may break
trying to multiply a float by 2147483647.0 when the result is given right to a
float parameter, causing it instead to multiply by the nearest representable
float value, 2147483648.0.
2013-04-22 00:52:50 -07:00
Chris Robinson
b313c881c0
Add a missing cast to silence MSVC
2013-03-22 11:21:21 -07:00
Chris Robinson
bf54de4984
Use less math to clamp floats to -1...+1
...
The previous code could have issues as precision lowers. This should hopefully
work better while only using one if check instead of two.
2013-03-17 09:07:55 -07:00
Chris Robinson
893a1bedbc
Use +/-90 degrees for stereo sources with non-HRTF stereo output.
2012-12-04 05:30:06 -08:00
Chris Robinson
1fb9311d82
Lock the device before calling aluHandleDisconnect
...
PulseAudio causes an assert if being relocked inside a callback on the worker
thread, where aluHandleDisconnect is called. We can assume it's already locked
there, so just make sure the device is locked before being calling it.
2012-12-02 11:30:23 -08:00
Chris Robinson
e2368eb960
Use an array to specify the offset for each channel of the device buffer
...
This effectively inverts the DevChannels array
2012-11-04 04:41:11 -08:00
Chris Robinson
e868dad61c
Make a decimal value a float type
2012-10-31 06:58:16 -07:00
Chris Robinson
3c3e3b123b
Add a couple comments to the code
2012-10-26 20:11:59 -07:00
Chris Robinson
f02a9935c6
Avoid branching when clamping and converting float samples to integer
2012-10-26 15:31:14 -07:00
Chris Robinson
e2e502970c
Move some math functions to where they're used
2012-10-25 17:24:22 -07:00
Chris Robinson
4f5aafe59f
Put the HRTF DirectParams into an anonymous struct
2012-10-15 01:37:37 -07:00
Chris Robinson
a852669dce
Store the output buffers in the DirectParams struct
2012-10-14 11:21:52 -07:00
Chris Robinson
0b679167c9
Store some more HRTF info in the DirectParams struct
2012-10-14 10:57:11 -07:00
Chris Robinson
5c70e6b9ab
Don't add the dry gain to the mixing matrix
2012-10-13 11:10:58 -07:00
Chris Robinson
9bd3b88a58
Silence an implicit int-to-float conversion warning on MSVC
2012-10-13 11:00:43 -07:00
Chris Robinson
73105b2d4b
Fix copying the listener Up vector
2012-10-12 23:35:00 -07:00
Chris Robinson
815b03855b
Apply the listener matrix to the listener velocity once
2012-10-12 07:56:37 -07:00
Chris Robinson
6750bbb1d7
Avoid needlessly copying the listener matrix
2012-10-12 07:45:20 -07:00
Chris Robinson
43c8c4fa29
Apply the listener position to the transformation matrix
2012-10-12 07:38:29 -07:00
Chris Robinson
25b8a95987
Check the distance against epsilon to determine if it matches
2012-10-12 07:10:51 -07:00
Chris Robinson
99fcd6f816
Properly scale wide-stereo sources
2012-10-10 04:08:35 -07:00
Chris Robinson
1b7f01b7cc
The max step is no longer dependent on the channel count
2012-10-10 03:40:01 -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
39bc2ba65c
Build the listener matrix separately
2012-10-09 06:19:36 -07:00
Chris Robinson
c22408cb2a
Store a pointer to the listener in the context
2012-10-09 04:44:27 -07:00
Chris Robinson
a6287fd407
Add a special resampler for matching sample rates
2012-10-05 06:03:19 -07:00
Chris Robinson
f138774d78
Avoid void* arithmetic
2012-10-04 06:16:16 -07:00
Chris Robinson
068da3fe83
Make sure the output buffer pointer is updated in case multiple iterations are needed
2012-10-03 02:35:43 -07:00
Chris Robinson
12327da4fe
Remove SSE resamplers. They aren't gaining us much this way.
2012-09-24 14:47:06 -07:00
Chris Robinson
4a86983a6f
Avoid correcting for more non-existing clicks
2012-09-16 09:04:37 -07:00
Chris Robinson
c19d9d3452
Don't try to correct for non-existing clicks.
2012-09-16 08:42:36 -07:00
Chris Robinson
79b6d89b3f
Explicitly give the wet buffer 1 channel
2012-09-16 08:27:50 -07:00
Chris Robinson
a240abb6c8
Avoid building redundant mixers
2012-09-16 08:14:26 -07:00
Chris Robinson
657ee85136
Use a struct to store the FPU mode
2012-09-16 01:35:16 -07:00
Chris Robinson
28086f6cb7
Implement an SSE cubic resampler
2012-09-14 07:01:58 -07:00
Chris Robinson
90e0c74721
Implement an SSE linear resampler
2012-09-14 04:48:53 -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
3f97af4c8c
Don't use count-specific functions to write to the output buffer
2012-09-11 06:41:24 -07:00
Chris Robinson
4c5cb2189b
Use a non-interleaved DryBuffer
2012-09-11 06:32:42 -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
6723d27e06
Remove some unused code
2012-09-08 21:53:04 -07:00