I don’t think it’s something that can be fixed at the App level. I believe it’s a ‘Windows device driver thing’.
On Windows there are some MIDI devices that ship with exclusive mode drivers, or simply fall back to a really old MIDI>USB driver from way back in the XP days. So, the first MIDI app that runs on the system grabs it and works. Subsequent apps are not able to connect to the driver.
Check for custom or updated drivers for your device if possible. Sadly, there are some controllers that never have, and never will get a modern driver (I have two controllers by AKAI that still use those old Microsoft reference drivers). If you have such a controller, the first app launched that grabs the device wins.
If you need to run multiple MIDI Apps at the same time there is a work around.
Install a virtual MIDI port such as loopMIDI. There are several out there to choose from but I’ve grown fond of this one since you can add or remove new ports at any time from the system tray, and name them anything you like.
Use something like Bome Translator, or Bidule. Launch one of these first, and connect it to your MIDI controller.
Alternatively, if you’ll be launching a DAW like Cubase, start this BEFORE you start Dorico. Then, you could set up a pass-through track (Empty MIDI Track with your device as INPUT, the virtual port as OUTPUT, and channel set to ANY, and the MONITOR button toggled active) to the Virtual MIDI port and arm it for monitoring any-time you need to send MIDI Controller data to other apps.
If you use a pass-through track in Cubase, be careful not to create an endless MIDI loop. Refrain from setting any of your MIDI/Instrument track inputs to ‘All Devices’, or go into Studio Setup and disable/mute ‘input’ from the Virtual Port that you’ll be using for this purpose.
- Set the output of Bome/Bidule/DAW-Routing to your Virtual port.
The virtual ports have no problem with multiple apps communicating with them.
Dorico will set up all the ports it can. The stuff using exclusive mode drivers will be bound to the first app that grabbed them, but the virtual port(s) will get recognized; thus, granting you a way to route that device into Dorico via the virtual port.