Google SoC proposal: Real Time Pitch Shifter

Hi!
I was an enthusiastic user of SDL lib for quite some time in the past, and
never could help in the development of this great idea. But this year you
came with a great project suggestion that called my attention and fits my
profile! xD
I’m graduating in computer engineering at Unicamp (Brazil) in the end of
this semester and studied quite a bit about Signal Analysis and DSP during
my course. I wish to know a bit more about this idea to start searching for
suitable algorithms to do the job. I also have extensive experience in C
programming, currently working in the development of device drivers
(Linux/Windows/FreeBSD) for custom hardware made by a small company here in
Campinas - SP.
Well, if you have any tips on how I could write a nice proposal it would
be very nice!

Thanks!–
Thiago ‘bolaum’ Borges Abdnur

“Trust no one…”

  • Deep Throat (The X-Files)

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.

Hi Ryan!
I finished my application today. Can I send it to you? May you could tell me
what can I do to improve it. I dont really know if I covered all topics that
you want to know about.

Thanks very muchOn Fri, Mar 21, 2008 at 4:31 PM, Ryan C. Gordon wrote:

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.


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


Thiago ‘bolaum’ Borges Abdnur

“Trust no one…”

  • Deep Throat (The X-Files)

I finished my application today. Can I send it to you? May you could
tell me what can I do to improve it. I dont really know if I covered all
topics that you want to know about.

If mentors are allowed to see these ahead of time, then, sure, send it
to me.

–ryan.