Chris Robinson
ac8dbd7a56
Add a specific function for truncating float-to-int conversions
2018-05-03 22:02:32 -07:00
Chris Robinson
d8a659c6f2
Avoid fastf2i in the converter init
2018-05-03 17:27:30 -07:00
Chris Robinson
af90d89b6b
Use a fixed-point scale for the pitch shifter frequency index
2018-05-03 17:06:55 -07:00
Chris Robinson
a19296e3cf
Avoid excessive if block depths
2018-05-02 21:06:57 -07:00
Chris Robinson
85c03925fb
Avoid duplication for getting the cpuid
2018-05-02 20:59:53 -07:00
Chris Robinson
22413b82ca
Pass in the number of channels per order to InitNearFieldCtrl
2018-05-01 20:21:24 -07:00
Chris Robinson
e8aaa9cb13
An output device buffer is likely
2018-04-29 18:03:33 -07:00
Chris Robinson
2385ab700c
Avoid potentially calling log10f(0)
2018-04-29 14:02:33 -07:00
Chris Robinson
242ed45f65
Rename some struct members for clarity
2018-04-28 22:10:22 -07:00
Chris Robinson
e420752e82
Fix a comment about a float's mantissa
2018-04-28 18:52:40 -07:00
Chris Robinson
54109043b8
Remove some unnecessary floor calls
2018-04-28 01:14:17 -07:00
Chris Robinson
ddd4751f87
Increase the band-split IR for decoding ambisonics to HRTF
2018-04-27 18:42:26 -07:00
Chris Robinson
492c75cb7b
Rename some variables for clarity
2018-04-27 00:41:02 -07:00
Chris Robinson
1e0728af64
Transpose the band-splitter all-pass section
2018-04-26 23:26:11 -07:00
Chris Robinson
1cc6983b96
Use doubles for the pitch shifter's FFTs and processing
2018-04-24 21:40:41 -07:00
Chris Robinson
8311b57ca6
Update ChangeLog
2018-04-24 00:18:02 -07:00
Chris Robinson
510efae066
Don't specialize biquad processing for a single sample
2018-04-24 00:17:07 -07:00
Chris Robinson
b3ba90f5fa
Use transposed direct form 2 for the UHJ all-pass filters
...
This has one extra multiply, but avoids two moves and uses almost half as much
memory for the encoder state.
2018-04-22 03:34:29 -07:00
Chris Robinson
e10595df31
Pre-calculate the squares of the UHJ filter coefficients
2018-04-22 02:39:14 -07:00
Chris Robinson
b51d30f84d
Change some if checks to asserts since they must be true
2018-04-22 02:38:09 -07:00
Chris Robinson
ea8b52ee2c
Include header files in CMake's source lists
2018-04-21 23:42:04 -07:00
Chris Robinson
9575eebac4
Move the bnad-splitter filters to a separate source
2018-04-21 23:23:46 -07:00
Chris Robinson
ace8e64850
Only use fast float-to-int workarounds for x87
...
At least SSE and ARM have opcodes that handle float-to-int conversions well
enough. Also, Clang doesn't inline lrintf, incurring function call overhead for
what should be a single opcode.
2018-04-21 21:07:20 -07:00
Chris Robinson
4ee26f4ca3
Add some more ASSUME statements
2018-04-21 02:44:01 -07:00
Chris Robinson
a55c93e1f5
Improve ASSUME for Clang
...
For some reason, the { if(!x)__builtin_unreachable(); } construct does not
provide the same optimization opportunity for Clang (even though the condition
being false would trigger undefined behavior by reaching unreachable code, it
still performs checks and such for the condition potentially being false).
Using __builtin_assume seems to work better.
2018-04-21 01:54:43 -07:00
Chris Robinson
400ab8766c
Adjust the stereo panning front gain
...
This gives it a (more) precise -4.5dB gain drop for front-center panned sounds.
2018-04-19 21:55:20 -07:00
Chris Robinson
90b8d639f1
Remove unnecessary undefs
2018-04-19 18:24:27 -07:00
Chris Robinson
525b6fe168
Clear ALSA's PCM handle after closing it
2018-04-19 12:22:39 -07:00
Chris Robinson
f96a8fe369
Add some ASSUME statements that ensure mixing at least 1 sample
2018-04-18 20:39:52 -07:00
Chris Robinson
150586d7fe
Add an ASSUME macro that requires a true condition
2018-04-17 22:50:50 -07:00
Chris Robinson
09194fd488
Accumulate the B-Format HRTF responses using doubles
...
The final result is still truncated to single-precision float, but this should
keep the responses more stable as it accumulates the various inputs.
2018-04-17 21:27:47 -07:00
Chris Robinson
e619b64175
Don't minimize the HRTF per-response delay
...
The reverts both fa9ab9af7cb559ff9ecc1846f2996265bfbea1ec and
79604c3c0e0f3f71832a09348cc273a38882cc3e. As helpful as it was for the high
frequencies, the overall response's gain suffered.
2018-04-16 18:54:41 -07:00
Chris Robinson
795ed65797
Preliminary ChangeLog update
2018-04-15 19:01:38 -07:00
Chris Robinson
5b82dd8733
Update .gitignore
2018-04-14 13:02:21 -07:00
Chris Robinson
9c5307a48a
Rename BiquadState to BiquadFilter
2018-04-04 18:07:46 -07:00
Chris Robinson
b1fe405861
Improve ordering of channel processing in makehrtf
2018-04-03 11:21:15 -07:00
Chris Robinson
869637af2e
Apply biquad and T60 filters using transposed direct form II
2018-04-03 10:15:35 -07:00
Chris Robinson
414b56edec
Initialize COM using the multithreaded apartment
...
I honestly have no idea which is the correct (or better) mode to use given the
confusing mess COM is, but CoInitialize uses single-threaded apartments which
seems to be a problem for with at least a couple games in the STALKER series
(the call fails, which causes us to drop back to the DSound backend).
2018-04-01 16:39:20 -07:00
Chris Robinson
334bc4f551
Limit the near-field control distance to 10m.
2018-03-31 23:11:48 -07:00
Chris Robinson
e288c3b44a
Fix HRTF HOA coefficients
...
ACN8 was accidentally put on ACN7. However, rather than adding the missing
channel of silence, set up the coefficient map to only use the ambisonic
channels that can contribute to output.
2018-03-31 20:44:14 -07:00
Chris Robinson
91900b0599
Fix misspellings of quadraphonic
...
AL_LOKI_quadriphonic is left alone since that is what the extension is called
and what code expects. All other instances have been fixed for consistency.
2018-03-30 09:18:17 -07:00
Chris Robinson
29ae74d4bb
Fix lower elevation synthesis for stereo HRTFs
2018-03-29 20:44:44 -07:00
Chris Robinson
a2c24ff946
Specify Libs.private for the pkg-config file
...
Only used when building the static lib for its dependencies, since the shared
lib automatically handles its own dependencies.
2018-03-29 18:57:48 -07:00
Chris Robinson
61de399806
Don't cache SDL2_LIBRARY_TEMP with CMake
...
Otherwise it keeps prepending and appending the same extra libs and flags with
each invocation.
2018-03-29 18:10:58 -07:00
Chris Robinson
f48a1e3a31
Add simple descriptions to some extension formats in alext.h
2018-03-29 17:18:24 -07:00
Chris Robinson
4a8c3b50b6
Apply the initial decay and air absorption after gain clamping
2018-03-29 16:11:46 -07:00
Chris Robinson
852ad41176
Pass the azimuth and elevation to CalcPanningAndFilters
2018-03-29 16:11:46 -07:00
Chris Robinson
880d555060
Combine two loops
2018-03-29 16:11:46 -07:00
kcat
5523913a81
Merge pull request #184 from hhyyrylainen/master
...
Added missing string include to alffplay
2018-03-29 16:11:13 -07:00
Henri Hyyryläinen
a7da29804d
Added missing string include to alffplay
2018-03-30 01:53:55 +03:00