aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove a [[likely]] that confuses some versions of GCCChris Robinson2023-02-281-1/+1
|
* Add aLaw formats to AL_SOFT_UHJ_exChris Robinson2023-02-272-4/+10
|
* Add AL_SOFT_UHJ_ex to the extension listChris Robinson2023-02-264-10/+17
|
* Add formats for UHJ with muLaw, and ADPCM for 2-channel UHJChris Robinson2023-02-262-5/+20
| | | | | | | | | | ADPCM doesn't seem to be well defined for more than two channels, even though there doesn't seem to be any issue with simply increasing the channel step over interleaved data (ffmpeg refuses to create IMA4 or MSADPCM files with more than two channels, and its decoder behaves oddly different when channels > 2). So IMA4 and MSADPCM can only safely handle 2-channel UHJ. There's no problem with muLaw supporting 2-, 3-, or 4-channel UHJ though.
* Set the C/C++ standard version properties manuallyChris Robinson2023-02-252-13/+34
| | | | | Setting it globally interferes with Oboe trying to use C++17 (when its built as a sub-project), which we don't require yet.
* Clamp the MS ADPCM block predictor to the correct sizeChris Robinson2023-02-241-4/+4
|
* Don't start with fading for negative offsetsChris Robinson2023-02-181-2/+4
|
* Track the callback buffer base separatelyChris Robinson2023-02-183-8/+7
| | | | | Instead of recalculating it all the time, even for sources that don't use callback buffers.
* Support float and ADPCM formats in alstreamChris Robinson2023-02-171-19/+210
|
* Cleanup the examples' loading functions slightlyChris Robinson2023-02-172-59/+59
|
* Handle Int16 and ADPCM formats in alstreamcbChris Robinson2023-02-161-25/+181
|
* Set the proper block align for callback buffersChris Robinson2023-02-161-1/+1
|
* Support loading as float or ADPCM in alplayChris Robinson2023-02-161-12/+164
|
* Decode IMA4 blocks with fewer loopsChris Robinson2023-02-161-35/+30
| | | | | Rather than decoding samples in chunks of 8, calculate the read offset from an incrementing index.
* Combine and simplify some loopsChris Robinson2023-02-151-24/+14
|
* Skip ADPCM samples in a separate loop before writingChris Robinson2023-02-151-59/+83
|
* Rename some variables for clarityChris Robinson2023-02-151-19/+19
|
* Remove unused decoder functionsChris Robinson2023-02-141-202/+2
|
* Add comments describing the MSADPCM decodeChris Robinson2023-02-141-0/+13
|
* Fix write offset for loading FmtIMA4 samplesChris Robinson2023-02-141-2/+2
|
* Don't convert MS ADPCM on loadChris Robinson2023-02-142-37/+7
|
* Support MSADPCM samples in the mixerChris Robinson2023-02-145-1/+113
|
* Don't convert IMA4 samples on loadChris Robinson2023-02-142-100/+98
|
* Support IMA4 ADPCM as a mixing voice formatChris Robinson2023-02-1412-65/+215
|
* Simplify copying the all-pass filter stateChris Robinson2023-02-132-15/+7
|
* Pass a boolean for the decoder to update its stateChris Robinson2023-02-133-51/+57
|
* Explicitly cast a constexpr value to passify MSVCChris Robinson2023-02-121-3/+3
|
* Use to_address to pass a pointer-like iterator as a real pointerChris Robinson2023-02-121-4/+5
|
* The decoders don't need space for resamplingChris Robinson2023-02-122-16/+13
|
* Separate decoding and mixing from resamplingChris Robinson2023-02-125-295/+314
|
* Check a string for NULL before calling strtoullChris Robinson2023-02-111-8/+9
|
* Explicitly cast a size_t to doubleChris Robinson2023-02-111-1/+1
|
* Always write samples to the destination when resamplingChris Robinson2023-02-118-72/+53
|
* Check for the voice being beyond the loop end point earlierChris Robinson2023-02-111-5/+11
|
* Don't require samplesToDo > forwardSamples for decodersChris Robinson2023-02-112-13/+13
|
* Assume 'frac' is less than 1Chris Robinson2023-02-105-0/+15
|
* Use a span to hold the cubic table referenceChris Robinson2023-02-103-3/+4
|
* Rename some variables for consistencyChris Robinson2023-02-093-23/+24
|
* Properly mark the cubic coefficients and deltas as restrictChris Robinson2023-02-091-10/+9
|
* Allow finding index file when built as a submodule (#819)Aoife Fey2023-02-091-2/+13
|
* Check for the existence of the file that's depended onChris Robinson2023-02-081-1/+1
|
* Use better panning positions for the frequency shifter effectChris Robinson2023-02-081-2/+7
|
* Use better panning positions for the chorus effectChris Robinson2023-02-081-56/+61
| | | | Also avoid putting larger buffers on the stack.
* Make a table constexprChris Robinson2023-02-071-6/+5
|
* Rename the bsinc table variablesChris Robinson2023-02-074-7/+9
|
* Use an interpolated FIR filter for cubic resamplingChris Robinson2023-02-069-22/+227
| | | | | | Similar to how the bsinc filters work, but optimized for 4-point filtering. At least the SSE version is notably faster than calculating the coefficients in real time.
* Avoid using auto for lambda parametersChris Robinson2023-02-065-9/+9
|
* Improve performance calculating reverb panningChris Robinson2023-02-051-10/+11
|
* Use a cubic resampler for the reverb modulator offsetChris Robinson2023-02-051-17/+61
|
* Don't set an EAX version by default for sourcesChris Robinson2023-02-053-43/+10
| | | | | | | | | Presuming sources start in a neutral state for EAX effects, that is they're not affected by EAX by default, there's no need to set an active EAX state for one until the app sets an EAX property on it. Since the deferred and immediate properties are stored independently per-version, they can always be set to defaults, and simply not have a particular version committed as active until the app sets an EAX property, which will inherently set the active version.