aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Release 1.23.0Chris Robinson2023-02-033-3/+55
|
* Make sure a variable is set before useChris Robinson2023-01-311-3/+3
|
* Try -Wno-c++20-extensions if -Wno-c++20-attribute-extensions failsChris Robinson2023-01-311-0/+5
|
* Don't try to use std::pointer_traits::to_addressChris Robinson2023-01-301-21/+2
|
* Try to fix has_to_addressChris Robinson2023-01-301-3/+7
|
* Distinguish a couple log messagesChris Robinson2023-01-301-3/+3
| | | | And downgrade an ERR to a WARN
* Don't pass an unnecessarily large alignment to allocator::rebindChris Robinson2023-01-301-2/+4
|
* Use std::pointer_traits::to_address when availableChris Robinson2023-01-291-1/+16
|
* Change the IS_VALID_CONTAINER macro to a constexpr boolChris Robinson2023-01-291-11/+11
|
* Avoid using to_address on an end iteratorChris Robinson2023-01-291-4/+3
|
* Capitalization and puctuationChris Robinson2023-01-291-2/+2
|
* Slight clarification for the readme instructionsChris Robinson2023-01-281-1/+1
|
* Add a comment to check into an out-of-range value laterChris Robinson2023-01-281-1/+5
|
* Clamp the biquad filter gain value to 0.00001Chris Robinson2023-01-281-1/+1
| | | | | To actually prevent a potential divide-by-zero when the gain and reference frequency are 0, instead of asserting.
* Update the readmeChris Robinson2023-01-281-7/+11
| | | | | | | | | | | Travis CI has been down for years, so replace the build badge with GitHub Actions' badge. Update the build instructions to note CMake GUIs as an alternative to the command line, and note various IDE's potentially supporting CMake projects directly. Finally, update the list of expected backends for Linux and Windows.
* Change the default resampler to cubicChris Robinson2023-01-273-3/+3
| | | | | This has notably better quality than linear, while still being faster than bsinc.
* Combine multiple similar functions into oneChris Robinson2023-01-261-124/+16
|
* Transpose the ambisonic rotation matrix and helper coefficientsChris Robinson2023-01-261-39/+32
|
* Transpose the ambisonic voice mixing matrixChris Robinson2023-01-252-34/+42
| | | | | To more efficiently prepare the panning coefficients. Also avoid making a stack copy of the matrix to reuse as the target.
* Use explicit arrays for the remix table target mixesChris Robinson2023-01-241-16/+53
| | | | Seems inline initializer lists become garbage when stored in a span.
* Use the object serial ID from PipeWire when availableChris Robinson2023-01-241-21/+47
| | | | | | | | | | | Using the node ID as a target is deprecated in newer versions of PipeWire. The serial ID is a monotonic 64-bit integer ID, incremeneted for every object created, so is guaranteed to always refer to the same target (until it wraps around, which I suppose isn't expected/allowed to happen), compared to the 32-bit node ID which I guess allows reuse. We could instead use the target node's name instead of the serial ID, but an integer is nicer to manage than a string.
* Increase the default mhr truncation size to 64Chris Robinson2023-01-231-1/+1
| | | | To match the default data set.
* Replace a couple more pointer+count with a spanChris Robinson2023-01-234-148/+124
|
* Use a vector of arrays for a multi-dimensional arrayChris Robinson2023-01-234-12/+16
|
* Use a span instead of pointer+countChris Robinson2023-01-234-17/+19
|
* Remove a redundant struct memberChris Robinson2023-01-234-37/+34
|
* Remove some unused membersChris Robinson2023-01-232-4/+0
|
* Don't force an update if there is no aux slot being replacedChris Robinson2023-01-201-4/+7
| | | | | A null effect slot can't be deleted, so we don't need to make sure it's set to change before returning.
* Increase the pitch shifter oversample factor to 8Chris Robinson2023-01-191-38/+37
| | | | | | And use 32-bit float processing. Float precision doesn't seem to be detrimental to the overall quality, while 8x oversampling seems to help against the harmonics.
* Minor code refactor for the frequency shifter effectChris Robinson2023-01-191-47/+50
|
* Improve the output scaling of the pitch shifterChris Robinson2023-01-191-1/+1
| | | | | | For tones than land exactly on a frequency bin, which are subject to the least amount of error when not adjusted, this produces a level that more closely matches the original input.
* Don't return a large-ish array on the stackChris Robinson2023-01-191-15/+17
|
* Slightly improve phase wrapping in the pitch shifterChris Robinson2023-01-191-10/+11
|
* Limit pitch shifter pitch between 0.5 and 2.Chris Robinson2023-01-181-1/+1
| | | | | | The current algorithm isn't designed to go beyond that. The course tuning property is limited to that range as well, though the fine tuning property could potentially extend it out by half a semitone.