Chris Robinson
1ce310c6d1
Make some more channel counts unsigned
2019-06-05 19:26:54 -07:00
Chris Robinson
410a5ca621
Make RealMixParams channel count unsigned
2019-06-05 18:54:17 -07:00
Chris Robinson
4522a51ea2
Don't log the function or prefix
...
It's ultimately unnecessary since the message is an indicator about where it
was logged from. The message itself is generally more important than where it
was from, too.
2019-06-04 01:37:36 -07:00
Chris Robinson
c76fb714cc
Restructure voice data members
...
This should improve access patters by packing each buffer channel's data
together, which is more inline with its use.
2019-06-03 22:24:26 -07:00
Chris Robinson
dbdf516dbf
Use a span for the voice's buffer references
2019-05-29 23:06:24 -07:00
Chris Robinson
893ffe9a84
Use span<FloatBufferLine> for MixSamples
2019-05-29 21:58:37 -07:00
Chris Robinson
8af7b4c6e0
Use FloatBufferLine and span<> for MixRowSamples
2019-05-29 20:45:33 -07:00
Chris Robinson
ba449d2b08
Pass a span to MixDirectHrtf instead of a pointer+size
2019-05-29 17:32:16 -07:00
Chris Robinson
b923eb1879
Use FloatBufferLine with the HRTF mixer functions
2019-05-28 22:44:50 -07:00
Chris Robinson
c80ee5b701
Use std::array for most mixing buffer arrays
2019-05-28 16:22:36 -07:00
Chris Robinson
f57fedec7f
Get rid of the COUNTOF macro
2019-05-26 21:28:51 -07:00
Chris Robinson
219f818b16
Use al::byte for ADPCM decoders
2019-05-24 13:32:20 -07:00
Chris Robinson
674ca3cf24
Move a couple table definitions to where they're used
2019-05-24 12:06:52 -07:00
Chris Robinson
e90a6beaa2
Remove an unnecessary struct member
2019-05-24 06:25:18 -07:00
Chris Robinson
9c63bbd6ce
Use raw bytes for the buffer data
2019-05-24 06:12:20 -07:00
Chris Robinson
515a201e30
Restructure some voice fields
2019-05-17 20:39:28 -07:00
Chris Robinson
b502bbaf5c
Change the default period size to 20ms
2019-04-26 18:56:54 -07:00
Chris Robinson
f23ff0394d
Specify the buffer size as itself instead of the period count
...
Certain backends don't need a buffer size to be a strict multiple of the period
count, which allows a little more flexibility. The period/update size simply
acts as the minimum request, which helps control CPU load by determining how
often parameter and other pre-mixing updates are processed.
2019-04-26 15:58:25 -07:00
Chris Robinson
e66632b301
Avoid directly using CalcAmbiCoeffs
2019-04-02 20:23:19 -07:00
Chris Robinson
d04f9326c9
Change RealMixParams::ChannelName to better reflect its use
2019-04-02 16:06:45 -07:00
Chris Robinson
8781a32df5
Copy the voice's ambisonic upsampler state when reallocating
2019-04-01 17:27:31 -07:00
Chris Robinson
d8c76ba0c0
Remove a couple unused member variables
2019-03-30 23:41:47 -07:00
Chris Robinson
cc91490b61
Use a temporary buffer for HRTF filter accumulation
...
Similar to the history buffer, to avoid using the state buffer as a ring
buffer.
2019-03-29 11:33:04 -07:00
Chris Robinson
dfb81ff42d
Avoid using the HRTF history buffer as a ring buffer
...
The HRTF mixers now get a full input buffer with the history prepended, so the
delay offsets just need to account for the start point and read forward for
each sample.
2019-03-28 09:34:31 -07:00
Chris Robinson
2c37d4fae1
Move an enum to a more appropriate header
2019-03-26 10:08:26 -07:00
Chris Robinson
819ec8a653
Rename and move ALeffectProps
2019-03-22 22:48:12 -07:00
Chris Robinson
3a6e741e90
Use MixParams for the wet buffers
2019-03-22 19:25:55 -07:00
Chris Robinson
92adfaebce
Fix a comment typo
2019-03-22 18:37:47 -07:00
Chris Robinson
ea8b02dead
Pass ALeffectProps directly to the get/setParam* methods
2019-03-22 16:04:13 -07:00
Chris Robinson
e7e585f65c
Use the effect state factory to set the default effect props
2019-03-22 15:00:37 -07:00
Chris Robinson
f951f4a66b
Implement getDefaultProps for effect state factories
2019-03-22 12:58:24 -07:00
Chris Robinson
935f386982
Use a separate EffectStateFactory for standard reverb
2019-03-22 11:57:32 -07:00
Chris Robinson
9790135127
Add a new EffectStateFactory method to get the default properties
2019-03-22 11:52:55 -07:00
Chris Robinson
90465e9124
Use a sorted vector for devices instead of a linked list
2019-03-19 15:56:30 -07:00
Chris Robinson
9695952c8d
Rename DevProbe enum names
2019-03-19 00:24:54 -07:00
Chris Robinson
d31514f8be
Move some inline functions from alMain.h to alnumeric.h
2019-03-18 22:06:01 -07:00
Chris Robinson
3e816de4fb
Use SSE intrinsics in a few more places
2019-03-18 20:58:48 -07:00
Chris Robinson
30a7c6d86f
Pass the voice state as a parameter instead of reloading it
2019-03-11 20:00:14 -07:00
Chris Robinson
2c67ab0d2c
Rename ALvoice fields for consistency
2019-03-10 16:29:06 -07:00
Chris Robinson
030b24a40d
Improve handling of voice's AmbiScales for upsampling
2019-03-10 15:46:46 -07:00
Chris Robinson
0d295cf811
Don't directly use a buffer for updating source parameters
2019-03-10 11:52:39 -07:00
Chris Robinson
87479b4b32
Play dummy samples and force a fade out on stopping voices
2019-03-09 18:34:00 -08:00
Chris Robinson
ef0f335132
Add a Stopping state for voices
...
This currently doesn't do much, except have the mixer progress it to Stopped.
It's valid to have without a source or buffers, and in the future will allow
fading out when a source is paused or stopped.
2019-03-09 16:48:07 -08:00
Chris Robinson
2d14de3fb0
Use more specific names for temp buffer storage
2019-03-02 23:41:26 -08:00
Chris Robinson
cadff0f6c1
Reduce BUFFERSIZE to match the default period size
...
Also adds a bit more space to the temp source data buffer, to avoid needing to
loop on matching sample rates.
2019-02-24 16:13:51 -08:00
Chris Robinson
317206e8f3
Remove the FOAOut mixing buffer and associated post-processes
2019-02-22 22:35:37 -08:00
Chris Robinson
45378fe687
Remove the unused FOAOut EffectTarget
2019-02-22 22:03:04 -08:00
Chris Robinson
169a11dffc
Add some preliminary fields for mix-time ambisonic upsampling
2019-02-21 04:57:56 -08:00
Chris Robinson
8ac2d34706
Allow processing some effects in higher order ambisonics
...
Reverb notably is still only first-order (any higher order channels are
dropped, and it writes to FOAOut). But others, like the equalizer, work on all
available channels.
2019-02-21 04:23:01 -08:00
Chris Robinson
8d2d7c63da
Get rid of the MAX_EFFECT_CHANNELS macro
2019-02-21 03:52:54 -08:00