Bug in variables?

@brad, here’s one for you:

I’ve created a State->OnLoad binding that sends a sysex string out to a MIDI port. This message contains strings for the current song, the state number and the state name (variables: Song, SongPart, State).

I use this to drive a little display app on my LivePrompter tablet, so I don’t need to glance over to my Cantabile Laptop.

But: when I switch from Song 3,1,State C to Song 1,1,State A, the sysex message contains “Song 3,1,State A” - so the current state and current state number are encoded correctly, but the song is still stuck in the previous song. Seems the previous song is still active while Cantabile is loading the first state of the new one?

Hope you can fix this!



Quick update:
Just tried to work around this with a separate “Song->OnLoad” binding to update only the song name, but also the “Song->OnLoad” binding sends the previous song name in the “Song” variable.

Now I changed the “Song” variable to “SongTitle” and things changed for the better; seems that this variable is updated in time for the bindings to catch the right one.

So, for the moment, my display app works, but the difference between “Song” and “SongTitle” still eludes me…



I use this feature also. But I don’t have in mind if I take Song or SongTitle as variable. I could check it tomorrow.

Works nicely with “SongTitle” now:

If anyone’s interested, I can share the “remote display” app…



1 Like

Hey @Torsten

Firstly the difference between Song and SongTitle - which is confusing and I had to look it up to remember the difference, but anyway…

  • $(Song) refers to the currently selected song in the set list
  • $(SongTitle) refers to the currently loaded song

Note that Song can be null if the currently loaded song isn’t in the set list.

The problem here was that the set list doesn’t change it’s internal concept of the currently loaded song until after the new song is loaded (ie: after the sysex is sent).

I’ve made a fix for 35xx but don’t think this is significant enough to address in 32xx - especially since you have a working solution anyway.

Ah, that clarifies the different meanings - so in case of the sysex I’m sending, SongTitle is the better choice anyway, since it will also work without a set list loaded.