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  

Monday, January 29, 2007

User Interface Demo Program

I created a quick demo program to explore the slider behavior, where quick=1.5 hours. I found a library in Processing to do the slider, but I had trouble getting it to work quickly.

Mockup Screenshot

(more…)

posted by Michael at 10:09 pm  

Friday, January 26, 2007

User Interface Testing – Yamaha TG77 – Overview

tg77 front panel

Objective: Change the selected voice to “DreamRodes”
Assumptions: TG77 already in VOICE mode and on MEMORY I (internal). (1)

Notation (2):
[Button]
\ – Press
/ – Release
* – Number of repeats
s – Number of seconds

Ex: [Y \ /]*52 / 10s

I have produced short movie clips illustrating each of the ways to select a new voice

(1) This assumption is made to constrain the number of possible ways to change the voice. Without these assumptions, it would be necessary to consider many other paths from different modes. This study would be useful in the evaluation of the ease of use of the Yamaha TG77 in live performance. In live performance environments it is crucial to be able to switch quickly between the most important modes related to the performance.

(2) I considered an XML-based notation format, as I thought it might be useful later on to have the format easily machine-parseable. It seems from first glance that there is a heirarchy of presses and releases. By nesting presses, it is easy to see what happened and when.

<Yes/><Yes/>
<Yes>
<Left/>
</Yes>

This is likely overkill, so I’ll abandon it for now.

posted by Michael at 10:30 am  

Friday, January 26, 2007

User Interface Testing: Yamaha TG77 – Suggested Improvement

I have two suggestions related to voice selection on the TG77:
1. Implementation of a “jog wheel” function in order to scroll through the voice names at variables speeds
2. Implementation of a “search” function to locate the voice without having to scroll through the various banks

“Jog Wheel”
Interestingly, the TG77′s keyboard-counterpart (the Yamaha SY77) has a rotary wheel control which can be used to scroll through voices. I wonder why the designers didn’t do this for the TG77 using the DATA ENTRY slider.

The video below shows the mocked-up jog wheel operation. The DATA ENTRY slider on the TG77 doesn’t have a function when the unit is in Voice Display mode, so I feel this would be a logical use for it. I mocked up the interaction by holding down the “+1/YES” button while moving the slider.

Notation:
[Slider /] / 3s [Slider /] / 2s = 2 operations / 5s

Notes:
This interaction raises several interesting questions.
1. How quickly should the slider move through the voices? A rotary knob with detents has an implied mapping: 1 voice per click. The slider has no detents.
2. What happens if the slider is at the top of its range when the user wants to jog through the voices? The answer to this question is related to how we answer #1… This probably is an area that requires some user testing. Unless moving the slider back down a bit will allow access to the full remaining range of voices, this could
be very frustrating to use. The data entry slider on my Studio Logic SL-1100 behaves a bit like this — and can be frustrating.

Voice Search
In Voice Display Mode, only two of the function buttons are used (F7 and F8). Another button (F6) could be used as a “Search” button. Pressing “F6″ would cause a search dialog box to appear. I think dialogs are beyond the scope of this assignment.

posted by Michael at 9:54 am  

Friday, January 26, 2007

User Interface Testing: Yamaha TG77 – Test 5

Test 5: Selecting the “DreamRodes” voice by direct numeric entry

When the DreamRodes is selected in Voice display mode, the upper left portion of the screen displays “VOICE-I D05(53)”, which translates to “Voice Mode, Internal Bank – D, patch number 53″. Using this knowledge, we can jump immediately to the DreamRodes any time we have the Internal memory bank selected.

Buttons:
“5″ – [5]
“3″ – [3]
“Enter” – [E]

Notation:
[5 \ /]*1 / 0.5s [3 \ /]*1 / 0.5s [E \ /]*1 / 0.5s = 3 operations / 1.5s

Quality:
If you know the number of the voice you’re selecting, this is the way to go. It requires the least number of operations in the least amount of time. The downside is that it requires what Donald Norman refers to as “knowledge in your head” of a system. You must already know the voice number corresponding to DreamRodes.

Notes:
I assigned short durations to these button presses as they are located close to one another.

posted by Michael at 9:53 am  

Friday, January 26, 2007

User Interface Testing: Yamaha TG77 – Test 4

Test 4: Selecting the “DreamRodes” voice by using the voice directory

Buttons:
“F8″, to be abbreviated [F8]
“Bank/Select”, to be abbreviated [Bank]
“Right Arrow”, to be abbreviated [>]

Notation:
[F8 \ /] / 1s [Bank \ /]*2 / 2s [> \ /]*1 / 1s = 4 operations / 4s
Quality: It is much easier to find a voice when you can see a bunch of them at a time. The downside of this method is that you must be close to the face of the unit in order to read the names.

Notes:
When the TG77 is in Voice Display mode
TG77-Voice Mode
the F8 button displays a list of the voices.

posted by Michael at 9:53 am  

Friday, January 26, 2007

User Interface Testing: Yamaha TG77 – Test 3

Test 3: Selecting the “DreamRodes” voice by pressing and release the “+1/YES” button in cycles

Buttons: “+1/YES”, to be abbreviated [+1]

Notation: ( [+1 \ ] / 1.5s [+1 /] ) * 12 = 24 operations / 18s

Quality: This seems better than simply holding down the “+1″ button if you’re looking for a particular instrument.

posted by Michael at 9:52 am  

Friday, January 26, 2007

User Interface Testing: Yahama TG77 – Test 2

Test 2: Selecting the “DreamRodes” voice by holding down the “+1/YES” button

Buttons: “+1/YES”, to be abbreviated [+1]

Notation: [+1 \]*1 / 7s [+1 /]*1 / 0s [-1 \ /]*1 / 1s = 3 operations / 8s

Quality: It is very easy to overshoot the desired voice while holding down the “+1″ button. This technique is not recommended if you don’t remember the name of the instrument you’re looking for.

posted by Michael at 9:51 am  

Friday, January 26, 2007

User Interface Testing: Yamaha TG77 – Test 1

Test 1: Selecting the “DreamRodes” voice using multiple presses of the “+1/YES” button

Buttons:
“+1/YES”, to be abbreviated [+1]
“-1/NO”, to be abbreviated [-1]

Notation: [+1 \ /]*52 / 10s [-1 \ /]*2 / 1s = 54 operations / 11s

Quality: While pressing [Y] rapidly, I found it was easy to overshoot the desired voice. I would like to try this with someone who is unfamiliar with the instrument as I have grown accustomed to the names of the instruments which precede “DreamRodes”

Note: The video segment lasts longer than the reported 11 seconds because I found later that I could press the button more rapidly than I did while filming and still read the name of the voice.

posted by Michael at 2:18 am  

Thursday, January 25, 2007

Assignment 1 – Listen Close

* Listen Close – Listen to a discrete repeatable sound. Listen for the detail in the sound.

I couldn’t find any good close-up sounds to listen to at the library, so I went back to ITP. I wanted to listen to something other than the relentless clacking of keyboards, shuffling feet on creaking hardwood floors, or mobile phone conversations. I wanted to listen to something simple, yet complex.

First stop — the Equipment Room. (thanks, Andrew, for humoring my request for a piece of equipment that made an interesting sound) . I left with a Panasonic CT-1030M pro video monitor and the goal of capturing in words the experience of listening to it turn on. When I checked it out of the ER, I had been hoping for the metallic, fuzzy honk of the de-Gaussing circuit on my home Dell monitor. The Panasonic had no soul.

I returned the tv monitor and sat down by the Deer Park water cooler next to the men’s room. This is the sound of water flowing from the spigot into a disposable plastic drinking cup.

There is a filtered, hollow sound as water drops into the empty cup. Air bubbles spatter as they burst at the surface of the water. The valve hisses slightly while it is open. When my head is against the base of the water cooler, I hear a hard muted reflection of the plastic valve as it opens and closes at my touch.

I pour water from the cooler into a stainless steel thermos and note the metallic “spang” of the water in the deeper cavity. As the water rises, one set of frequencies increases while another decreases. I enjoy the sound of the metal thermos as I flick it with my finger tip. “Bloing” “Buwoing” The frequency changes as I move the thermos around and the water within it sloshes back and forth.

posted by Michael at 10:02 pm  
Next Page »

Powered by WordPress