[SDL] Google SoC proposal: Real Time Pitch Shifter

Ryan C. Gordon icculus at icculus.org
Fri Mar 21 12:31:56 PDT 2008


>  Well, if you have any tips on how I could write a nice proposal it would
> be very nice!

I don't know the formal process for applying, but here's the gist of 
that project:

SDL_mixer has what we call an "effects" API...basically there is a 
callback that can modify a playing sound before it's mixed into the 
output buffer, or modify the output buffer itself right before it goes 
to the hardware.

Applications can supply this callback, but there are a few built-in 
callbacks that can be exploited by the application, too.

The built-in effects that are there are relatively simple: simple 2D 
panning and attenuation (and "positional" audio which is just basic 
panning and attenuation combined), and left/right reversal of stereo data.

Please read the comments in SDL_mixer.h, where it says "Special Effects 
API" ...

 
http://www.libsdl.org/cgi/viewvc.cgi/trunk/SDL_mixer/SDL_mixer.h?revision=3571&content-type=text%2Fplain


Mix_SetPanning(), Mix_SetDistance(), and Mix_SetReverseStereo() are 
examples of built-in effects. We'd be looking for a new one, like 
Mix_SetPitch().

Part of the dilemma is that we would need the pitch shifting effect to 
not change the size of the data, so you can't just do a resample. You're 
probably going to have to bust out some FFTs.

--ryan.



More information about the SDL mailing list