Note that A starts multiple entries, and also note that how you translate a C stroke depends on whether you've previously seen an A, a B, or you're starting fresh.Īlso note that (although not shown in the very small sample above), there may be multiple ways to "play" the same word or phrase, rather than just one. (Those letters aren't meant to be musical notes, just abstract markers.) For instance (and I won't use real steno here, just placeholders), there may be these entries: A = alpha Frequently, there will be several entries with the same starting stroke which are differentiated by their length and by the subsequent strokes. The dictionary will have entries where the stenographic part ("steno", for short) is one stroke long, or multiple strokes long. Although they'll be heavily influenced by the school at which they studied, each stenographer will have their own "dictionary" of what strokes they use to mean what, a dictionary they will continuously hone over the course of their working lives. Like syllables, sometimes one stroke (chord) has meaning all on its own, other times it only has meaning combined with following strokes. Strokes frequently (but not always) correspond to a syllable of spoken language. 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. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |