It's roughly a phonetic system. You press chords (multiple keys together) to enter a word.
Left hand types the initial consonant, right hand the ending consonant. Thumbs for vowels. All at the same time.
Steno with PC keyboard
This person, gives a demo of a PC keyboard steno system.
She is Mirabai Knight. One of founder the plover project, which is a open source steno system using computer keyboard. http://www.openstenoproject.org/
You'll need a keyboard with full NKRO (the ability to press multiple keys simultaneously and register correctly). [see What's NKRO, N-key Rollover?]
Most mechanical keyboard has 6 key roll-over, but that's not enough. [see List of Keyboards with Mechanical Switch]
See this list for known keyboard confirmed with using plover. http://stenoknight.com/wiki/N-key_rollover
Alternative Shorthand System for Computer Keyboard?
So, steno is much faster because:
- It's a phonetic system. You type syllables, instead of letters.
- You press multiple keys at the same time, as piano chords.
- The physical keyboard is designed for chords.
Is Phonetic System Faster?
A phonetic system makes typing natural language much faster. The essence, is because each “input” corresponds to multiple letters. It is a short hand system. The downside is that it's more difficult to learn. You have to memorize the short-hand system. And it also requires a translation step. (though can be done by software, automatically)
(by the way, this is a similar situation in designing a input system for Chinese. There are phonetic based system, typically requires no learning, then there's character based input system, requires a lot memorization. The character based system is much faster.)
Also note, in English the language, word's pronunciation does not have a exact correspondence with how it is spelled. This is called the Alphabetic principle. So, this makes a phonetic input system more difficult to learn. But still, it's still faster and easier than entering each letters directly.
Is Chorded Keyboard Faster?
The chord keyboard (designed for pressing multiple keys at the same time) of the steno machine, is also much advantageous.
At first, i wasn't sure about that. Let's say we have to press 3 keys on this keyboard and the normal computer keyboard. On the chorded keyboard, the order doesn't matter. Can be pressed simultaneously. This is faster than pressing each key one by one. This becomes apparent if you need to press more keys. Say, 3 keys for left hand, 2 for right. Doing that one by one, becomes a snail crawl.
Then, i thought that chorded keyboard is unnatural. Not so, if you look at piano, flute, or guitar. All require using multiple digits in precise sequence of chord fingers.
But again, you trade speed with learning curve.
Then, i was thinking, how the steno keyboard compares to piano keyboard.
The question here is, if we think of designing a hardware from the ground up, for inputting arbitrary text (natural language or computer code), then, what would it look like?
First, we know that, it must be a chorded keyboard. Let's think about our computer keyboard first. Let's say the nice modern one such as Ergodox Keyboard. Quickly we can conclude that it is inferior to the steno or piano keyboard. Because, if you want to hit multiple keys, huge keys such as piano keys are much better than computer keyboard keys.
So, that narrows down to steno vs piano keyboards. I'm thinking, the steno has slight advantage. Because, the layout is logically more simple. And, the way it is layout out, it has dedicated keys for thumb, allowing each thumb to hit multiple keys. And, the other keys can also be hit together by pushing between the rows.
However, i think that piano keyboard are highly competitive here, and it's proven usable. Because, a piano keyboard has much more keys, which becomes big advantage when we need large number of distinct outputs. For example, you want the system to input math symbols, Chinese, Braille. For example, you can hop your hand to a different octave to input digits, another octave for math symbols.
Consider a input system hardware, piano keyboard would make a great choice, because:
- piano keyboard is very cheap and widely available. You can get a full-sized 61 keys (5 octaves) for under $100. See piano keyboard
- Piano keyboard comes with USB and midi protocol.
- Piano keyboard can handle multiple simultaneous key presses. (called polyphony here) Even a toy one will handle 16 keys pressed at the same time
The minimal size for musicians usually comes with 61 keys (5 octaves. 12 × 5 + 1 keys.)
There are special ones, for composer or Disk Jockeys, having just 1 octave (12 keys) or 2 octaves.
For our purposes, 2 octaves (24 keys) will be equivalent to a normal computer keyboard. (because of chords) 3 octaves (36 keys) would be roughly equivalent to a steno keyboard. (steno keyboards usually have 22 to 35 keys.)
A stenotype machine is about 2 to 5 thousand dollars. (if you look at the web, most of them are ugly, bulky, unwieldly, comes with a silly LCD screen, and the websites selling them are like from 1990s. Basically, it's a very tiny market.)
Short-Hand System for Computer Keyboard
Still, i think, it might be possible, to design a shorthand system for normal keyboard, so that typing can be 2 time faster. (yet not based on steno system.)
The speed increase comes from the short-hand system.
The design of this, will probably be based on a modal mode, as in vim, so that one can switch between short-hand input and normal letter input.
For example, when you write code, often you have to type functions or “for loop” statements. What if, any function or statement you ever have to type, can be typed by just 3 keys?
The completion and function template feature in many IDEs (such as Microsoft Visual Studio) is a example of significant keystroke saving. But it is not ideal. Because, it has a selection process. The popup that you have to visually make a choice. This significantly slow things down. We need to get rid of this. And, the completion system is ad hoc, per language or per project. We want a generic system.
Also note that:
- Programing language code is quite different from natural language. You won't be able to utilize syllables in natural languages much. Especially, for some programing languages, such as ALP, Wolfram Language, or Haskell, that uses more symbols than English words.
- 50% of the keystrokes typed by programer are not enter letters, but commands such as moving cursor, deleting text, selection, page up/down, open file, etc. [see Emacs's Command Frequency Statistics]
So, i think there are 2 interesting exploration here.
- Design a short-hand system for PC keyboard for programing and for input natural languages.
- Design a input system using piano keyboard.
I think it's relatively easy to design such a system, and be at least 2 times more efficient than our current of using computer keyboard for coding and writing (yet, not the steno system).
If we use piano keyboard, i think it can be 3 times as efficient. (e.g. 300 words per minute)
The hard part is selling it. That is, convince others to use it. Suppose you are god and in a snap of a finger you have the perfect short-hand system for the PC keyboard to type code or natural languages at 300 wpm. Now, chances are, it will go down in history as wonderful invention that failed to catch on. Unless, the marketing god Steve Jobs is on your side.
Using Piano to Type Text
addendum. Actually, there is already a system to type text using piano keyboard. The speed and learnability is comparable to steno, if not better.