Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
audio: Replaced the resampler. Again.
This time it's using real math from a real whitepaper instead of my previous amateur, fast-but-low-quality attempt. The new resampler does "bandlimited interpolation," as described here: https://ccrma.stanford.edu/~jos/resample/ The output appears to sound cleaner, especially at high frequencies, and of course works with non-power-of-two rate conversions. There are some obvious optimizations to be done to this still, and there is other fallout: this doesn't resample a buffer in-place, the 2-channels-Sint16 fast path is gone because this resampler does a _lot_ of floating point math. There is a nasty hack to make it work with SDL_AudioCVT. It's possible these issues are solvable, but they aren't solved as of yet. Still, I hope this effort is slouching in the right direction.
- Loading branch information
Showing
with
400 additions
and 264 deletions.
- +2 −0 src/audio/SDL_audio.c
- +5 −0 src/audio/SDL_audio_c.h
- +183 −264 src/audio/SDL_audiocvt.c
- +210 −0 src/audio/kaiser_window.pl
Oops, something went wrong.