Paul von Jankó invented a different kind of music keyboard around 1885. You can find out much more by googling for him. e.g. Piano World, Wholetone Keyboard Basics, and Improvise Free. I first found out about him in Edward Tenner's fine book Our Own Devices. It is also known as the uniform keyboard.
The keys are arranged in rows with each row offset by one half key width from the one below. This is similar to text keyboards on typewriters and computers. So it should be easy to write a program to allow one to play music on a compter keyboard. Other software insists on traditional keyboard layout. However, the Jankó layout fits the text keyboard better.
Here is our familiar QWERTY layout. I show just the keys we will use in our Jankó keyboard. Your keyboard may differ, and some customization might be required of software to play music.
Besides its fit for a text keyboard there are a few interesting things about the layout. One can change keys (transpose) by merely shifting the hands. The shapes of all scales are the same. Also the notes are duplicated every other row, making some playing easier. Jankó's original design had six rows. Text keyboards generally have only four. So each note would be repeated only twice. On a text keyboard, chording is generally not available. Arpeggios would have to suffice. Luckily such things should be easier on this layout. For example, all major chords are the same shape. So to play a C major "chord" you would type "zcg" quickly. Just move the same gesture to start on any note to get the major chord with that root.
Here we map the keys to the Jankó keyboard. The keys are labeled with the notes to play. So far I've just labeled the natural notes. It should be pretty easy to see where the sharps go. Each key is one whole tone higher than the one to it's left. Each key is one half tone higher than the one diagonally to the left (up or down).
Here's a simple Java 1.1 applet that can be played from this web page. There was already a Shockwave version, but it doesn't seem to react to the keyboard.
This is kept to AWT and Java 1.1 for backward compatibility with old MSIE browsers. Chording seems to work on some browsers (e.g. Safari on Mac OSX) and not on others (e.g. MSIE on Windows XP). Still to do: animate GUI buttons when keys pressed; have each sound play in it's own thread - start on key pressed, stop on key released.
Advice from Sun is at http://java.sun.com/docs/books/tutorial/applet/appletsonly/sound.html.
- Eric Blossom October 2005
This version should allow notes to ring as long as you keep a key pressed. This works only with the keyboard, not the mouse. The notes don't so much ring as stutter. I think this is due to limitations of the AudioClip objects. However, I could have a problem with the audio files. Let me know if you have better files. The cording seems limited too. It gets bad with more than two or three notes. So far I've tried it with Konqueror 3.5.1 on SUSE Linux 10.0 with Java 1.5 and Safari with Mac OS X. It's worse with Safari. There is a lag before the note starts repeating. Also after the first sounding of the notes in a chord the chord is lost. Only the last note pressed repeats. Let me know how it works with your browser.
I'd love to hear about techniques to improve this, but I suspect most of the limitations are in the client JVM implementations.
A next project might be to create a program that generates MIDI from the keyboard. Some features might be: Use Swing for prettier GUI; allowing keys to be modified, added, deleted (to match other keyboards); allow setting of which key is middle C; assigning a frequency to one of the keys; shift up (or down) an octave with the caps lock key; read and animate (with blinking keys) MIDI files; color shading to highlight a key; color shading for scales (e.g. major, minor, and blues scales).
Eric Blossom July 2006 Eric@BlossomAssociates.net