Hey @KevinP,
One question: when do you build the set, and who does it? If you put it together before the show with a laptop at hand, the text paste approach covers it. If you’re rearranging blocks during the show from a tablet, the answer is a different one.
For that second case, here’s a Canvas with one button per saved setlist. Save a setlist for each block combination, then tap to switch. The button of the currently loaded setlist lights up brighter, and the label at the top shows which one is active:
[{"type":"label","label":"${osc(\"/setlist/name\") ?? \"\"}","textColor":{"type":"preset","color":"white"},"font":{"size":50},"width":600,"height":70,"x":40,"y":40,"zIndex":1000},{"type":"button","buttonType":"osc","label":"Block A","textColor":{"type":"preset","color":"white"},"backgroundColor":{"type":"dynamic","template":"${osc(\"/setlist/name\") === \"Block A\" ? \"green-600\" : \"green-900\"}"},"font":{"size":40},"width":260,"height":200,"x":40,"y":160,"zIndex":1001,"onPress":"/setlist/load \"Block A\""},{"type":"button","buttonType":"osc","label":"Block B","textColor":{"type":"preset","color":"white"},"backgroundColor":{"type":"dynamic","template":"${osc(\"/setlist/name\") === \"Block B\" ? \"green-600\" : \"green-900\"}"},"font":{"size":40},"width":260,"height":200,"x":330,"y":160,"zIndex":1002,"onPress":"/setlist/load \"Block B\""},{"type":"button","buttonType":"osc","label":"Block C","textColor":{"type":"preset","color":"white"},"backgroundColor":{"type":"dynamic","template":"${osc(\"/setlist/name\") === \"Block C\" ? \"green-600\" : \"green-900\"}"},"font":{"size":40},"width":260,"height":200,"x":620,"y":160,"zIndex":1003,"onPress":"/setlist/load \"Block C\""}]
To use it, copy the block above, open a Canvas in edit mode and paste. Then rename the buttons and the setlist names in each onPress command to match yours, and add as many buttons as you have combinations.
Two things to keep in mind:
- Loading a setlist replaces the current one rather than adding to it, so each saved setlist should be a full set you swap into, not a block you stack.
- It doesn’t interrupt playback, so you can switch mid song safely. I tested this from a Canvas button.
Hope that helps!