Hi @scheater5,
First, to explain the difference between the bindings:
- 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)
- 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.
- 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
- 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?
Brad