#Midi controller emulator mac drivers
(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.)
#Midi controller emulator mac driver
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.
![midi controller emulator mac midi controller emulator mac](https://www.gearjunkies.com/wp-content/uploads/gj2/inximg/16376_arturia-keylab88.png)
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.
![midi controller emulator mac midi controller emulator mac](https://audionewsroom.net/wp-content/uploads/2017/11/Emulator-2-ProTools.png)
![midi controller emulator mac midi controller emulator mac](https://www.tweaking4all.com/wp-content/uploads/2015/02/mac-xbox-360-controller-settings.jpg)
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).