New Bindings System Available Now (build 4100)

According to Brad, 41xx is still experimental, I installed it on my spare PC, with no problems for now.

TBH, I don’t have complicated songs and racks like other forum users have, so you better trust our gurus more than me.

I’m still considering this experimental. It’s getting better and close to the point where I’ll push it into the experimental release stream which will make it much more public… and then we’ll see what happens from there.

Build 4115 available now fixes some issues with “on load” bindings and several issues around banked program change selector dialogs and using patch files.

1 Like

Now I am over my gig and next one in 6 weeks, I am interested in giving this a spin. As well as backing up the entire set, are there any other config files I should ensure are saving off if I need to revert?

1 Like

Use Macrium Reflect to completely backup the OS and any data drives.

2 Likes

A bit of overkill for this case if you want to just restore a couple of song or rack files to previous versions.

Essentially what you need to back up are the song and rack files (don’t forget the background rack) - these will be changed by the new bindings system if you save them in Cantabile 41xx.

I use Git to keep track of changes - makes it easy to see exactly what changed. But Git is essentially a programmers’ tool - if you’re not into that, easier to just keep a copy of your rack and song files in a “pre-4100” folder.

1 Like

Thanks. I do that as a matter of course, and indeed use Macrium as my imaging tool, but was asking what files might be changed, that I might specifically wish to pay attention to.

1 Like

Thanks, Torsten

So the bindings migration is only changing Songs and Racks? Nothing in Cantabile’s config?

Easy enough to save off as you suggest if that is all that is being modified.

That is what I was asking.

1 Like

According to @brad’s explanations, that’s all. I don’t really see anything in Cantabile’s configuration files that would need to change - no changes to any settings so far. All that’s changing is the way that Cantabile manages bindings - and that’s purely songs and racks (including background rack).

Cantabile 41xx does actually save a backup copy of the original rack/song (extension .pre4100) when it saves them in the new format - but I find it easier to have the original file stashed away somewhere to be absolutely sure. And using Git, I can actually dig into what changed in the file - which is helpful at times (ugh, what did I do here…). I make regular monthly commits, so I have a timeline of changes to my songs/racks.

Cheers,

Torsten

3 Likes

Thanks for confirming Torsten. All useful info from somebody who was a n early mover! I do not use background racks myself, I have a linked rack in each set performing the equivalent function but set specific. So sounds like everything I need to worry about will be contained in a folder for a set and its sub folders and for my common racks.

So doing a disc image (worst case), and folder clone is enough to be “safe” in terms of being able to revert if needed.

I use GIT for software development. Hadn’t thought of using it for Cantabile, but not a bad idea! I might look into that.

1 Like

yes, given that Cantabile’s core files are easentially JSON text files, using a version management system like Git makes a lot of sense - I think I stole the idea from @Neil_Durant

3 Likes

Just to confirm what @Torsten has already said, yes, it’s just song and rack files that are different in 41xx.

To be clear:

  • Builds 41xx will upgrade songs and racks from pre <4100 to the new format
  • If the file is saved by 41xx then it will always be saved in the new format
  • Songs and racks aren’t always saved, in which case the file will be left alone and re-upgraded each time it’s opened.
  • If you do happen to save a file in 41xx and then load it in a pre 4100 build, the file will open - but all the bindings will be missing. This is because 41xx saves the bindings under a new key in the file and older builds don’t know to look there - an even if they did they wouldn’t understand what’s there.
  • All this applies to the background rack too - so don’t forget to back that up.
  • When 41xx saves a file that it upgraded from pre4100 is saves a back up copy with a .pre4100 extension (eg: MySong.cantabileSong.pre4100). If you need to go back and you don’t have another backup, just just delete MySong.cantabileSong and rename MySong.cantabileSong.pre4100 to MySong.cantabileSong and old builds will be able to load things as they were back then. Obviously changes you made in build 41xx will be lost.

As for git… if you’re already familiar with it then yes it’s a good way to manage your Cantabile files. If you’re not familiar with it, it’s probably not worth learning just for this.

Brad

3 Likes

As one who hasn’t the first clue what ‘Git’ is, if it’s useful to us I’d appreciate a pointer to a recommended/quick tutorial?

I second @brad when he says

Anyway, git is a Version Control System (VCS). You can find some basic information here:

The advantage, with respect to (say) Dropbox, is that it keeps track of all changes, it can restore any previous version of the files (it is optimized for text files), it allows for creating new “branches” etc.

The saved files can reside on your own PC, but you can use a cloud based repository like GitHub, so that they are saved on the cloud and they can be retrieved from any PC (so that you can sync your files among different machines).
git is a particular VCS, not the only one, though. I am not an expert in git, since I have used another system (CVS) for many years and only recently I have switched to git.

Gabriel

Edit: I must add that (at variance with Dropbox) the user must explicitly give the command to store/retreive files from the repository. It is not a “set up and forget” system, at least in the way I use it.

2 Likes

Thanks for that. As a (procedural, not OO) programmer in my previous life I’m familiar with version control, et al - but not this new world. That’s useful information, and I will be seeing if I can make use of it. :+1:

1 Like

Dropbox can also keep an archive of previous versions, but that feature has been reduced to 30 days retention only in the standard edition - need to pay 40€ per annum to have 1 year’s version retention :confused:. So the Dropbox versioning feature is now only really useful to revert erroneous saving of files. A pity, really…

GIT is pretty good. Much better than the old systems like CVS or SVC that you might remember.

And it’s free. I use it integrated with Eclipse for my librarian software development, but had not thought of it for version control for Cantabile. but my cloud backup system iDrive also has file history, so need to check and see if it is worth the effort of adding GIT as well.

I have 2 types of bindings that are either not supported or not working in the 41xx builds in the same way as pre-4100. Can you comment on whether these are planned to be addressed or if I need to find an alternative?

  1. If the Source are MMC transport messages such as MMC Rewind, MMC FF, MMC Stop, MMC Play, etc., then the Target action such as Set List Previous Part, Set List Next Part, etc does not work for me.

  2. In the pre-4100 builds, I have a binding that takes a ControllerNonEdgeButton and translates it to a ControllerSwitch with latchMode=Toggle. I use this to turn a footswitch into a Leslie Slow/Fast Toggle. Cantabile 41xx builds report that Toggle mode is not supported.

Hi @Roland_Robertson

They should work. So I can be sure I’m addressing the correct thing, can you send me a pre4100 file with the problematic bindings, along with a note or screen shot of which ones aren’t working and I’ll get it fixed.

Brad

Thanks for the response @brad.

Attached is a zip file containing Rack and Song files (edit to remove unnecessary objects), both pre-4100 and build 4115. The Background rack contains the MMC bindings and the Song/Rack contains the ControllerNonEdgeButton to Controller(Switch)-Toggle binding.

For the MMC bindings, I can see the MMC messages using MIDI Monitor, but they don’t seem to trigger the binding action in build 4115.

This is the error I see when editing the binding where the Target latch mode is set to Binding:

Let me know if you need more details.

bindings.zip (18.3 KB)