Sunday, 16 January 2011

7x7

http://7x7.loft-dev.com/ Firefox (>=3.6) only!

This is a little hack I did a while back during the 2010 London Musichackday. I've always found that computer metaphors for musical instrument user interfaces are very poor. A computer has a complex keyboard, a screen and a mouse, yet I find myself having to adapt my computer keyboard to piano keyboard emulations. Surely there must be some way to make, if not better, then at least different use of the input devices?

With this hack I wanted to see what could be done with a two-dimensional user interface. I play a bit of button accordion so I'm quite used to this idea myself, but I wanted to see if the matrix arrangement of notes could be useful when presented on a computer screen. Given the graphic nature of this interface, I decided that the mouse would be best suited as the input device. When you hold down the mouse button you "draw" a rectangle over the matrix. When you release the button all enclosed notes are played simultaneously, allowing for the creation of complex chord structures.



I took care in designing matrices that, just like on the chromatic button accordion, can be directly transposed just by moving the cursor. This resulted in three different layouts: A simple C-major layout and two systems based on fixed semitonal increments. The C-major layout makes it easy to create "well-sounding" chords which also go well together, like Cmaj9, Fmaj9, Dm7, G9, etc. The other two layouts enable the creation of interesting dissonances.

So what does it actually sound like? Well, very harmonious. Relaxing. Like whale singing. Bland, basically. I did try my best to mess up the waveform, but the envelope had to stay the same. This was not really by choice, but more a technical constraint. The notes are generated on the fly by a PHP script and returned as raw .wav files to be played by the Audio element. What I found during my initial experiments was that the Audio element wasn't able to deal with timely sequences of notes, and I had to resort to an instrument where exact timing didn't really matter.

I'm not sure the end result is good or bad, but at least it's different, which sort of was the whole purpose from the beginning. My presentation at musichackday was a full-scale disaster, but I did manage to get a little mention on cnet. I've seen people play with it, and it seems to make some intuitive sense, even to musical non-snobs.

Drop me a line if you're interested in the source code.

No comments:

Post a Comment