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
9575eebac4
Move the bnad-splitter filters to a separate source
2018-04-21 23:23:46 -07:00
Chris Robinson
4ee26f4ca3
Add some more ASSUME statements
2018-04-21 02:44:01 -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
9c5307a48a
Rename BiquadState to BiquadFilter
2018-04-04 18:07:46 -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
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
Chris Robinson
2b16ff3ca8
Check all buffers to update a source with
2018-03-28 06:28:46 -07:00
Chris Robinson
5aecce5a0d
Store the ALbufferlistitem's composited/max sample length
2018-03-27 18:09:28 -07:00
Chris Robinson
d85ddf8aae
Rename NfcFilterUpdate* to NfcFilterProcess* for consistency
2018-03-27 05:58:58 -07:00
Chris Robinson
964723691a
Condense an if check
2018-03-26 06:04:11 -07:00
Chris Robinson
2475d4652c
Clear mixing target parameters before setting them
2018-03-25 18:02:07 -07:00
Chris Robinson
79eb2ea26e
Reduce the gain of front-panned sounds with plain stereo
...
Now front-center sounds are attenuated by roughly -4.5dB instead of -3dB. This
will help keep rear-panned sounds from attenuating too much while not making
front-panned also attenuate too much.
2018-03-25 12:24:43 -07:00
Chris Robinson
f3672ab26b
Annotate the B-Format rotation/conversion matrix
2018-03-25 08:24:53 -07:00
Chris Robinson
f757fbce4d
Fix Hanning -> Hann window name
2018-03-24 14:18:29 -07:00
Chris Robinson
e5e3b05015
Fix capture device closing in the CoreAudio backend
2018-03-24 09:25:49 -07:00
Chris Robinson
3f071a90a4
Use proc_pidpath to get the process path on macOS when available
2018-03-24 08:25:58 -07:00
Chris Robinson
413d55aaa5
Fix a couple comments about coordinate handedness
2018-03-24 07:02:27 -07:00
Raulshc
6d8062a2a7
EFX: Align some arrays used in intrinsics ( #180 )
2018-03-24 05:43:56 -07:00
Chris Robinson
6990478369
Rename ALfilterState/Type to BiquadState/Type
2018-03-23 14:52:59 -07:00
Chris Robinson
e37634e908
Remove an unused struct and move some functions to where they're used
2018-03-23 11:58:11 -07:00
Chris Robinson
63c9d95b84
Combine multiple allocations into one
2018-03-23 11:39:07 -07:00
Chris Robinson
63c35248be
Some formatting cleanup
2018-03-22 11:32:23 -07:00
Chris Robinson
6685e0a078
Don't use an ALsizei for a potentially negative value
2018-03-22 11:11:45 -07:00
Chris Robinson
7789cc8e32
Define the Hanning window globally once for the pitch shifter
2018-03-22 09:55:15 -07:00
Chris Robinson
1d6622aa2b
Fix a delta phase offset calculation in the pitch shifter
...
tmp can be negative, and &1 is not the same as %2 in that case.
2018-03-22 08:56:48 -07:00
Chris Robinson
eeff730034
Hold some immediate values on the stack
2018-03-22 08:49:35 -07:00
Chris Robinson
23fd7451d0
Avoid some memset calls in the pitch shifter process loop
2018-03-22 08:49:22 -07:00
Chris Robinson
bc3a96308e
Use appropriately-sized buffers for the pitch shifter
2018-03-22 08:05:48 -07:00
Chris Robinson
8e976a92f7
Move NFC filters to the filter directory
2018-03-22 07:17:48 -07:00
Chris Robinson
7a23330ffe
Move the filter implementation to a separate directory
2018-03-22 07:05:40 -07:00
Chris Robinson
6ea3b5445f
Rename mixer_inc.c to hrtf_inc.c
2018-03-22 05:41:42 -07:00
Chris Robinson
091e676db3
Move mixer sources into a sub-directory
2018-03-22 05:06:15 -07:00
Chris Robinson
6ad171781a
Use the global MixSamples for the pitch shifter output
2018-03-22 03:13:09 -07:00
Chris Robinson
d157d66678
Change a parameter type to float since that's what it's used as
2018-03-22 02:13:40 -07:00
Chris Robinson
4da6364fc2
Slightly restructure the pitch-shifter process loop
2018-03-22 02:10:51 -07:00