Load song by...name?


So I’m reworking my live setlist while we’ve got some quarantine-induced down-time. One thing that drives me crazy is that I really like keeping the numbers of my setlist in order - so if we add a new tune or something, and I “Reassign Program Numbers,” then all my bindings that load songs break because the numbers don’t line up anymore. It’s not a huge deal to go fix them, but I’ve put off cleaning up my setlists before because it’s a time sink.

Seems like the better solution would be to map the bindings to the song save name somehow, and then they would load regardless of what setlist number was assigned to that song, but I can’t find a way to do that?

Also, I do not grok the difference between Load by Program, Load by Index and Load WITH Program and Load WITH Index. I couldn’t find it elucidated in the manual.

Any help would be appreciated.


Hi scheater5,

I see your dilemma, a possible fix would be to have the index numbers independently sortable from the program numbers. Then you could have list orders that were different from your program number dependent bindings. As far as the difference between the Program by and Program With binding choices the Program by allows continuous controller absolute values if you use a MIDI input type of that sort

or if it is set to a no edge input it can pick an explicit program number.

The Program with binding assumes it is a momentary no edge input and defaults to that when you select it and provides a sandwich menu with the current set-list program numbers and the song they are associated with for your selection.

Maybe @brad will consider this discussion and see a helpful fix or method to help you out. I would vote for it!



Hi @scheater5,

First, to explain the difference between the bindings:

  1. Load By Program - loads the song whose program number matching the value passed from the MIDI event (eg: a program change number, or controller value)
  2. Load By Index - loads the song at the index specified by the MIDI event. eg: a program change 2 will load the second song in the set list regardless of its program number.
  3. Load With Program - same as Load By Program but the program number is specified explicitly in the binding rather than coming from the MIDI event
  4. Load With Index - same as Load By Index but the index numbers is specified explicitly in the binding rather than coming from the MIDI event.

In short there are two ways to reference a song in the set list:

  • By Program - the program number set on the song entry
  • By Index - the position of the song in the list (regardless of program number)

and there are two ways of binding:

  • “By” where the program number/index comes from the incoming MIDI event (or other binding source)
  • “With” where the program number is specified in the binding itself.

As for binding by song name, that might require some refactoring of the binding framework so might not be trivial. I’d have to look into that.

In the meantime, I think the solution is to simply not reassign the program numbers in your set list. The whole idea of the program numbers here is that they’re a unique id for a particular song. Assign the song a program number, use it in the binding and then don’t change it. Is there a reason you need to reassign them?



Hmm…I suppose I don’t have to.

I use a very large setlist (mostly consisting of a small number of linked racks, configured in various ways) because my band doesn’t have a “set list” exactly live - the bandleader calls tunes on the fly based on the crowd. So I just have my setlist in alphabetical order and…I guess it just seemed weird to have the songs not also in numerical order. But yeah, I guess I can just not reorder them, and the numbers will just reflect when the song was added.

And thank you very much for the bindings explanation - I hadn’t even considered that someone might want to call songs by position in setlist regardless of number, but it makes a lot of sense for bands that decide the order of tunes before a show (which…is probably most bands, just not what I’m used to).