So one of the undervalued things when you do music stuff on a computer is a good virtual keyboard, so you can just quickly play some notes to try stuff out if you don't have your chunky controller hardware with you. Some people make it a point to be a musical computer keyboard virtuoso, which is cool! But it's always a valuable tool.
The existing ones all use the various window system keyboard inputs which results in a lot of jitter- or musically, a very mushy and unsatisfying feeling when playing music on a computer keyboard.
So I wrote my own. As always, Nim was uniquely suited to the task. There are two threads- a realtime one that reads events directly from the linux keyboard driver at /dev/input, including the most reliable source of timing available, the kernel timestamps. Then there is another thread that converts these timestamps to jack soundcard time and puts them into Jack Midi out.
Give it a try- it feels like playing a real instrument. I find the musical feel is better than most commercial MIDI keyboards- which is a low bar, because MIDI is an old standard and doesn't have hardware timestamps, so you get a lots and lots of jitter.
If you happen to be an organist, you can hook up Mash to Aeolus and get the same or better playability than a real organ on your computer. Organs are special because they have a very long musical tradition and managed to pull that off without having any kind of sensitivity. So if you wish to put the fear of God into your co-patrons in the digital nomad cafe, you can authentically do so in software only.
So if you wish to put the fear of God into your co-patrons in the digital nomad cafe,
Delightful. I've got just the VST...
Thank you!!! It's nice to hear back!
I'm looking into extending Jill, the quick'n easy Nim Jack API, to support MIDI, but there's a few details I haven't conceptionally straightened out yet, so C-ish Nim it is for now.