The Theremin Harmonizer
For my final project I built several variations of a harmonizing instrument that takes a pitch input and creates harmonies around it. It is designed to work particularly well with a B3 Deluxe Theremin. However, you can try it at home by whistling with similar results.
Patented in the early 1900s by a Russian genius, the theremin is the first electronic instrument. Its invention stimulated creativity and developments that revolutionized the way we look at music: practically everything is possible for a composer nowadays.
The theremin, however, fell into relative oblivion – few know of its existence today and even fewer work actively towards its development as a musical instrument. One major lack, for instance, is the inability of the player to produce more than one pitch at the same time. True, it is a melodic instrument, but unlike most other melodic instruments it is not capable of “cheats” to create harmony (arpeggios are very difficult to do and notes can not be sustained after they have been played).
One solution to these issues can be found in the just released by Moog Music model: the Etherwave Plus which gives the player unmatched before freedom of modification of the sound the instrument produces. Another one is offered by my final project.
I used ChucK and the MiniAudicle to create code that analyzes the sound input and determines the fundamental of the pitch by looking at the peak of the spectrum. Then it creates musical intervals around that pitch and plays back different harmonies. The code is easy to work with and allows for freedom of modification because one can just comment(uncomment) the undesired(desired) intervals.
There are several versions of the code that you can download here. The basic one builds a diminished seventh cord over the input pitch. There are also variations for a major and minor triads. Finally, the “Rule of the Octave” harmonizes the chromatic scale from C4 to C5 with suitable chords within a C major context.
What to include on your project page
- A description of your project
- Your code
- If it's short, you can make a new page for it like this one
- Or, if there's a lot of it, put it in a .zip file so that people can upload it.
- We suggest: put it in your public_html directory on your network drive, then make a link, e.g. to http://www.princeton.edu/~yourname/yourfile.zip. Let us know if you need any help!
- Instructions on how to run your code
- A sound or video recording of your piece. Going lo-fi and using built-in webcam from another laptop (e.g. PLOrk machine in studio B) is fine. But for audio, if you're using chuck, best to use rec.ck for writing chuck's output directly to a file.
- See directions above on putting it on your network drive and linking to it