Without third party tools…the natural workflow of this sort of tracking DAW…Yes, you can do complex/fancy keyboard and MIDI controller mappings directly in CuBase. Simply use LOTS OF TRACKS, ‘filter OUT’ things you don’t need for a given track/routing, and keep it all in nicely organized folders.
Use 16 MIDI Tracks in parallel…rather than trying to set up all those AUX MIDI Sends and ‘echo’ events, dump your MIDI keyboard controller into many tracks at once and simply ‘filter out’ what should NOT go into a given channel…just lay out 16 tracks, 1-16, from the get-go and direct them all where you want them to go. Drop them all in a Folder in the order you want so it’s easy to keep things grouped…you can easily fold/unfold that stack of tracks when you need more screen real estate.
Set each track to his own channel for the MIDI Output, while all the MIDI inputs are set to your MIDI controller.
Filter out note events using a local input transformer for all but but the channel(s)/note ranges that should be receiving note on/off events.
(Example of a Local Input Transformer that filters all note on/off events for a track)
Each track can have up to 4 independent ‘local transformers’ for filtering out the ‘unwanted stuff’. If all you are doing is ‘filtering’, then you can string together lots of ands and ors to filter out gobs of things in a single transformer. If they are MIDI tracks (not Instrument tracks), you can also get another 4 through MIDI Insert slots (and these can be pre, or post sequencer). Don’t forget to take advantage of transformer presets so you don’t have to keep building things over and over again from scratch on all your tracks. You can also take advantage of exporting a set of template tracks or MIDIloops to make quick work of bringing in a 16 track configuration quickly and easily. Experiment with things like clicking the record button under the folder as opposed to the ones on each track…starting to get the picture?
Don’t hesitate to use more than 16 tracks if you need/want them! The point is that during recording, you get an unlimited number of tracks in CuBase that are much easier to mute/block/arm/disarm/re-route, than they are to echo or duplicate ‘in real time’. Instead of thinking of your MIDI controller as a water hose with a sprayer on the end, think if it the other way round…a big bucket catching rain water, but with lots of nice pipes and spickets on the bottom that allow you to direct that rain water where-ever you want. Think of it more like hooking up dozens of mics at once, all routed and ready to go, where you can simply toggling them off and on (or filter the junk you don’t want going to a given routing destination out) as needed. If you need to dump the same event to 50 different channels, just open the inputs for those 50 tracks and set the ‘output’ of each track where you want it to go
Enable record (or monitor if you just want to hear without recording) for all 16 of the tracks at the same time…
At this point note events will only go through the channel that isn’t filtering them. CC events will get echoed and channel transformed to all of your armed (for monitoring or recording) tracks.
(Example of a 16 channel Omni Instrument Setup:
Note it’s all in a folder. In this case I’m filtering note on/off from all channels but 1 using local input transformers, and passing/recording all CC events to all 16 channels. They get transformed to the proper channel because of my track channel outputs. I can mute/unmute, solo/unsolo, arm/disarm recording or monitoring all of the tracks in the folder with a single click by clicking the corresponding controls of the parent folder. I can easily collapse it all into a single lane in the project editor by closing the folder. Later in the project, if I wish, I can freeze, and then merge those 16 tracks into a single track for easier editing/scoring/etc.
Once I’ve set this up, I’ll select the folder and ‘export it’ as a track. Now I can quickly import this folder into any project I like all set up and ready to go.
If I wanted, I could easily set my track’s input transformers to only let through specific channels, ranges of notes, etc. for each track (make keyboard zones, remap various keys, etc.). The main point is…use lots of tracks…it’s easier to filter things you do NOT want, than to try to transform and echo things to several places from a ‘single track’.)
It’s easy to merge/freeze it all down to a single track after recording passes. And it’s just as easy to explode it back out into ‘channel lanes’ (separate events into independent ‘parts’ by channel on the same track and stack them) or back out to fully independent MIDI tracks. Just remember to freeze first before merging, and set your new merged track(s) to channel ‘any’ for the output so each event gets sent to the right place.
Keep in mind, that you can also build generic remote device maps that will allow you to remote control things like toggling the mute, monitor, and record controls of a track. I.E. One could make ‘organ stop’ style configurations to arm/disarm any tracks that you want to be active and sending/transforming to the destination assigned for the track (I do this with a bank of MPC pads myself…tap pad 1 and it lights up while track 1 gets armed…tap it again the light goes off and track 1 gets disarmed, etc.). If you want a single MIDI event to do several things at the same time you can also ‘stack maps’ with duplicate events linked to different DAW controls.
There’s a ton of stuff you can remote control through these generic remote maps that do not have native track types or automation lanes in the CuBase Project Editor (stopping the daw, launching macros, arming/disarming tracks for recording/monitoring, and much more). The good news is, you can use a virtual port and route a MIDI track through a generic remote device and automate all that stuff directly to a MIDI Track as well!