"How to output MIDI data to several applications"
So, I'm starting piano lessons again, and I never really learned to sight read. Luckily, I stumbled upon this awesome website, which allows you to practice sight reading with your MIDI keyboard, right in Chrome!
https://sightreading.training/
Sadly, the website doesn't seem to output any sounds itself, in response to your MIDI input. At least, I can't get it to work (event though there's a selection of sounds to choose from. If you figure it out, please tell me how!).
So I thought I would just start up my favorite VST, EastWest Play, outside of a DAW and just have it recieve the MIDI input also, so that it would handle the sound part. But! It seems that Windows 10 (or at least my setup) only allow one application to use the MIDI keyboard at any time (maybe it depends on the keyboard?).
So, I needed a way to send the MIDI input both to Chrome AND to my VST.
The answer? loopMIDI by Tobias Erichsen!
https://www.tobias-erichsen.de/software/loopmidi.html
How it works is, that you open a "loopback MIDI port" in the application. That port will then show up as a MIDI device everywhere, both as midi in and out. So you can send, and recieve from it.
So I let
https://sightreading.training/ use my MIDI keyboard as midi in, then as MIDI output I choose the loop midi port. Then in my VST I choose as MIDI in the port. Voila! Now the MIDI IN was routed through both applications via loopMIDI.
https://i.imgur.com/TVTCYxD.png
Another way of doing it? I also thought of just putting my audio interface card as MIDI out in Chrome and then connect MIDI out of the interface to its own MIDI in. Then Chrome would use the MIDI keyboard as MIDI in, and my vst would use the audio interface.
Note: I realize now, that all this is dependent on the fact that
https://sightreading.training/ allows to relay the MIDI in as MIDI out. If you're doing it between other applications, then maybe just make sure you have some application first in the line, that recieves from the MIDI keyboard and then outputs to the loop port.