Organise routes and bindings for pedals, switches, control surfaces?


Yup, you could to that - but you need to ensure that your rack states for the _MainKeyboard rack aren’t changed by the surrounding song. Easy to do:

  • Open the rack in edit mode
  • Select File->Rack Options…
  • Un-tick the box at “Let the parent song control this rack’s selected state and gain”

Now you select a rack state after you load your set list, it should stay there until you close Cantabile or load a different set list. Mind you, this will only work for pre-loaded set lists, so I’d go either with configurations or with some background rack routing tricks…




Thanks again!

Next question. On your “Notes only” passthrough route on the _MainKeyboard rack, you’re filtering on the route using the “funnel” icon, not filter dialog popped up by clicking “Omni”. What is the reason for choosing one over the other?


Simple habit - I’ve just always used filters to suppress or allow individual event classes. Wasn’t even consciously aware of the “Notes Only” checkbox :slight_smile:

Thanx for pointing that out - may come in useful at some point. For now, it doesn’t make much of a difference, since I don’t need state awareness of the NotesOnly filter…




An Update. I’ve abstracted my keyboards into racks and have Notes coming out from that rack into the VSTs.

Next, I want to look at faders, buttons, footswitches and pedals.

I think Torsten has his set up with abstraction based around physical hardware. eg. one or more intermediate racks and then the VSTs are connected or bound to that intermediate rack. The lines represent bindings and/or routes. Like this

I wonder whether there is any benefit in abstracting based around Functions as an alternative. For example building intermediate racks for a Piano, Organ, Audio Routing, Lighting Desk etc.

All of these racks would then be added to the song.

So the “Virtual Piano 1” rack would bring Notes from physical keyboard 1, Pedals from “physical keyboard 1”, String Resonance or dynamics slider from “Nano Key fader” The combined output of this rack would then go to the instrument rack containing the Piano VSTs.

Like this

The problems I am thinking about are easy ways to answer:-

  1. What have I mapped to this hardware button/fader?
  2. What have I mapped to this software function eg. “Next Song State”?
  3. How can I quickly repurpose this “NanoKey” which currently has faders mapped to functions across lots of different VSTs and C3 itself?

For the 3rd question, I might temporarily want to assign all the faders to be lighting controllers, It would be nice to just disable a rack with the existing config, and drop in a new “Lighting desk rack”.

I suspect this is all over complication, but it is going to take some effort to redo my songs and I’d rather get all the thinking out of the way before I do!

Any thoughts appreciated.


Are you doing this abstraction as I outlined in this post, where I create a master rack which I then embed into another?

It was the only way I could keep my custom routes “permanent” while still allowing states to run things.



Terry, thanks for pointing me to that post - I knew I’d seen an alternative method, but couldn’t remember when and by whom!

I’ll look at it in more detail over the next day or so - at 1st glance it looks like you’re describing exactly what I think I wanted!




I’ll be reading more on this interesting topic as I get my new rig setup. I am curious to know with all of these abstractions and racks if it leads to any noticeable latency? I would hope not on a modern PC, but thought I would ask the question! :slight_smile:


None noticeable here. It is pretty instantaneous the translation in Cantabile.



Thanks, Terry.

My next batch of Cantabile programming will probably virtualise things a bit more as explained in this interesting thread.




This abstraction thing looks interesting… and confusing at the same time. Are you doing all of the routings withing a single embedded rack, or creating purpose specific racks. I am guessing you are using this rack or racks within every song.

Any additional info would be appreciated!




Hey folk, how do you deal with a fader that would normally come in on a “faders” rack, but will always control a specific parameter in another rack. AND needs feedback.

For example, I have 1 physical endless encoder that comes into a faders rack as CC3 on channel 11. It has an LED ring so I need to get feedback to it.

I need to get it to an instrument plugin in another rack to directly control a parameter that needs a value between 0 and 1. I also want feedback from that parameter to go back to the LED ring.

As another example I have a “mute” button "button on my midi controller that needs to enable and disable a route in the “Global Out” rack that is added to every song. It also has an LED within the button so needs feedback to it.

Without abstraction, I’d simply add a binding in the instrument rack directly from the physical encoder to the plugin parameter. I’d add a 2nd binding from that VST parameter back to the LED ring for the feedback.

Similaly for the route enable/disable I’d add a binding in each direction within the Global Out rack.

With abstraction and all the faders coming into one rack, It does not seem to be possible to add 2 way routing between 2 racks. The Return route will not give the source rack as an option in the dropdown, presumably to stop loops?

How is everyone doing this in a scalable way for 16 faders, 16 buttons, and some pedal switches?


Bump - Anyone doing MIDI feedback between a rack of faders/buttons and an instrument rack?


I am - with a Behringer BCF2000 motorized slider box. I have eight faders working, though, not sixteen, but I could do banks.

Here is the post where I described my bindings:

As you can see in that post, I’ve relegated these duties to the “Background Rack” as I used them for every song, so in that sense they are abstracted I suppose. I know you’ve see that post already, but perhaps that contains some germs of info we can use for this application of yours.



Thanks Terry, yes I re-read your post last week to see if I could make it work for me.

In my case, I am not just controlling gain, and I don’t want to rely on position of the the racks within a song.

Hi @brad What is the reason that I can’t create 2 way routes between 2 racks within a song? Is it to prevent us from inadvertently creating loops? Does it complicate the binding execution order? Could it possibly be an enabled option?



I’m just jumping in a sec as something entered my mind - had you turned on the loopback capabilities in the Options/Miscellaneous section? I turned mine off as I managed to produce a SERIOUS MIDI feedback loop the one time I tried it and chickened out! But it may hold the key to making this work.



Yes I have that enabled, and yes I created a loop on purpose to see what would happen! :slight_smile: