aboutsummaryrefslogtreecommitdiffstats
path: root/core/bsinc_tables.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Avoid making BSincPointsMax publicChris Robinson2021-03-011-12/+30
|
* Avoid cutting off the last bsinc filter coefficientChris Robinson2021-03-011-3/+3
|
* Avoiding cutting all bsinc resampler output at scale 0Chris Robinson2021-02-241-7/+6
| | | | | | | | | | | | This is mostly for the SampleConverter, used by some capture backends. When recording at really low rates, like 5512hz, with a device capturing at a higher rate like 44100hz or 48000hz, it hits the filter's downscaling limit and produces pure silence. In such cases, it's better to just accept some aliasing noise so that the app will still get some recognizable audio. The alternative would be to scale the desired rate by 2x, 3x, etc until it's above the bsinc limit, then take every 2nd, 3rd, etc sample of the result as if by an extra simpler resampler pass.
* Use a more appropriate epsilon for Sinc()Chris Robinson2021-02-241-1/+2
|
* Avoid an unnecessary loop iterationChris Robinson2021-02-231-2/+3
|
* Adjust the bsinc filter table packingChris Robinson2021-02-231-32/+20
| | | | | | | | Now each scale's filter and phase delta are interleaved for each phase index, followed by the scale and scale+phase delta for each phase index. This ensures no holes in the filter coefficients for the fast bsinc resampler for a given run, while keeping the scale deltas in the same vicinity for the non-fast bsinc resampler.
* Move the bsinc tables to coreChris Robinson2020-12-041-0/+288