Chris Robinson
953745d386
Make an inline function to check for 2D ambisonic formats
2021-12-12 15:53:53 -08:00
Chris Robinson
01dd34f305
Add an internal Super Stereo format
...
It's not available as an AL buffer format (yet) since I'm not sure how to
expose it. Internally it seems fine as a separate channel configuration, but
because OpenAL combines the channel configuration and sample type, a flag may
work better there.
2021-12-11 17:50:24 -08:00
Chris Robinson
d998c03a27
Add a UHJ-specific coefficient scaling array
2021-07-13 06:31:13 -07:00
Chris Robinson
061148072f
Update include headers
...
Don't add alc/ to the include paths.
2021-04-27 16:04:54 -07:00
Chris Robinson
2571d9bbc4
Update some license notices
...
Permission to relicense was granted via email.
2021-04-27 11:56:29 -07:00
Chris Robinson
d06209ef5a
Update includes
2021-04-27 08:39:17 -07:00
Chris Robinson
ff380298e4
Move BufferStorage and Voice to core
2021-04-27 08:26:42 -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
440ce71dce
Move GetHFOrderScales to a more appropriate place
2021-04-24 13:46:52 -07:00
Chris Robinson
b54bb388a3
Create a base the ALCdevice and ALCcontext structs
...
A base that contains the API-agnostic data, with ALCdevice and ALCcontext being
for AL-specific data.
2021-04-24 08:28:13 -07:00
Chris Robinson
f33edc3b30
Add support for 4-channel UHJ
...
Also add the SOFT moniker to the new macros
2021-03-31 21:02:30 -07:00
Chris Robinson
b5e36007f1
Handle 3-channel UHJ audio buffers
2021-03-31 10:03:31 -07:00
Chris Robinson
8793055e66
Start an interface for providing UHJ audio
...
Currently only 2-channel UHJ, which gets treated as stereo.
2021-03-31 05:37:56 -07:00
Chris Robinson
bedb89eb09
Avoid copying buffers for aligning overlapped windows
2021-01-30 15:11:47 -08:00
Chris Robinson
13c1d7efb7
Store buffer info in the queue entry
2021-01-24 02:07:39 -08:00
Chris Robinson
20f5e7c1fa
Avoid global constexpr arrays
2021-01-21 04:03:30 -08:00
Chris Robinson
f2b7a063ef
Add NEON-enhanced FIR loops for convolution and UHJ
2020-12-31 13:01:17 -08:00
Chris Robinson
aae115c35a
Return an intrusive_ptr from EffectStateFactory::create
2020-12-28 08:04:23 -08:00
Chris Robinson
62fa6a2277
Avoid including voice.h in alcontext.h
2020-12-27 16:14:11 -08:00
Chris Robinson
507cbfa027
Combine EffectState::deviceUpdate with setBuffer
2020-12-26 12:33:00 -08:00
Chris Robinson
54719de132
Avoid AL enums for the EffectSlot type
2020-12-26 09:21:30 -08:00
Chris Robinson
8a86ec8ac5
Add a crossover frequency field for the device
...
Used when upsampling low-order ambisonic signals to higher order. Rather than a
hardcoded 400hz, it ensures a consistent crossover point when an ambdec
configuration is used. It can also allow for an alsoft config option.
2020-12-26 05:23:08 -08:00
Chris Robinson
eaf209d2f1
Update a comment and type used in the convolution effect
2020-12-25 07:00:57 -08:00
Chris Robinson
204f7d8811
Rename From2D to FromACN2D
2020-12-25 06:40:13 -08:00
Chris Robinson
0d3b041aa2
Avoid AL types and enums in the effect processors
2020-12-24 22:49:55 -08:00
Chris Robinson
d578bc6cb1
Move logging to core
2020-12-17 02:47:03 -08:00
Chris Robinson
56af137ba0
Move fmt_traits to core
2020-12-13 21:12:03 -08:00
Chris Robinson
191fe888b4
Move ambidefs.h to core
2020-12-12 10:38:24 -08:00
Chris Robinson
bd08b9a5b5
Use constexpr variables instead of macros
2020-12-06 08:49:20 -08:00
Chris Robinson
4ee95dc296
Use a smaller FFT for convolution
2020-12-05 14:18:19 -08:00
Chris Robinson
50e33ce8f4
Change some macros into constexpr variables
2020-12-04 13:53:56 -08:00
Chris Robinson
69d55d7e03
Move the filters to core
2020-12-04 11:15:50 -08:00
Chris Robinson
8750810f5c
Change a couple macros into constexpr variables
2020-11-28 03:38:20 -08:00
Chris Robinson
32b9a46b39
Move AL EffectProp handling to separate sources
2020-11-25 13:55:29 -08:00
Chris Robinson
7e76770278
Avoid an unnecessary multiplier
2020-11-09 12:33:07 -08:00
Chris Robinson
3a58bac7bd
Fix pitch shifter bin count
2020-11-09 08:10:43 -08:00
Chris Robinson
54e4346f50
Simplify some pitch shifter scaling calculations
2020-11-08 07:59:14 -08:00
Chris Robinson
4e760bbecc
Use a separate structure for the active effect slot properties
2020-11-07 08:36:49 -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
d912b92a60
Support all buffer layouts for convolution
2020-09-22 08:09:42 -07:00
Chris Robinson
8ef242bce0
Don't use direct channels with convolution
...
It may come back as an effect property, but it's probably better to not try
forcing it by default.
2020-09-18 10:12:58 -07:00
Chris Robinson
07989a34dc
Allow higher-order B-Format buffers for convolution
...
Only the first-order channels will be used, but higher-order buffers will be
allowed.
2020-09-18 00:06:10 -07:00
Chris Robinson
e7d8e7eb3f
Avoid extraneous buffers and buffer clears
2020-09-17 21:34:26 -07:00
Chris Robinson
0974b6b47c
Use inline wrappers to clarify forward/inverse FFTs
2020-09-13 04:18:40 -07:00
Chris Robinson
ce0a45cbc7
Don't assume iterators are pointers
2020-09-09 14:02:02 -07:00
Chris Robinson
68a099ba35
Apply the first convolution segment in the time domain
...
This avoids an inherent delay from the effect, at the cost of higher CPU use.
Having a customizable user-specified delay (with said user ensuring a properly
trimmed impulse response) could help alleviate the cost since once the delay
exceeds the segment size, the initial FIR filter could be skipped.
2020-09-09 02:23:38 -07:00
Chris Robinson
f4a55cc8c2
Don't leave the negative frequencies as 0 for inverse FFT
2020-09-08 23:20:06 -07:00