Commit Graph

19 Commits

Author SHA1 Message Date
Chris Robinson
9f49f6cab0 Track the callback buffer base separately
Instead of recalculating it all the time, even for sources that don't use
callback buffers.
2023-02-18 17:16:00 -08:00
Chris Robinson
d0c28c652f Support IMA4 ADPCM as a mixing voice format 2023-02-14 02:32:07 -08:00
Chris Robinson
63f840d31f Separate decoding and mixing from resampling 2023-02-12 03:15:40 -08:00
Chris Robinson
d8361bdd6f Add the ability to start a voice at a particular time 2022-11-03 02:17:54 -07:00
Chris Robinson
5bbfc92ffe Handle negative voice positions
This allows a voice/source to start with a delay, more accurately than simply
waiting to call alSourcePlay. The delay is affected by pitch and velocity,
making it useful to simulate distant sounds that take time to be heard.
2022-11-02 00:14:21 -07:00
Chris Robinson
bb88035a96 Rename some variables to more clearly indicate their meaning 2022-10-28 20:07:45 -07:00
Chris Robinson
82c5b741e5 Use proper array sizes for more gains 2022-08-15 12:56:36 -07:00
Chris Robinson
250f162496 Parameterize the UHJ filter length 2022-08-07 13:09:12 -07:00
Chris Robinson
64cb0dc264 Use a member variable to specify the decoder padding 2022-05-17 02:28:57 -07:00
Chris Robinson
83238973ed Use virtual functions for the decoder 2022-05-14 21:23:03 -07:00
Chris Robinson
f1aa10ff0b Use a bitset instead of a plain uint for flags 2021-12-23 13:43:10 -08:00
Chris Robinson
c9537abfb1 Allocate voice properties in clusters 2021-12-17 04:07:00 -08:00
Chris Robinson
edea2b2a02 Rename Voice::mNumChannels for clarity 2021-12-15 14:28:26 -08:00
Chris Robinson
54c4bea487 Add source properties for Super Stereo
When playing a stereo format, enabling Super Stereo causes the source to behave
as a B-Format source, with a variable width control.
2021-12-15 02:01:22 -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
a97dba6f41 Improve the 2-channel UHJ response
This attempts to correct for the differences needed for 2-channel UHJ's shelf
filters given the output shelf filters. It's far from ideal, but better than
nothing.
2021-12-09 22:00:35 -08:00
Chris Robinson
8f3148ba53 Don't allocate full buffer lines in each voice
There's now effectively a 16-channel limit for buffers (as determined by the
number of elements in DeviceBase::mSampleData). Any more than that are
ignored when mixing.
2021-06-21 09:04:33 -07:00
Chris Robinson
7584458ecd Avoid mixing extraneous channels 2021-06-21 07:36:47 -07:00
Chris Robinson
ff380298e4 Move BufferStorage and Voice to core 2021-04-27 08:26:42 -07:00