Actually, I could imagine a way to do this, but it does need a way for a rack to send MIDI back to itself. At present, there is only a convoluted way to do this:
- Use a virtual MIDI interface like LoopBe or LoopMIDI to connect Rack MIDI Out to Rack MIDI In
- For multiple racks, you’ll have to either create one port per rack or filter by MIDI channel (which is messy for me, I usually set everything to Omni to keep things simple)
I tried to create an internal loopback method within Cantabile by creating a rack that simply forwards everything from MIDI In to MIDI out, but it seems C3 is too clever for me: it doesn’t allow a rack to connect to both input and output of another rack - probably to avoid feedback…
I agree with Neil’s positions: rack reset is too blunt an instrument for state changes, although it might be pretty good for song load triggers.
I’d love to have MIDI to MIDI bindings! I usually use the lowest three keys (below C1) as controllers. For two of them, it’s pretty easy: I bind them to Next State (Instant) and Previous State (Instant) in the global rack - and I can set them to Routing Mode Suppress, so the keys don’t get sent to any rack. But the third key I need to send CC 114 on channel 16 to bypass all effects on my VoiceLive. Currently, I need to do this with a dedicated route in the global rack with a MIDI filter that converts this note to CC114. But this route I can’t set to Suppress - which means that I can’t filter out this key at global level.
So in all of my songs, I need to set the keyboard range for my routings to start at C1 - which is tedious… Far easier to set create a MIDI to MIDI binding in the global rack that sends CC114, value 127 on pressing key B0 - but then I also need a binding that allows me to send CC114, value 0 on releasing key B0. Or I need a binding that can alternate between these two values: send value 127 on first press, send value 0 on next.
But I’d also love an internal loopback device: there is currently no way I am aware of that allows me to record my performance and then play it back including all bindings. Simply creating a media player that sends to loopback and then adding the loopback port to “Main Keyboard” would do the trick!
Re the triggers driving bindings: at present, I do this at song level; I have a number of initializing triggers set up in my default song; most of them simply set volume levels (FreeG) to 0dB so I am sure that everything is at default volume. But there are also some to send CC1 to hammond and rhodes (initialize Leslie and Trem) or CC11 to hammond (make sure pedal is on full).
Initially all these are active in the first states; when I create new states I decide which of them to keep active and which to de-activate (because I want to manually control levels across the song).
Works for me nicely; unfortunately it breaks jump prevention (binding doesn’t know what I send to the rack directly). This would again be something for a loopback device: instead of sending CCs to racks directly (and bypassing the binding at song level) I could simply send CCs to the binding. Would this work? Will have to test using LoopBe - haven’t fully wrapped my head around jump prevention.
Cheers,
Torsten