I have my own fork of SDL Mixer library I have extended with additional functionality like more convenient functions, ability to control MIDI playback, ability to get seek position, full song length, loop points if they are available, more codecs like GME and extra MIDI synths, etc.
One of the features I working is the ability to change the tempo of the music. It’s already made for MIDI, GME, and tracker music (with using of libXMP). However, I looking for a solution to change the tempo of PCM-based streams without affecting the pitch. I have found the SBSMS library used by Audacity and some internal code that is also used to do this.
Is this good for real-time playback? Does this require a bigger chunk buffer size for good sound quality or it would work with lower latency streaming? Is here some similar solution with C-API? (otherwise, I’ll implement a C binding layer by myself)
Or there are some simpler algorithms to process this and they are can work in real-time without dangerous to get a choppy playback?