Posted May 21, 2018
dtgreene: I am actually planning on using Python 3 with the python-mido library. Incidentally, I had the same idea of inverting note numbers and see what happens. I could also try randomizing them; that might be interesting to try to play..
With that said, I think a good first filter would be something like a simple transposition; just add or subtract a number from all the note values. (For example, if I subtract 2, whatever notes I play would sound a whole step lower, just like on a (Bb) clarinet or trumpet.)
SirPrimalform: Python is perfectly good, I just have no idea how well it would integrate with a DAW/plugin-host for actual recording. Reaper has an unlimited nagware demo anyway so I recommend checking it out if you're planning to record anything even if the plugin scripting is of no use to you. With that said, I think a good first filter would be something like a simple transposition; just add or subtract a number from all the note values. (For example, if I subtract 2, whatever notes I play would sound a whole step lower, just like on a (Bb) clarinet or trumpet.)
* It is possible to create virtual MIDI ports. These ports can be accessed by other programs on the system (I haven't checked to see if they need to be running as the same user). Hence, if a DAW can take input from a MIDI device, it can take input from a virtual MIDI device created by my program.
* It is possible, using aconnect, to connect MIDI ports to each other. This isn't necessarily a 1:1 mapping, so I can connect the keyboard to both timidity (a software synth) and another program that records it at the same time. I could also choose to connect the keyboard to my program's input, and my program's output to timidity.
So, I can easily connect devices and programs together without too much trouble. This does really feel a lot like UNIX pipes, which allow connecting the standard output of one program to the standard input of another, and given that UNIX pipes are very useful, this whole MIDI routing should also be similarly useful.
(Also, there's nothing preventing me from making a program to send MIDI messages over the network.)