Today I implemented a new feature for Cantabile — linked session states.


In my previous post about improving Cantabile’s song management I mentioned that in future, session states will be the recommended way for implementing song parts. One of the implications of this is that if you have a song with repeated parts (eg: chorus 1 and 2, or verse 1 and 2) where the setup is exactly the same you wouldn’t want to have update each state individually if you wanted to change something.

My original idea for this was to move the song part list from the set list’s song entry into the session file:

Thinking about it more though I really didn’t want to introduce another concept, another piece of user-interface and I also wanted it in the main window — not in some popup window. The list of song parts is probably more important that the list of states after all.

Introducing Linked States

Rather, I’ve taken a different approach and added the ability for session states to be “linked clones” of each other:

Linked states have different names and program numbers, but the actual session state is shared. When session states are linked any changes made in one will be reflected in the other.


Using linked states is pretty simple. Say you have a set of song parts like this:

You now want to create verse 2 and chorus 2, but you want these to mirror the state of the existing two states. Right click on each state and choose “Create Linked Clone”:

You’ll be presented with the same popup as creating a new state where you can enter a name and a program number (or just accept the defaults).

The states panel will show which other states are linked to the currently loaded state so you can tell which states will be affected by any edits you make.

The verses are linked:

as are the choruses:


This is fully implemented now, but won’t be released until the new song management is finished — which is going to be main main focus for the next week. Stay tuned.