Do you mind running your controller through a 3rd party app before it hits Cubase?
I’m on Windows 10 here, so I use a virtual port (loopMIDI) in combination with something like Bidule or Bome Translator Classic.
Either app would serve the purpose of transforming MIDI events in real time.
You can try both of those apps for free. Bidule’s early bird is good until sometime in October, at which time Plogue usually puts up a new free license you can grab. If you register it, then you also get plugin versions (VST2, VST3, AU, CLAP, etc.). Registered Bidule also gets you access to dev kits (if you want them) more releases and versions as they come (64bit audio precision, discrete processing, etc).
Bome Translator Classic is free with a nag screen. You can optionally register it at a low price to get rid of the nag screen. They also offer Pro Version with more features.
Personally, I prefer Bidule, as it does a whole lot more (could write books about what all it can do)…and not just for MIDI, but it can also host/chain/bridge plugins, provides an OSC server/client, and can route/manipulate audio streams. It’s one heck of an app! Even better if registered and run as a plugin in your favorite hosts (for different purposes than described here).
Personally, I route the actual hardware controller into Bidule, then send that to a Virtual port.
Example:
My MPK261 has 2 MIDI Outputs over USB into the PC.
I’ve Made a couple of Virtual Ports using loopMIDI that I’ve named MPKA and MPKB.
I launch a simple stand alone instance of Bidule. If all I’ll be using it for is to redirect and/or transform MIDI, I don’t even bother to connect Bidule to any ‘audio’ interface.
Inside Bidule, I connect my MPK’s inputs into the virtual ports I’ve made (MPKA and MPKB respectively).
Now I can add whatever bidules I like to transform MIDI in real time before it goes into a Cubase. Inverting some CC’s before it ever hits Cubase would be a breeze…in fact, I use it to do just that with some pedals that work backwards from what the MPK expects (and the MPK firmware doesn’t have an option for that pedal port to fix it for me).
I do a lot more with that initial Bidule Instance. Besides inverting my backwards pedal, I can set up split keyboard arrangments with controlers that are too dumb to do it on their own. I can remap CCs. I can build arp engines and one key chord systems. On, and on, and on.
Over in Cubase, rather than using the actual MPK inputs, I’ll use those MPKA and MPKB virtual ports instead. In fact…I’ve set Cubase to IGNORE the real MPK MIDI inputs for two reasons.
Reason 1: The USB>MIDI drivers with my MPK aren’t so good at Multi-Client support, and sometimes I like to have multiple hosts running at once (Cubase + Dorico for instance). In contrast, loopMIDI virtual ports are fully multi-client compatible.
Reason2: It can help avoid some unwelcome MIDI feedback (double events could occur if you have a track to set ALL INPUTS, and your hardware controller’s actual MIDI INPUTS are not ignored by Cubase). If you do slip up when routing tracks around get an endless loop by accident, loopMIDI will mute itself. Correct whatever you did to cause the endless loop, then go to the Windows system tray to unmute it.
Back in Cubase, I’ve set it to ignore the actual controller’s MIDI input(s), and instead listen for the Virtual Port(s) that I’ll be routing through Bidule or Bome.