aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alu.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Clean up implicit conversions in alu.cppChris Robinson2019-09-131-44/+36
|
* Clean up sample converter implicit conversionsChris Robinson2019-09-121-2/+2
|
* Use unsigned channel indicesChris Robinson2019-09-121-19/+18
|
* Use a normal vector for the voices arrayChris Robinson2019-09-041-5/+2
|
* Increment the mix count during disconnectChris Robinson2019-09-041-1/+3
| | | | | So attempts to get the current playback offset behave correctly while disconnecting.
* Avoid accumulating a temporaryChris Robinson2019-09-011-2/+2
|
* Make MixVoice a member functionChris Robinson2019-08-311-5/+1
|
* Use a span for effect state inputChris Robinson2019-08-261-2/+1
|
* Pass unsigned sample count to aluMixDataChris Robinson2019-08-251-11/+11
|
* Use size_t for the post-process sample lengthChris Robinson2019-08-251-5/+4
|
* Use size_t for HrtfMixer functions' buffer sizeChris Robinson2019-08-201-0/+1
|
* Move update pointers to the containers they updateChris Robinson2019-08-131-2/+2
|
* Add methods to get env vars as an optionalChris Robinson2019-08-121-6/+11
|
* Make the post-process methods member functionsChris Robinson2019-08-071-24/+20
|
* Update some includesChris Robinson2019-08-051-1/+1
|
* Move the meters per unit property to the listenerChris Robinson2019-08-051-2/+1
|
* Remove the ReverbSpeedOfSound hackChris Robinson2019-08-051-79/+55
| | | | | | | No other effect depends on context or listener properties, so reverb being the only exception for speed of sound and meters per unit was putting extra work on the effect engine for no real reason. Especially since the reverb decay time should be the time actual time to decay irrespective of other settings.
* Modify LIKELY and UNLIKELY to not need extra parenthesisChris Robinson2019-08-041-6/+6
|
* Avoid reloading the voices array when processingChris Robinson2019-08-021-12/+13
|
* Use a smart pointer for holding the context's deviceChris Robinson2019-08-011-3/+3
|
* Add a common base for auto-deleting ref-counted objectsChris Robinson2019-08-011-17/+7
| | | | Which will also work as the basis for a future intrusive_ptr
* Properly prefix ALCcontext membersChris Robinson2019-07-301-30/+30
|
* Rename al/* sources to avoid camel-caseChris Robinson2019-07-291-5/+5
|