Work in progress on the Open Theremin

Open Theremin is an Arduino shield that produces, at relatively low cost, a great quality Theremin with lots of room for digital play as well as a nice analog sound if you want it. I’ve been messing around with it since October, though I wasn’t practising as much while I was in Japan. Here’s me playing something just with an unmodified analog signal back in the Winter:

Trying a #Theremin version of Chandelier. Almost hitting the notes!

A post shared by Zoyander Street (@zoyander) on

So, a fairly charming instrument on its own without doing anything fancy to it. However, one of the exciting things about Open Theremin is its hackability. It should be fairly modifiable – you can easily program in new wavetables for example to get a custom timbre, and a fantastic MIDI version of the firmware has been created. But also, it seems to me that you should be able to get the Arduino to send a very simple serial signal to another Arduino-type thing, without needing to worry about all of the specificities of MIDI, which is built on the assumption that every musical instrument can be conceptualised as in some way like a piano and really takes a lot of cajoling to handle a Theremin’s fluidity. However, all I get when I try to do that is this:

Never mind, eh? Another thing I’ve learned to do on this journey is use the Teensy 3.6 with its audio shield as an effects box for the Theremin’s analog signal, which is pretty satisfying:

Recently the MIDI capabilities of the Open Theremin, which were already excellent, have been expanded significantly by Vincent Dhamelincourt, requiring me to add some precision to my control of the bottom two knobs, which can now modify a total of eight different parameters:

This huge progress made on the Open Theremin’s MIDI capabilities make it no longer quite as interesting to attempt to interact with the Arduino directly, and much more interesting to see how it might work in combination with another toy I’ve been playing with – the music live-coding software TidalCycles and Supercollider. So far I’m still working on writing a program for Supercollider so that it interprets the MIDI signal in a Theremin-friendly way: