How to pitch-shift audio as a sine wave?

Hello all! I’m a complete newb to this sort of thing and I was wondering how one might take a soundclip (say, someone talking) and shift the pitch of the soundclip as a function of a sine wave. What I mean by this is that I would like the amount the pitch is shifted to be a non-linear/monotonic function of time: sine(t*k)*c, where t=time, and k,c=constants.

I know absolutely next to nothing about this sort of thing, but I thought that maybe this Nyquist stuff in Audacity could let me do it?

Sounds like you want a “vibrato” effect (frequency modulation with a low frequency modulator).
If the overall duration is fairly short you can probably use this plugin:
If you need it for long durations then you may be able to use that code as a starting point for a new plugin.

“Vibrato” is exactly the term I’m looking for, thanks! I do need it for longer durations–at least the length of the average sentence. Why can’t the code you linked to be applied to longer durations?


As it says in the text on that page, the sound quality gradually deteriorates. It may be good enough for one sentence at a time - it’s a long time since I wrote that so I don’t recall exactly. Give it a go and see what happens.