Hey Torsten
you will actually have a timing advantage of one audio buffer compared to my approach - using the loopback ports will add one buffer cycle to the processing time for the MIDI commands.
That is why I am using the input ports directly for time-critical MIDI data (notes, aftertouch, pitch and mod) where every cycle counts. Everything else is abstracted through the background rack.
Reason for this is that I have various control keyboards and other controllers (fader/ rotary controllers, drum pads etc). If I wanted to assign them all into the same “logical” ports directly (“faders”, “drum pads”), I couldn’t do the conversion to standard controllers or notes on the inputs, since this conversion would apply to ALL physical inputs attached to that logical port. So I added one additional layer of conversion inside my background rack - one for each physical controller. These then take the input from my controllers and feed it via loopback to my standardized “abstract” ports, like “Pedals”, “Drumpads”, “Drawbars”, etc.
I have multiple such conversion racks in my background rack, and I only switch on the ones that correspond to the hardware I am currently using in a rehearsal or gig. So when I have my Motif as the upper keyboard, I activate the Motif rack, when using my custom-built “magic keys”, I turn off the Motif rack and activate the “Magic Keys” rack. Same with my drum pads - I have a Presonus Atom and a Korg NanoPad. These are laid out differently, so I use conversion racks to make them fit with my setup.
So in any song, I only use my abstracted standard ports “Pedals”, “Drumpads”, “BG Rack” for controllers; same in my background rack bindings.
Any new controller I bring into my setup will only need one more conversion rack to play nicely with the other kids.
One example: with my new NanoPad, I decided to use one of its scenes as transport buttons for any backing track I have in my songs, so I built some bindings into the conversion rack that send my standardized commands for that to the “BG Rack” loopback port:
These standard commands then get picked up by some bindings in my background rack and steer a media player in the current song (if there is one):
This looks all a bit convoluted, but it is extremely powerful: Input from any attached MIDI device can be standardized and routed to multiple abstracted MIDI ports (which won’t work with your conversion directly on the input) - my “magic keys” (one physical input) routes to “Second Keyboard” for key presses, “Pedals” for pedal controls, “BG rack” for standardized controllers, “Drawbars” for drawbar controls, and “drumpads” for triggering drums and samples.
Makes my life with multiple hardware controllers really easy, so including my FCB1010 would just mean adding another routing rack to feed my existing abstract input ports.
Sure, this is not for everybody, but it’s great what you can do with Cantabile!
Cheers,
Torsten