I'm working on an iPhone app where I need to record audio, modify the audio to sound like a kazoo, and play it back. I don't need help with the coding aspect, but I do need help designing some sort of digital audio filter to produce a kazoo-like buzzing effect. I've tried ring modulators and reverb filters and nothing really seems to come close. I'm really in over my head and I could use any guidance anyone could give me.

I'm getting raw, linear PCM 32 bit floating point samples from the mic. After that, I can do pretty much anything to it. I was thinking of using some sort of low-pass filter to ignore higher-pitch sounds like "s" and then introducing some kind of noise.


A kazoo contains a resonator that vibrates at one (or perhaps a series of) fixed frequency, so you should look for an algorithm that will transform any incoming frequency to a fixed output frequency but otherwise match the input amplitude. This way any formants and transients will still be recognizable. A vocoder or phase vocoder algorithm might work.

You can often hear the original humming mixed with the sound of a real kazoo, so you'll probably want to mix the original sound with the effect for a more realistic result.

To test this (and, perhaps, to make this question & answer more relevant on this site), you should experiment with generic vocoder and pitch correction plugins in your favorite DAW-software before you start coding. That should give you a much better idea what algorithm to pick when it comes time to implement the iPhone app.

| improve this answer | |
  • First off, sorry I took so long to respond. I've been busy with other projects. Second - Thanks! I've done some research on vocoders and I think that may be the way to go. Typically vocoders use the voice for the "form" of the sound and some other generator for the pitch. I think for my needs, reversing the two may get the result I need. Use a kazoo buzz as the modulator, and use the pitch of the voice as the carrier. Does that sound reasonable? – Joe Ibanez Mar 15 '11 at 20:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy