[openal] Questions about OpenAL Soft's Resampler

Daniel Gibson metalcaedes at gmail.com
Tue Nov 7 14:41:50 EST 2017

Hi Ethan,

Have you looked at libsamplerate: 
http://www.mega-nerd.com/SRC/api_full.html ?
Apparently you can change the samplerate (or ratio between source and 
dest rate) during conversion.
Also, since 2016 it's released under BSD license.


On 07.11.2017 20:10, Ethan Lee wrote:
> Hey there!
> I'm currently working on a reimplementation of Microsoft's XACT runtime, 
> called FACT...
> https://github.com/flibitijibibo/FACT
> ... and one of the things we have to deal with is resampling Wave data, 
> similar to how OpenAL has to resample buffers to match the output 
> frequency. Since we're using SDL for audio output I gave SDL's own 
> resampler a try, and it actually works for basic output...
> https://github.com/flibitijibibo/FACT/blob/5f11030964a735c05f3ff7507919e4ad2879539a/src/FACT_platform_sdl2.c#L97 
> ... but I also have to factor in pitch changes, which SDL_AudioStream 
> doesn't account for (it only expects one input frequency for the 
> duration of its existence).
> Normally I'd just use OpenAL for this sort of thing, but part of FACT's 
> job is mimicking XAudio2 accurately, which unfortunately makes the two 
> incompatible in really subtle ways (and fixing them would mean ripping 
> up the library for what is essentially one exact use case and nothing 
> else). I'd still like to use OpenAL's ideas though, but to keep the 
> permissive license intact I'd have to, at most, look at papers/documents 
> that explain how it's done, rather than just using the code directly.
> TL;DR: How does OpenAL's resampler work with adjustable pitch changes, 
> and are there any resources online that were used as references for the 
> resampler? I'm not too concerned about the resampling function itself 
> (we'll probably just use a linear resampler), but I'm a lot more 
> concerned about stuff like weird step sizes, fractions of samples, 
> padding buffer sizes (for both resampling and possibly for output...?), 
> handling wildly fluctuating pitches, little details like that.
> -Ethan
> _______________________________________________
> openal mailing list
> openal at openal.org
> http://openal.org/mailman/listinfo/openal

More information about the openal mailing list