From BuildBrighton
Revision as of 04:56, 22 December 2011 by Robotix (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Flickr Error ( ): PhotoID 4015561222

Therething (theremin-type-thing) Project

  • Owner: BuildBrighton
  • Start date: 01/10/2009
  • Completion date: 30/10/2009

Version 2.0 wishlist

We're currently planning the next version of the therething. Planning/wishlist/etc are here Therething/V2 plan



We were asked by Playgroup, local club promoters, to provide a 'sweetner' to perusade electronica djs [Evil Nine] to take part in an event they are promoting. This item was to be a Theremin. We designed and build a theremin type thing, which was officially presented to Evil Nine on 30th October 2009 at The Komedia (where we also hosted the pre-party from 6-10pm).

A few group members have already worked on MIDI projects and have discussed the idea of building a theremin-type machine with midi output. The analogue signal used to drive the oscillator/speaker on the original could be sampled to give a digital value within a specific range, which in turn can be used to generate a midi "note on/off" signal. The idea of using ultrasonic range finders in place of the theremin's antenna has also been thrown around. This would mean that the end result would be an instrument that plays like a theremin (non-contact) but is actually a completely different beast altogether.

We ended up choosing the un-theremin option, going for a pure midi controller.

How the BuildBrighton Theremin works

Ultrasonic sensors are used to return a distance value, from the sensor to the player's hand. This value is converted by an Arduino or other microcontroller into a MIDI key value and is output at the correct baud rate (31,250 bps) onto a serial pin. Since MIDI needs a signal to turn off a key pitch as well as a signal to turn it on, two MIDI signals are sent - one to turn off the previous note and one to activate the required note. The new note-on message is sent BEFORE the previous note is turned off. This is to allow for a slide/portamento effect, making it sound more theremin-like on certain synths.

Volume is controlled using a similar approach, using an ultrasonic transducer that is pointing away from the note-generating sensor (to avoid cross-talk or interference).

Slides from Toby's Talk

Toby spoke at the £5 app Christmas special on Wednesday the 2nd of December at Hector's House. The slides are available right here: File:Therething Slides.pdf.

User Interface Planning

UnTheremin UI.jpg

Menu Tree

  • Note Settings
    • Scale [None, Major, Minor, …]
    • Root [C, C#, …]
    • Octave [-2, -1, 0, 1, 2, 3]
    • Range [1 octave, 2 octaves, 3 octaves]
  • Controller Settings
    • Left
      • CC Number [0 - 127]
      • Invert Range [On, Off]
    • Right
      • CC Number [0 - 127]
      • Invert Range [On, Off]
  • MIDI Channel [1 - 16]

Circuit Design

The circuit for the theremin is very simple. Most pins on the arduino go straight to the sensor / button / LED / Port. The only extra components are three capacitors for debouncing the rotary encoder, some current limiting resistors, a trim pot for the display contrast and the power supply.


Parts List

Parts list has been added to a separate page: Therething/parts list

Arduino Code


The code for therething is now hosted on github under the Apache 2.0 license:

Generating Scales

Code for generating MIDI note scales from a base note and the note intervals (in semitones). theremin_arduino_scale_test.pde

User interface code

Menu interface for the LCD display controlling global variables that could be picked up by the sensor code. Theremin_UI.pde


'Ionian Mode','2212221'
'Dorian Mode','2122212'
'Phrygian Mode ','1222122'
'Lydian Mode','2221221'
'Aeolian Mode','2122122'
'Locrian Mode','1221222'
'Major Scale','2212221'
'Harmonic Minor','2122131'
'Asc. Melodic Minor','2122221'
'Des. Melodic Minor','2122122'
'Natural Minor','2122122'
'Lydian Diminished','2131221'
'Lydian Augmented','2222121'
'Lydian b7','2221212'
'Locrian #2','2121222'
'Super Locrian','1212222'
'Whole Tone','2222222'
'Whole-Half Diminished','21212121'
'Half-Whole Diminished','12121212'
'Major Pentatonic','22323'
'Minor Pentatonic','32232'
'Blues Scale','32232'
'Major Triad','2212221'
'(add 9)','2212221'
'+ (augmented)','2213121'
'Minor Triad','2122212'
'(add 9)','2122212'
'o7 (diminished)','2121212'
'IV/V (Ex. F/G)','2221221'


Flickr Error ( ): PhotoID 4015561222 Flickr Error ( ): PhotoID 4014803171 Flickr Error ( ): PhotoID 4052792202 Flickr Error ( ): PhotoID 4052798284 Flickr Error ( ): PhotoID 4065742411 Flickr Error ( ): PhotoID 4065761831


Links to source materials/ideas