Chris Robinson
1f64f9d016
Try to write the full configured buffer length with PulseAudio
...
This basically ignores tlength even if it's smaller than what was requested. It
keeps up-to-date with minreq changes too now, in case that happens.
2017-04-08 10:01:04 -07:00
Chris Robinson
f1a5b6b668
Overwrite the old search path with the new one
2017-04-08 03:00:53 -07:00
Chris Robinson
5e9f5693a4
Combine a couple loops
2017-04-07 14:56:23 -07:00
Chris Robinson
7fd88086f6
Make sure malloc succeeded for 'delays'
2017-04-07 09:49:06 -07:00
Chris Robinson
8f2e4d46ec
Store the HRTF coeffs as a stereo pair
...
This will make it easier to handle HRTF data sets that have separate left and
right ear responses. Will need an mhr version update to take advantage of that.
2017-04-07 08:46:50 -07:00
Chris Robinson
e267f6b88e
Don't explicitly restore the old HRTF when initializing panning
...
Otherwise it won't store the name in the device.
2017-04-07 08:02:13 -07:00
Chris Robinson
b551291840
Allocate temp storage for delays when loading HRTFs
2017-04-07 06:40:42 -07:00
Chris Robinson
36f7dda1ca
Remove another reference to the sinc8 resampler
2017-04-07 03:57:40 -07:00
Chris Robinson
70a097bf59
Clean up a comment
2017-04-07 03:21:40 -07:00
Chris Robinson
338d61f907
Reference count HRTFs and unload them when unused
2017-04-06 13:00:29 -07:00
Chris Robinson
94f514ae5a
Load embedded HRTF entries as-needed
2017-04-06 01:35:09 -07:00
Chris Robinson
37f666fbab
Fix an incorrect message
2017-04-05 12:46:02 -07:00
Chris Robinson
2eaa10fc21
Load HRTF files as needed
...
Currently only applies to external files, rather than embedded datasets. Also,
HRTFs aren't unloaded after being loaded, until library shutdown.
2017-04-05 12:27:30 -07:00
Chris Robinson
f76dea0c03
Store the loaded hrtf entry container in the enumerated hrtf entry
2017-04-05 11:29:58 -07:00
Chris Robinson
e7ca61e8b5
Store the HRTF's filename separate from the entry storage
2017-04-05 07:09:16 -07:00
Chris Robinson
26144ca9df
Rename al_string_* functions to alstr_*
2017-04-04 06:58:53 -07:00
Chris Robinson
d52752a3fe
Recognize %-encoded characters for config section names
2017-04-01 06:07:14 -07:00
Chris Robinson
497d078f50
Remove a couple unused macros
2017-04-01 03:04:15 -07:00
Chris Robinson
13d7d6fe95
Don't rely on sizeof being the offset to a struct's unsized array
2017-04-01 03:00:24 -07:00
Chris Robinson
52112b0b8d
Constify a variable
2017-04-01 02:38:44 -07:00
Chris Robinson
1ef916a54b
Make a pointer restrict and assume aligned
2017-04-01 01:08:18 -07:00
Chris Robinson
5f245d5950
Avoid some unnecessary string reallocation
2017-03-31 23:22:06 -07:00
Chris Robinson
90c005bbec
Convert float samples to integer using a power-of-2 multiple
2017-03-31 09:11:28 -07:00
Chris Robinson
ac8b4aa5f6
Convert integer samples to float using a power-of-2 divisor
...
This should cut down on unnecessary quantization noise (however minor) for 8-
and 16-bit samples. Unfortunately a power-of-2 multiple can't be used as easily
for converting float samples to integer, due to integer types having a non-
power-of-2 maximum amplitude (it'd require more per-sample clamping).
2017-03-31 06:54:46 -07:00
Chris Robinson
9fb07101dc
Load HRTF coefficients as pre-normalized floats
2017-03-31 04:59:09 -07:00
Chris Robinson
2a8970368f
Combine some HRTF loading code
2017-03-31 03:45:26 -07:00
Chris Robinson
7dc3fb98ab
Use the correct types' sizes for HRTF storage
2017-03-31 02:15:24 -07:00
Chris Robinson
facd8ab109
Make ReleaseContext return if any contexts still remain
2017-03-28 05:33:43 -07:00
Chris Robinson
70aefa75e2
Use an array of pointers for effects instead of a linked list
2017-03-27 23:16:23 -07:00
Chris Robinson
9f4e47d7be
Fix HRTF interpolated gain calculation
2017-03-26 02:44:34 -07:00
Chris Robinson
56428cdb74
Use a loop to apply NFC filters
2017-03-25 23:55:44 -07:00
Chris Robinson
5c37eca2c5
Use ALsizei for more index lookups
2017-03-24 14:35:25 -07:00
Chris Robinson
9ca92be0b8
Properly calculate the echo damping
2017-03-24 14:08:04 -07:00
Chris Robinson
b062d50bf1
Fix setting Ambi formats for loopback devices
2017-03-21 16:40:23 -07:00
Chris Robinson
cdfe0d8f5a
Use an atomic flag to test if a source needs to update
2017-03-20 21:25:39 -07:00
Chris Robinson
42bcf0870d
Make DataPosInt an ALsizei
2017-03-20 19:22:41 -07:00
Chris Robinson
d7d9ad806a
Use proper bools for boolean states
2017-03-20 16:53:41 -07:00
Chris Robinson
ecfa1dcb6f
Don't defer source state or offset changes
2017-03-19 13:48:40 -07:00
Chris Robinson
66b86d43be
Fix alcGetInteger64vSOFT to handle ambisonic attributes
2017-03-18 14:33:40 -07:00
Chris Robinson
7bf7cda467
Replace a couple ALuint with ALsizei
2017-03-17 15:45:39 -07:00
Chris Robinson
a209edb5ee
Fix NFC filter to set the correct center frequency
2017-03-16 19:58:21 -07:00
Chris Robinson
8f5cab5608
Increase the filter slope to -12dB/octave
2017-03-16 11:25:28 -07:00
Chris Robinson
32d521d79c
Check usability of MixHrtf_Neon before MixHrtf_SSE
2017-03-14 19:16:59 -07:00
Chris Robinson
6d565ff1fd
Remove a couple unneeded typedefs
2017-03-14 13:10:34 -07:00
Chris Robinson
7b4645f5f8
Store the HRIR coeff pointer and delays directly in MixHrtfParams
2017-03-12 06:58:27 -07:00
Chris Robinson
96aaab9366
Rework HRTF coefficient fading
...
This improves fading between HRIRs as sources pan around. In particular, it
improves the issue with individual coefficients having various rounding errors
in the stepping values, as well as issues with interpolating delay values.
It does this by doing two mixing passes for each source. First using the last
coefficients that fade to silence, and then again using the new coefficients
that fade from silence. When added together, it creates a linear fade from one
to the other. Additionally, the gain is applied separately so the individual
coefficients don't step with rounding errors. Although this does increase CPU
cost since it's doing two mixes per source, each mix is a bit cheaper now since
the stepping is simplified to a single gain value, and the overall quality is
improved.
2017-03-11 18:04:06 -08:00
Chris Robinson
feffe1e81a
Make the voice's 'moving' state a bitflag
2017-03-11 06:26:05 -08:00
Chris Robinson
98e8f941b7
Allocate as many channels for DirectHrtfState as needed
2017-03-11 06:20:04 -08:00
Chris Robinson
6b4b00e462
Dynamically allocate the device's HRTF state
2017-03-10 10:47:43 -08:00
Chris Robinson
51cb969446
Fix building on MSVC
2017-03-10 05:05:25 -08:00