aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Use a VoiceChange object to change the offset of a playing sourceChris Robinson2020-02-261-0/+26
|
* Rename the voice's PendingStop to PendingChangeChris Robinson2020-02-261-2/+2
|
* Simplify replaying a sourceChris Robinson2020-02-231-7/+28
|
* Avoid a single function call in a loopChris Robinson2020-02-211-68/+66
|
* Use an array of ALvoice pointers for the active voicesChris Robinson2020-02-211-13/+14
| | | | | | This allows growing the array atomically with the mixer since the ALvoice objects themselves don't move, and a new larger array of them can be swapped in without blocking the mixer.
* Handle playing and pausing with VoiceChangesChris Robinson2020-02-211-0/+13
|
* Asynchronously stop and rewind voicesChris Robinson2020-02-201-3/+2
|
* Asynchronously stop voices if its source is being deletedChris Robinson2020-02-201-0/+47
|
* Use a triplet struct array instead of separate arraysChris Robinson2020-02-091-22/+22
|
* Consistently use distant wavefronts for 0 distanceChris Robinson2020-02-081-6/+3
|
* Clear voice target gains earlierChris Robinson2020-02-081-11/+12
|
* Make sure stereo angles are kept in-range.Chris Robinson2020-01-311-3/+14
|
* Only sort active effect slots as neededChris Robinson2020-01-181-6/+18
|
* Simplify appending delayed samplesChris Robinson2020-01-141-6/+6
|
* Signal the event handler only once per updateChris Robinson2020-01-141-34/+40
|
* Make sure unassociated voices give back their update structsChris Robinson2020-01-081-25/+29
|
* Combine identical arraysChris Robinson2020-01-041-4/+1
|
* Handle downmixing for mono outputChris Robinson2019-12-291-2/+1
|
* Ignore direct channels for mono and B-Format buffersChris Robinson2019-12-291-1/+2
|
* Start a new extension for a new direct_channels stateChris Robinson2019-12-281-7/+9
| | | | | So existing behavior remains consistent for anything that needs it, and new behavior is opt-in.
* Use a span for the band-splitter inputChris Robinson2019-12-251-10/+9
|
* Fix a shadowed parameter warningChris Robinson2019-12-231-9/+10
|
* Avoid reading a struct field twiceChris Robinson2019-12-231-2/+2
|
* Handle padding between device sample framesChris Robinson2019-12-211-17/+17
| | | | | | | | 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.
* Use unique setters for biquad filter parametersChris Robinson2019-12-211-20/+13
| | | | One for whether a slope parameter is used, and one for bandwidth.
* Improve gain/hf/lf packing when processing voice updatesChris Robinson2019-12-211-96/+84
|
* Remix missing channels with direct channels enabledChris Robinson2019-12-191-1/+15
| | | | Instead of dropping them.
* Don't apply direct channels with mono outputChris Robinson2019-12-181-1/+1
|
* Don't process direct channel sources with attenuationChris Robinson2019-12-171-4/+4
|
* Update a comment since B-Format input isn't always FuMaChris Robinson2019-12-171-2/+2
|
* Correctly scale spatialized B-Format sourcesChris Robinson2019-12-171-2/+2
|
* Use normal panning for B-Format outputChris Robinson2019-12-171-1/+1
| | | | It can never work since it only uses auxiliary channel labels.
* Don't apply stereo panning with direct channels enabledChris Robinson2019-12-171-3/+6
|
* Handle the buffer's ambisonic propertiesChris Robinson2019-12-021-12/+24
|
* Make B-Format rotation more robustChris Robinson2019-12-011-34/+203
| | | | | This should now handle higher orders, and can be easily extended to non-FuMa layouts and scalings.
* Avoid static constexpr for arrays iterated over at run-timeChris Robinson2019-10-251-1/+1
|
* Use better types for some specific sizesChris Robinson2019-10-131-15/+15
|
* Use std::array instead of plain arrays in a couple placesChris Robinson2019-10-051-7/+2
|
* Move ALvoice from alu.h to a separate headerChris Robinson2019-10-021-7/+37
|
* Check MAX_RESAMPLER_PADDING properly to ensure it's large enoughChris Robinson2019-09-281-0/+4
|
* Combine two function calls into oneChris Robinson2019-09-281-42/+102
|
* Add "fast" variants for the bsinc resamplersChris Robinson2019-09-281-4/+4
| | | | | | 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.
* Implement a "fast" bsinc pathChris Robinson2019-09-261-2/+2
| | | | | | | | | | 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.
* Make the resampler type an enum classChris Robinson2019-09-221-4/+4
|
* Avoid an unnecessary multiplyChris Robinson2019-09-161-2/+2
|
* Remove the last uses of the system's str[n]casecmpChris Robinson2019-09-161-2/+5
|
* Avoid an unused variableChris Robinson2019-09-161-1/+1
|
* Clean up some more shadowing warningsChris Robinson2019-09-161-11/+10
|
* Fix some more implicit conversions noted by GCCChris Robinson2019-09-141-5/+5
|
* Make NumAuxSends unsignedChris Robinson2019-09-131-4/+4
|