How to make a Theremin

From Hackers and Designers
Jump to navigation Jump to search

By Andrey Smirnov


To create your own theremin you have two options:


This version only uses the sensor board (recognisable by its 6 pins on one side, and 2 on the opposite side). Connect it to power (9 volts battery) and to the audio input of your laptop. Then you only need to load a PureData or MaxMSP patch file on your laptop.


In this scenario you attach the Arduino-compatible sensor board (recognisable by the 8 pins sticking out the side, and 2+4 pins sticking up) to your Arduino board. In this case you have to load a file onto your Arduino, and on your laptop open the patches for PureData or MaxMSP.


Why would you want to go for the Advanced version?

  • The advanced version has less lag than the version that uses the audioport. It responds to your hand a bit quicker.
  • The advanced version allows you to add multiple channels to the Arduino version.
  • The advanced version also allows you to easily explore MIDI-output, and more.

Different available theremins

In these folders you can find files for different projects. Load the file you’re interested in into PureData or MaxMSP. If you are using an Arduino, also load the corresponding file onto your Arduino.

USB Grains 1 & 2 For scratching sound files. You can freeze in any point of the selected sound file by moving your hand to a certain distance from the theremin.

USB Inst1x2 A basic patch to explore multichannel installations. Explore this file if you want to learn how to add even more channels.

USB Scaleplayer To play scales in different tunes. Instead of a continuous change in pitch of the sound, it plays only separate notes. It’s like playing a piano with one finger, or Auto-tune for your theremin.

USB Scaleplayer x2 Similar like the patch above, but for 2 inputs. It’s like playing a piano with 2 fingers.

USB SFPLayer Soundfile player. Load up multiple sound files, and then skip through the different files by varying the distance to the theremin.

USB th02_demo3 An experimental combination of different patches. It plays fixed pitches, like a piano.

USB Theremin 0 This is the best patch to start with. It’s single channel

USB Theremin x2 This is like the patch above, but supports two channels, so pitch and frequency can be manipulated. This patch is most like the “classic” theremin you see in the media.

USB Theremin000_UNO Similar to the Theremin 0 patch, but is used for testing. The difference is that the signal isn’t smoothed, so the sound is rougher.


1. DOWNLOAD AND INSTALL SOFTWARE - [PD Extended]( (or MaxMSP if you prefer) - [Arduino]( (and check if you need extra driver)

2. SETTING UP THE HARDWARE 2.1 ARDUINO - Attach Arduino to mac - Startup Arduino software - change settings if necessary: - Tools -> board - Tools -> port Make a note of the text at the bottom of your Arduino window, which should be something like “Arduino Uno on /dev/cy.usbmodem1421”

2.2 PLUG IN THE BOARD Plug in the theremin Arduino shield board. Plug it in to that the four data-pins are plugged into A1 through A4. The two power pins should then automatically be plugged in to 5V and GND, so the shield board is powered.

There are 8 pins sticking out of the side of this shield board. - The ‘top’ of the board is now the ground (of more technically: the pins attached to the outside of the shield board are the ground)

2.3 CONNECTING THE SENSOR BOARD We’ll have to make a wire connection between the two boards. First connect a two-core wire to the two pins that are furthest away from the USB-input of the Arduino. Connect it vertically. Make sure the wire connecting to the ground of the Arduino-shield is also connected to the ground on the sensor board. (if we number the 8 pins as 4 vertical sets, then set 1 is closest to the round voltage regulators. Using this numbering, you are connecting to set 4)

If we number the pins on the sensor board 1 to 6, number 1 being near the round voltage regulator part that sticks out, then pin 2 is the ground, and pin 1 is the data. Connect the wire to these two pins. The little red light should turn on on the sensor board.

The hardware part is now done, congrats!


3.1 OPEN PD - Load a patch you’re interested in. In my case I’m using a mac, so I tried this starter file: - PD-Intel -> UNO -> USB_theremin1_UNO.pd

Once loaded, you need to do a few things: - In the menu, under Media check if DSP is set to ON. - In the patch you have to change one variable, namely the USB Modem port. Under the “edit” menu select “edit mode”. Now find the part that reads something like “/dev/cu.usbmodem121” and change that into the variable you found (and hopefully wrote down) form the bottom of the Arduino software. When done, disable Edit Mode by once again selecting it. - In theory you should now see data coming in from your theremin. Do you see numbers changing as you move around the sensor? - Keep the sensor away from yourself or electronics, and press the space bar. the theremin is now calibrated. -  Finally, increase the volume. Drag the thick vertical black bar at the bottom of the patch (where it says “theremin volume”) and drag it to the right.

Your theremin should now be working.