Intro: Arduino Lego Tannerin
The Tannerin is a musical instrument that is played by sliding a marker along the length of a wire or pad. This produces a pure sine wave tone, which can extend over as many notes or octaves as you wish, always in a smooth (i.e. portamento/pitch bend) fashion. It was used on the Beach Boys hit, "Good Vibrations."
With everybody building light theremins at the moment (myself included) I thought I'd better release an Instructable for the Tannerin.
Step 1: The Base
Begin by building the longest base possible. When sat in the middle, you should be able to easily reach either end. I built mine from Lego - just because I can. Then stretch a piece of nichrome wire across the entire width, and finish up by tying each end around a screw. This will help dissipate any heat that it gives off. Keep this wire taught. Measure the resistance of this stretch of wire, as this will give you an idea as the range, and granularity, of the instrument. Mine was 176 ohms, across 1.2 meters.
Step 2: The Wand
Create a "wand" by attaching a long piece of cable to a crocodile clip. This must be long enough to stretch across the entire width of the Tannerin, with a little extra to reach the location where the circuit board will be placed.
Step 3: The Hardware
Attach wires to either end of the nichrome wire, and feed into a circuit board. Then attach the end of the marker wire to the same circuit. I'm using breadboard, as shown here. The schematic follows.
Step 4: The Schematic
The circuit schematic. You will want to replace the resister with some large enough to limit the current through the nichrome wire (lest it gets too hot), but small enough so there's a noticeable drop in potential when the marker short circuits part of the wire. The Arduino has a 0-1023 range for a 0-5v on its analog inputs. i.e. 5 mv per input entry. So if you want 100 possible inputs along the wire, there must be 0.5v across the nichrome wire.
Step 5: The Software
Then write a short program to interpret the input values, and produce a sensible output. I use the Armstrong music system as a means of quick prototyping the instrument. Using Armstrong also allows me to trigger different sounds on my PC, without changing my Arduino code. The Tannerin source code is now available in the examples folder of the Armstrong archive.
Amstrong is a collection of routines to make the building and prototyping of musical instruments on the Arduino very much easier. It abstracts the hardware pins from their function and supports serial communications, allowing sounds to be played on remote hardware (PC or synthesizer) without additional coding.