OK, that’s a ton of stuff…
Now let’s take this one step at a time (and be sure to take a look at the excellent guides and @brad’s excellent videos in the support section).
Cantabile saves your setups in individual files - these are called “songs” (that’s because you usually create one such file for every song in your repertoire and customize them. A song contains all the plugins you use and the routing between them.
A set list is a collection of such song files, arranged in a certain order - as you would arrange a list of songs for a gig with your band. Cantabile allows you to easily step through such a set list, so you can get through your evening without having to find your songs and load them when you need them
Within a song, you have “song states” - these are specific configurations of the plugins loaded with the songs and the routes within it. You typically use those song states for sections of your song, intro, verse, chorus etc., so you can have different configurations of your plugins
Normally, when you load a song, Cantabile needs to load all the plugins within that song into memory, initialize them to the state they were in. This can take some time, especially with sample-based plugins. To allow for quicker switching times, Cantabile gives you the option to “pre-load” a set list, i.e. load all plugins for all songs of that set list into memory. This makes song switching much faster - but takes a lot of memory
to avoid having to load the same plugin used in 20 songs 20 times, Cantabile has so-called “racks” - these are essentially encapsulated collections of plugins that you can load within a song (“song within a song”). These racks are shared among songs, so they are loaded only once within a setlist and stay in memory. A bit like a “super-plugin”, if you will. Most of us here put our key instrument in racks, e.g. a “piano” rack an “organ” rack etc. and then load them into songs and simply select “rack states” (like presets for the “super instrument”) in our individual songs. It’s like constructing a setup from different hardware synth modules and their presets.
So much for Cantabile basics in a nutshell - please study the Guides section for more.
Now on MIDI mapping: the pizMIDI plugin I mentioned is a simple note mapper - it maps input notes to output notes, e.g. map C3 to E4. So it is easy to build a drum map with it. And with Cantabile’s plugin presets, it’s super-easy to switch between different maps - e.g. I have different maps for different e-drum sets with different output configurations controlling the same drum instrument (Slate Drums).
I also drive multiple drum instruments from the same drum module. To do that, I use Cantabile’s MIDI route properties first - the simplest way is to select key ranges directly in the route properties (e.g. C3-D3). But you can be far more sophisticated with the “suppress events” filter in routes. With this, you can tell Cantabile exactly to “allow” specific notes or to “suppress” them:
So on one route, I’ll “allow” only the specific trigger pad that drives my cowbell in Sforzando, on another route (that goes to Slate Drums), I will “suppress” the same note to make sure this trigger doesn’t go to Slate.
Re delayed notes: I don’t think there is a function directly in Cantabile that can create delayed duplicates, but there is certainly a MIDI plugin somewhere that will do exactly that (guess somewhere in the pizMIDI toolkit). Simply insert that on a specific route, and it can do its magic within Cantabile.
Once you get used to knitting your songs together with plugins/racks and routes, anything is possible - and you can switch all that to a new config for the next song or the next song section with the push of a pedal.
It’s all pretty sophisticated stuff - but if you’re used to dealing with Bome’s MIDI translator, you’ll get the hang quickly once you give the guides and videos a first run-through.