Chris Robinson
e28937d1f6
Add options to reverse local X and Y coordinates
...
To go along with reverse-z on the other axii. This is only for games that have
position/orientation errors causing top-bottom (or left-right) inversion.
2022-03-10 22:37:02 -08:00
Chris Robinson
609ee74211
Add a config option for reverse-z
...
The same as the __ALSOFT_REVERSE_Z env var, but in the config file. Should only
be used for per-game config files (either along side the executable, or setting
the ALSOFT_CONF env var when launching the app).
2022-03-10 17:47:42 -08:00
Chris Robinson
3c9a705210
Handle AirAbsorptionGainHF as a native context property
2022-02-08 22:41:44 -08:00
Chris Robinson
49a36334bd
Use a tri-state optional for the stereo output mode
2021-10-24 11:51:39 -07:00
Chris Robinson
096bed35fa
Pass a parameter to aluInitRenderer to specify UHJ output
2021-10-23 11:37:46 -07:00
Chris Robinson
0a0849db99
Use an optional bool instead of two tri-state enums
2021-07-31 14:24:49 -07:00
Chris Robinson
99157f149f
Move ContextBase and VoiceChange to core
2021-04-27 08:04:09 -07:00
Chris Robinson
22a8ebff80
Move GetChannelIdxByName and clean up some more includes
2021-04-26 08:04:50 -07:00
Chris Robinson
0fe38c053d
Move some functions to core
...
And clean up more includes
2021-04-25 11:36:37 -07:00
Chris Robinson
9b65ca4556
More include cleanup
2021-04-24 15:52:53 -07:00
Chris Robinson
e20143fcc4
Move the WetBuffer reference to EffectSlot
2020-12-27 00:14:58 -08:00
Chris Robinson
1ad944555c
Move some HRTF definitions to a separate header
2020-12-12 14:15:17 -08:00
Chris Robinson
191fe888b4
Move ambidefs.h to core
2020-12-12 10:38:24 -08:00
Chris Robinson
50e33ce8f4
Change some macros into constexpr variables
2020-12-04 13:53:56 -08:00
Chris Robinson
aa05feec4a
Avoid a global MAX_PITCH macro
2020-12-04 11:15:50 -08:00
Chris Robinson
630a3b8cbd
Move lerp/cubic to alnumeric.h
2020-12-04 11:15:50 -08:00
Chris Robinson
dbfdd35545
Move some declarations to more appropriate headers
2020-11-27 22:27:45 -08:00
Chris Robinson
03f9700071
Use BufferStorage for the buffer queue
2020-11-19 04:18:25 -08:00
Chris Robinson
52d58a4023
Store the wet buffers in the context
...
This is rather ugly, but we need the wet buffers to remain allocated after its
effect slot is deleted, because a voice can still use it for its final fade-out
mix.
2020-11-02 04:24:36 -08:00
Chris Robinson
7bb37deb51
Replace the mixer fraction macros with constexpr variables
2020-10-21 17:16:27 -07:00
Chris Robinson
3e62600ecc
Replace some more macros with constexpr variables
2020-10-21 16:39:21 -07:00
Chris Robinson
e8b3e82f96
Change a couple functions into member functions
2020-08-07 06:22:39 -07:00
Chris Robinson
88ad84edf6
Reduce the MAX_PITCH to 10
...
255 is insanely overkill. The bsinc resamplers fade to silence after a few
octaves, and the others would be a mess.
2020-06-29 11:32:15 -07:00
Chris Robinson
fe7a74b09a
Use a helper to set an identity ambisonic pan
2020-05-03 18:47:49 -07:00
Chris Robinson
2deb5e47d1
Avoid an unnecessary out parameter
2020-04-21 23:58:53 -07:00
Chris Robinson
3cb12da765
Move a type to where it's used
2020-04-16 02:05:07 -07:00
Chris Robinson
dc41f276d8
Get rid of the specialized MixRow_ methods
2020-04-16 01:47:33 -07:00
Chris Robinson
02d7fbfa0c
Use standard attribute declarations
2020-04-13 23:27:56 -07:00
Chris Robinson
d67cba99bd
Clean up some more unnecessary uses of AL types
2020-04-08 10:15:43 -07:00
Chris Robinson
8f47013e43
Some more ALfloat->float cleanup
2020-04-03 08:49:15 -07:00
Chris Robinson
af6584b8fc
Reduce the maximum number of source sends to 6
2020-02-25 04:52:39 -08:00
Chris Robinson
2e6a55a87c
Handle padding between device sample frames
...
The padding must be constant and sample type aligned (e.g. some fixed multiple
of two bytes between the start of two consecutive frames for 16-bit output).
The intent is to always have the ability for stereo output with WASAPI even if
the device has some other unsupported configuration, as long as front-left and
front-right exist.
2019-12-21 20:43:46 -08:00
Chris Robinson
eb89faf963
Use a span instead of a reference-to-array
2019-10-05 20:00:22 -07:00
Chris Robinson
58085f1c7b
Clean up some unnecessary includes
2019-10-02 19:13:07 -07:00
Chris Robinson
64e2c377d8
Move ALvoice from alu.h to a separate header
2019-10-02 16:53:23 -07:00
Chris Robinson
d639935e19
Move a couple types to the source they're used in
2019-10-02 15:37:33 -07:00
Chris Robinson
fb56b02041
Modify the bsinc resampler
...
Readjusted the bsinc12 cutoff back to -60dB. Also increased the filter's phase
count.
2019-09-29 22:43:46 -07:00
Chris Robinson
7783fa738c
Make the BSincTables constexpr in an anonymous namespace
2019-09-28 16:40:38 -07:00
Chris Robinson
4b746b8d37
Make MAX_RESAMPLER_PADDING specify the total padding
2019-09-28 14:35:42 -07:00
Chris Robinson
cbc00bcffe
Combine two function calls into one
2019-09-28 03:42:17 -07:00
Chris Robinson
882b4acae8
Add "fast" variants for the bsinc resamplers
...
This simply omits the scale factor from the filter, similar to how up-sampling
does. The consequence of this is less smooth transitions when ramping the
pitch while down-sampling, but otherwise behaves fine.
2019-09-28 01:58:29 -07:00
Chris Robinson
9b64e5e0db
Implement a "fast" bsinc path
...
This takes advantage of the fact than when increment <= 1 (when not down-
sampling), the scale factor is always 0. As a result, the scale and scale-phase
deltas never contribute to the filtered output. Removing those multiply+add
operations cuts half of the work done by the inner loop.
Sounds that do need to down-sample (when played with a high pitch, or is 48khz
on 44.1khz output, for example), still go through the normal bsinc process.
2019-09-26 19:24:29 -07:00
Chris Robinson
24db8a3f4b
Make the resampler type an enum class
2019-09-22 21:19:19 -07:00
Chris Robinson
aca9f4e095
Make the bsinc l and m coefficients unsigned
2019-09-17 18:38:46 -07:00
Chris Robinson
f09734b707
Pass IrSize to the HRTF mixers as unsigned
2019-09-13 11:19:11 -07:00
Chris Robinson
c1690178ec
Make the resampler increment unsigned
2019-09-13 03:25:13 -07:00
Chris Robinson
5f862a5b49
Clean up sample converter implicit conversions
2019-09-12 17:45:06 -07:00
Chris Robinson
2e010d29cb
Clean up implicit conversions in source.cpp
2019-09-12 11:33:04 -07:00
Chris Robinson
ef2769af03
Use a normal vector for the voices array
2019-09-04 23:04:55 -07:00
Chris Robinson
3973334a64
Store the voice fraction offset as unsigned
2019-08-31 15:49:34 -07:00