I’ve just released my first Android app, VOLOCO, to the Android Market. The app lets users apply a variety of effects, including automatic tuning, pitch-shifting, and vocoding to speech sounds in real time. One particular effect, voice-controlled vocoding, allows the user to control the pitch of a synthesizer tone with his or her voice, and then vocodes the synthesizer and speech signals. Typically, vocoding requires playing a synth with a keyboard while singing. Voice-controlled vocoding is an easier and more expressive way to achieve the robot voice we’ve come to know and love from Kraftwerk and an array of pop singers over the decades. And as far as I know, this is the first software implementation of voice-controlled vocoding. There is a hardware device called HardTune that will do the same for $300. Voloco is ad-supported and free.
I would be grateful for any feedback readers could offer about Voloco–what you like, what you don’t, what features you’d like to see in future versions, and of course, bug reports. The app is computationally intensive, and requires Android 2.2, aka Froyo. If you like the app, please share the robot love in a review on the Android Market. If something goes wrong, email me.
A few tips and instructions:
- You need to use headphones or an external speaker. (Voloco won’t output sound through a phone’s earpiece). Although using an external speaker is a little extra work because you need to plug a mini-jack to RCA cable into your phone, you can get some cool reverberation effects going with the speaker. Try it if you can!
- In the touchscreen-control modes, you switch scale and key via the Menu.
- Recording is also controlled by via the Menu.
- The mic on the headphones that comes with most devices is pretty bad. You’ll get better results by using a pair of normal headphones (or an external speaker) and the mic on the phone.
- Keep the mic close to your mouth but avoid breathing directly on it, which will cause distortion.
One topic deserves special treatment: latency. The Android operating system imposes a ridiculous amount of latency on a real-time audio processing–about 250 milliseconds on my Nexus One. On top of this Voloco adds about 23 msecs. The delay makes real-time performance difficult, to say the least. If you want to automatically tune a vocal performance, I would suggest not listening to yourself while you sing. Alternatively, you can work with the delay by rhythmically syncing your performance to it, or you could just go for low, growling, vocoded washes of sound, which are fun. Google claims that latency improvements are forthcoming in Gingerbread, but it’s uncertain when they’ll arrive.
What does this have to do with Jazari? At some point, probably after I’ve resumed serious drinking, I’m going to start using the voice processing algorithms behind Voloco in my live performances. Chances are, you will never hear my unaltered voice singing into a microphone, ever. But if I could control a vocoder with the pitch of my (retuned) voice, and then use DSP and generative algorithms to resample the output and create a densely-woven fugue of robot voices, that’s what I’m going to do.