I’m in the process of migrating from Cantabile 2, in which I use a single sub-session for each song and routing/splits/intelligence in my master keyboard, to Cantabile 3 in which I’d like all the routing/splits/intelligence to be inside Cantabile, so I could in principle use any old MIDI controller keyboard if I needed to.
I use a Kurzweil PC3x in setup mode, where each setup consists of a number of zones, with each zone sending note info within a specific range to a specific MIDI channel, transposed by a specified amount. I currently step through setups for a song (so all the zones etc. change), and would like instead to use song states. When a setup is selected, MIDI volumes and other controllers can be sent to each zone, which I use to set levels etc. All of this can be easily replicated within Cantabile 3.
The one thing I seem to be missing is that each zone can map MIDI velocities with offsets, scaling, curves etc. I know I can do this via MIDI filters on input ports, or on rack/plugin inputs. However as far as I can see it’s static across song states. This is a problem for me because I quite frequently have velocity mappings for a given sound change for different parts of songs (for example I might compress MIDI velocities to keep levels consistent as I play one part, but then want the full MIDI velocity range for another section requiring more emotion/feel).
Another scenario is when I’m using a sound in two successive song sections and want to play a certain amount louder in the second section, but don’t want the volume to suddenly jump up on any held notes when I switch states. I achieve this by offsetting velocities upwards in the second section and holding MIDI volumes constant, so only newly played notes are louder.
Is there any way to achieve this? The only way I can see at the moment is to have multiple input routes for each different set of velocity parameters, and switching them in and out by state, which starts to get messy quickly.
I can imagine supporting state behaviour for the full set of MIDI filters could be problematic, but I wonder if the special case of velocity mapping in this particularly useful scenario could be implemented to be state-dependent?
Incidentally I also need other MIDI filter type functionality to be state dependent, such as filtering out sustain messages for some sections, or doing state-dependent expression pedal mapping. However I think since these are more “special case” situations (compared to keyboard response, which is a factor in every state), it seems more reasonable to switch in/out special routes for those.