Difference between revisions of "Therething"

From BuildBrighton
Jump to: navigation, search
m (Reverted edits by Salejatsjz (Talk) to last revision by Robotix)
 
Line 19: Line 19:
  
 
= Background =
 
= Background =
We were asked by Playgroup, local club promoters, to provide a 'sweetner' to perusade electronica djs [[http://www.evilnine.net/ Evil Nine]] to take part in an event they are promoting.  This item was to be a [http://en.wikipedia.org/wiki/Theremin Theremin].  We  designed and build a theremin type thing, which was officially <span class="plainlinks">[http://www.clearskinmaxreview.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">acne skin products</span>] presented to Evil Nine on 30th October 2009 at The Komedia (where we also hosted the pre-party from 6-10pm).
+
We were asked by Playgroup, local club promoters, to provide a 'sweetner' to perusade electronica djs [[http://www.evilnine.net/ Evil Nine]] to take part in an event they are promoting.  This item was to be a [http://en.wikipedia.org/wiki/Theremin 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 <span class="plainlinks">[http://www.performer5pills.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">semenax</span>] midi output. The analogue signal used to drive the oscillator/speaker on the original could be <span class="plainlinks">[http://www.teethwhitenerguide.com/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">teeth whitener reviews</span>] 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 <span class="plainlinks">[http://weightlossproductreviews.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">slimming reviews</span>] ultrasonic range finders in place of the theremin's antenna has also been thrown <span class="plainlinks">[http://buyphentermine.herbalweightlossaid.com/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Phen375</span>] around. This would mean that the end <span class="plainlinks">[http://www.capsiplexreview.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">capsiplex</span>] result would be an instrument that plays like a theremin (non-contact) but is actually a completely different beast altogether.
+
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.
 
We ended up choosing the un-theremin option, going for a pure midi controller.
Line 27: Line 27:
 
= How the BuildBrighton Theremin works =
 
= How the BuildBrighton Theremin works =
  
Ultrasonic sensors are used to return a distance value, from the sensor to the player's hand. This <span class="plainlinks">[http://www.phen375reviewed.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">phen375 review</span>] value is converted by an Arduino or other microcontroller into a MIDI key value and is output at the correct <span class="plainlinks">[http://www.herbalweightlossaid.com/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">slimming pills</span>] baud rate (31,250 bps) onto a serial pin.
+
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 <span class="plainlinks">[http://www.hghadvancedreview.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">hgh advanced supplement</span>] 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.
+
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 <span class="plainlinks">[http://crystalskincare.com/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">skin care products</span>] away from the note-generating sensor (to avoid cross-talk or interference).
+
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 =
 
= Slides from Toby's Talk =
Toby spoke at the [http://upcoming.yahoo.com/event/4842329/gb/Brighton/5-App-Meet/Hectors-House/ £5 app Christmas special] on Wednesday the 2nd of <span class="plainlinks">[http://www.meratolreview.org/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">meratol</span>] December at Hector's House. The slides are available right here: [[File:Therething_Slides.pdf]].
+
Toby spoke at the [http://upcoming.yahoo.com/event/4842329/gb/Brighton/5-App-Meet/Hectors-House/ £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 =
 
= User Interface Planning =
Line 55: Line 55:
 
= Circuit Design =
 
= 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 <span class="plainlinks">[http://www.hoodiapill.info/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">unique hoodia diet</span>] 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.
+
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.
  
 
[[File:Theremin-schematic.png]]
 
[[File:Theremin-schematic.png]]
Line 71: Line 71:
  
 
= User interface code =
 
= User interface code =
Menu interface for the LCD display <span class="plainlinks">[http://proactolpluspills.com/ <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">proactol plus</span>] controlling global variables that could be picked up by the sensor code. [[Media:Theremin_UI.pde|Theremin_UI.pde]]
+
Menu interface for the LCD display controlling global variables that could be picked up by the sensor code. [[Media:Theremin_UI.pde|Theremin_UI.pde]]
  
 
= Scales =
 
= Scales =

Latest revision as of 03:56, 22 December 2011

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

Credits

Background

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.

Theremin-schematic.png

Parts List

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

Arduino Code

Github

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

Scales

'Ionian Mode','2212221'
'Dorian Mode','2122212'
'Phrygian Mode ','1222122'
'Lydian Mode','2221221'
'Mixolydian','2212212'
'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'
'Augmented','313131'
'Hindu','2212131'
'Major Pentatonic','22323'
'Minor Pentatonic','32232'
'Blues Scale','32232'
'Major Triad','2212221'
'(add 9)','2212221'
'SUS','2212221'
'(b5)','2211321'
'+ (augmented)','2213121'
'6','2212221'
'M7(b5),M9(#11)','2221221'
'M7,9,13','2221221'
'M7+,M9+','2213121'
'M13(#11)','2221221'
'Minor Triad','2122212'
'(add 9)','2122212'
'm6','2122212'
'o7 (diminished)','2121212'
'm7(b5)','1221222'
'm7,9,11,13','2122212'
'm(M7),m9(M7)','2122221'
'7,7sus,9,11,13','2212212'
'IV/V (Ex. F/G)','2221221'
'7(b5),9(#11),13(#11)','2221212'
'7(b9),11(b9),13(b9)','1312212'
'7(#9),13(#9)','3112212'
'7(b9#9)','1222212'
'7(b9b5),7(b9#11)','1311312'
'7+,9+','2213112'
'7+(#9)','1313112'
'7+(b9)','1313112'
'13(b9#11)','1321212'

Images

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

Videos

Links to source materials/ideas