Commit Graph

3526 Commits

Author SHA1 Message Date
Chris Robinson 3867cad94d Simplify calculating the HRTF B-Format IR length 2018-05-04 06:48:20 -07:00
Chris Robinson be30e6bf8f Don't assume the FPU is round-to-zero in the pitch shifter 2018-05-04 04:53:50 -07:00
Chris Robinson 75e2cb97f7 Don't assume round-to-zero for fastf2i 2018-05-04 02:09:32 -07:00
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 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 fa9ab9af7c and
79604c3c0e. 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