learning the ropes

things I made at ITP and after: sketches, prototypes, and other documentation

Tuesday, January 30, 2007

Magic Flute

Magic Flute 028

I’ve built a “Magic Flute” for my Living Art Finite State Machine project.

The Magic Flute is a simple wind-style MIDI controller interface which can play all of the notes in a C-major scale. I’m a keyboard player by training, but I’ve always wanted to try playing a wind instrument — particularly the clarinet.

The major purpose of this assignment, however, was to create a Finite State Machine:
Finite State Machine

As we discussed in class, the Finite State Machine is characterized by inputs, outputs, and a memory of previous states. In the case of the Magic Flute controller, the inputs are the keys. The outputs are a slight clicking sound as the keys contact the body of the instrument, but more importantly the MIDI messages the controller sends. The memory is in the code that runs on the ATMEGA chip on the Arduino board. The code remembers which buttons were pressed and sends MIDI messages according to the Finite State Machine.

You may notice that there is no mention of wind pressure in the Finite State Machine. I spent the better part of last weekend trying to get a sound level circuit to work. The circuit I used worked fine for amplifying audio, but was very unreliable when I tried to use Arduino to measure the amplitude of sound coming into it.

I came up with some other possibilities for measuring the wind speed inside the controller:
- Using a tiny encoder wheel with a opto interrupter to measure the speed
- Looking for a vibration sensor that outputs a good signal
- Hot-wire anemometer

There are some other extensions I would like to make to the controller’s firmware if I have time to build it again:
- A button-triggered mini sequencer function so I can record and playback a short motif. This could be really cool for live performance. I could sample a short loop as accompaniment and then play a live melody on top of it.
- A transposition function so I can play notes outside of the C-major scale
- Key combinations to allow me to play semitones which are fundamental to playing other scales
- A volume knob

Magic Flute 011 Magic Flute 025 Magic Flute 017 Flute - Finger Positions - 4

(more…)

posted by Michael at 1:15 pm  

Powered by WordPress