[Feature Request] Next Song (track keys)

Hey people,

I meanwhile did a few gigs with my cantabile setup and I’m quite happy with it. I came across the problem, to trigger the next state of a song (f.e. from verse to chorus) in the right moment. I work in that way, that each song-state switches between different rack-states. That means, that if I change to early from one state to the next state, the sound of my racks are changing to early too. So maybe @brad it’s an option to include a binding, that after it has been activated keeps track of the keys and switches to the next song only and as soon as all keys have been released.

What do you think about it? Good or not? :wink:


Would this link help?

or this?

Not really… or to say better: not with every plugin.

F.e. I had the problem with Native Instruments Massive. I use the rack states to switch from a warm sub-bass-sound to an aggressive saw-bass-sound for the chorus. But if I switch between those states, the sound changes of course immediately. And it would be nicer to activate the “key track”, play and after I release for just a very short moment all keys, the next state is activated…

I totally understand. I am sure someone will have an answer for you. God, I am becoming such a troll. hehe!:blush:

Would this thread be helpful to you?

In this situation, I would actually go with @Neil_Durant’s suggestion and use TWO instances of Massive in your song, keep them both active and simply turn on/off the routes from your keyboard by song state.

  • State 1: route to sub-bass is active, route to saw-bass is inactive
  • State 2: route to sub-bass is inactive, route to saw-bass is active

Cantabile will keep track of any notes still pending from State 1, so you shouldn’t get any hanging notes. And you will avoid any switching times - don’t know how quickly Massive changes patches - and any effect tails will ring out without getting cut off.

But the idea of having a binding fire when the last key is released is intriguing - there should be a way to use a MIDI plugin to do this? I’m sure this would be possible to code using a ReaJS script - keep track of all keys pressed (+) and released (-) and send a message once the sum becomes 0. Then create a binding that reacts to this message to switch states.

So, in order to switch to next state pending key release, you would need to activate this binding via a button on your controller, then switching should take place automatically.

So it is possible - just a bit of fiddling with the JesuSonic scripting language necessary…




Indeed, the “all notes released” binding idea is an interesting one. But it would still cut any envelope/reverb tails. Using two instances, and simply switching your MIDI routing ensures all envelope/reverb tails hang beautifully. And it also handles the case where you’re still holding a chord from the previous sound while playing the new sound, so they can actually overlap, without the use of splits. Also does the right thing with sustain pedal etc. :slight_smile:



Yup, that’s why I’ve come to use your method on most of my songs where a seamless transition or a quick availability of sounds after state change is paramount. I’ve had some interesting moments when a solo sound in one of my songs took a couple of seconds to become available - turned out that the Boogex plugin I used to dirty up a synth solo sound is pretty temperamental when woken up from a de-activated state. Keeping the solo sound activated but un-routed did the trick - solo was instantly available on state change.

The only disadvantage to the “route” method is that it is less clean optically: you can see activated / deactivated racks at a glance, whilst using routes you can’t see at a glance what is happening, unless you permanently un-hide all relevant routes (which makes things more cluttered).

So @brad, how about a graphical indicator on racks and plugins when all connected input routes are inactive (e.g. rack name / plugin name in a different color or font)? Note: I wouldn’t want this indicator to be displayed when no input is connected - I have a number of utility racks that can live very well without an input route - but only when there are MIDI or audio input routes and none of them are active. This would be a great help!



I like that idea!


You are right and normally I do it the way Thorsten suggested. But I think anyway that this would be a great feature. I don’t say that I would use it every time and exclusively. But to have the option to trigger an event on key release might be a great idea in general. :wink:

Isn’t there a way to just use a binding with a velocity of zero to achieve this ?

Nope - this would fire on EVERY note-off. What @FantomXR is after is a binding that only fires once he has released the LAST key.

1 Like

…and any sustain pedal affecting that channel has been released…

Envelope/reverb tails could be handled with a delay feature like the one on Song - On Load.

Nope - the delay feature will only make the complete patch switch occur later - then the nwe sound won’t be available for playing until the reverb / envelope of the previous one has rung out.

So if you want to play a new sound while the old one is still ringing out, there isn’t really an alternative to having both active at the same time, which means two instances. With reverb tails, there is the option to have the reverb separate from the synth plugin - so if the synth sound has a fast envelope, you could switch the synth quickly and leave the reverb / delay constant. But then, if your chorus needs a different delay setting than the verse, you have the same issue at the delay plugin level, so you’ll need two delays…



Damn, you’re right. Well there goes my attempt to contribute… :slight_smile: