![]() They call this a "stroke" of the keyboard it's like playing a chord on the piano. In machine stenography, the stenographer writes by pressing multiple keys on the stenotype machine at the same time, then releasing them all. ![]() Update: More about the "dictionary" of chords to keystrokes:Ä«asically, the dictionary is a trie (thanks, that we search with longest-prefix matching. (I'm a big fan of Java, but the interfaces that operating systems use to talk to device drivers tend to be more easily consumed via C and similar.) That may well be sufficient for your purposes - it's where I'd start, because the device driver route is going to be awkward and you'd probably have to use a different language for it than Java. Windows has an interface for doing that (probably several, the one I'm thinking of is SendInput but I know there's some "journal" interface that does something similar), and I'm sure other operating systems do as well. However, since you're just generating keystrokes (not trying to intercept them, which I was trying to do years ago), you may be able to use whatever features the operating system has for sending artificial keystrokes. For Windows and Linux, you're probably going to want to use C for that. This is a plug-in to the operating system that serves as a source for keyboard events, talking to the underlying hardware (in your case, the piano keyboard). To be most broadly-compatible with software, you'd have to write this as a keyboard device driver. Outputting the keystrokes to the computer.Converting that data into the keystrokes you want to send, e.g.Edit: Apparently, the Java Sound API supports MIDI, including receiving events from MIDI controllers. Don't try to do this yourself, use a library. (Can you tell I used to work in the software side of machine stenography?) As with machine stenography, you'd need a "dictionary" of the meanings of chords and sequences of chords. Chording in particular could be a very powerful technique - as I mentioned in the comments, it's why rank-and-file stenographers can use a stenotype machine to keep up with people talking for hours in a row, when even top-flight typists wouldn't be able to for any length of time via normal typewriter-style keyboards. These events carry a "velocity" number on keyboards that are velocity sensitive ("touch sensitive"), with a force of (you guessed it) between 0 and 127.Ä«etween velocity, chording, and the pedals, I'd think you could come up with quite a good "typing" interface for the piano keyboard. MIDI is a stream of "events" (or "messages"), two of the most fundamental being "note on" and "note off" which carry with them the note number (0 = C five octaves below middle C, through 127 = G five octaves above the G above middle C, in semi-tones). I haven't done any MIDI programming in years, but your fundamental idea is very sound (no pun).
0 Comments
Leave a Reply. |