Whistle Synth

Control a synthesizer by whistling. Optimized for responsiveness, with 1-2ms latency.


Playing bass by singing falsetto:
A natural question would be, why not use existing pitch-shifting software? I experimented with several different products, and couldn't find one that was sufficiently low-latency. I decided to write my own software optimized specifically for whistling. This allows us to take advantage of ways that whistling is unusual (nearly a pure sine wave, very high pitched) to make something that recognizes it and processes it very quickly (more, more). This also allows synthesizing other voices, instead of pure pitch shifting.

The version that's most up to date is in C (github) and runs on a Raspberry Pi. I also have a version that runs in the browser if you want to try it out quickly, but latency can be high depending on your platform: whistle synth in the browser. Blog posts: