Theory: I’m guessing that you’re probably on Windows. Quite a few devices come with USB<>MIDI drivers for windows that do not properly support multiple clients and get tied to the first app that calls for it.
I.E. Launch Ableton first, and MIDI works inside. Launch Dorico, and no MIDI input from your keyboard?
I.E. Launch Dorico first, and you can play in from your MIDI keyboard. Launch Ableton, and no input?
If this is your problem, then there is a workaround.
A good Virtual MIDI port that properly supports multiple clients can solve the problem.
Install a virtual MIDI port. I’m on Windows 11, and find loopMIDI to be a great option. loopMIDI lives in the system tray and makes it easy to add/remove virtual ports of any name you like at will. The setup remains intact with your Windows user login until such time as you intentionally go in and change or remove it.
Once you have at least one virtual MIDI port setup…
Use something like Bidule or Bome to take control of your MIDI controller Keyboard. Let this be your central ‘router’ for managing and diverting MIDI anywhere you like. Ultimately, you route it through virtual ports into stuff like Dorico and Ableton. Add rtpMIDI and you could even send stuff over your LAN/WAN.
For me it works like this:
I’ve set up several virtual ports on my system using loopMIDI. Once I create them and name them as I like, they stick with my Windows user login account until I decide to remove or change them.
Before I launch any DAW or Scoring software I run a stand alone instance of Bidule. I have Bidule grab the inputs of my MIDI controllers, and route the output to virtual ports.
Here you can see that I’ve routed the inputs of my Arturia Keylab mkII into a trio of virtual ports: A, B, and C.
In the above setup, I send the first mkII port unmolested straight into virtual port A. My mkII sends the normal playing stuff through this first port, while it does more ‘fancy stuff’ like Mackie Universal Control, display and light manipulating sysex data, and more, over the second port.
I’m having bidule ‘transform’ some MIDI events that the mkII controller sends over that second port when pressing various buttons while the keyboard is still in ‘DAW’ mode (transport controls and such) into something far simpler and easier to bind to commands in Dorico. I route that port 2 transformation to virtual port C, and yet it’s still no problem to provide an unmolested version of the output over virtual port B (needed by my controller profiles that implement the fancy Mackie stuff, and more, in Cubase).
The bidule called MPK Transport is used to control some stuff in the main bidule instance itself. I personally do more with the first stand alone instance of Bidule than route MIDI, but that’s a whole new thread! The short version is: ASIO Link Pro + Bidule means I can route and manipulate MIDI and ASIO or WDM audio in all sorts of ways before it ever hits a particular DAW like Cubase or Dorico, and do it all again when a stream exits such an app
Since the virtual ports happily support multiple clients, I can then run whatever I like later. Instead of getting input directly from the Arturia USB driver, they’ll get it from the virtual ports.
In Dorico, I have it ignore all inputs but these new Virtual Ports that are relevant for the session.
There are more benefits to the setup than getting around single client USB drivers. Bome and Bidule offer all sorts of features to transform and manipulate MIDI data in real time.
Bome is geared more exclusively to working with MIDI streams, while Bidule can become a complete DAW/HOST in its own right.
The free Classic nagware version of Bome should be enough to solve the simple issue at hand (rerouting MIDI from dev to virtual port).
Read up on them both, give both a try.
Personally, I’ve found Bidule to be my ultimate Swiss army knife of a host and plugin. I run it when my system boots to gain control of devices with these problem drivers, but that’s only the beginning. It’s amazing as a diagnostics tool. It’s good for general routing and mixing. I often use it as a plugin to bridge VST3 plugins into VST2 only hosts (HALion 7 in Band in a Box, Finale, or Sibelius) and vice versa (Not really needed yet for Windows users, but it might be soon necessary to run such a bridge to keep using VST2 plugins in Steinberg hosts). I use it to blend multiple plugins into a single ‘super plugin’ instrument all the time! Bidule turns out to be a quite a ‘sound design’ tool as well.