Hey @leolabs. One minor inconvenience that we have to deal with on our mobile rig is importing setlists. As I’ve mentioned before, our Mac mini is mounted inside of the PA and when powered on, Ableton and Ableset startup automatically. When using an iPad as our interface, I can’t reference the setlists that are stored on the computer. Instead, the import dialog is only showing me the iPad’s storage.
I can create a UI inside my Ableset plugin for viewing setlist files on the host computer. Could you expose an Ableset API (POST) for importing a setlist.json file? Thanks a million!
Hey @RichardB,
You should be able to update the setlist using the /api/setlist/setCueMeta
endpoint. This endpoint takes a JSON object with a metaMap
key that contains the setlist you want to store and a setlistName
key to set the name of the current setlist, e.g.
{
"metaMap": [
{
"id": "2616",
"order": 0,
"skipped": false,
"stop": false
},
{
"id": "1848",
"order": 1,
"skipped": false,
"stop": false
},
{
"id": "7208",
"order": 2,
"skipped": true,
"stop": false
},
],
"setlistName": "My Awesome Live Set"
}
Each song needs at least an id
field, all other fields are optional. All songs that shouldn’t be included in the setlist need to be present in this meta map as well, with their skipped
property set to true
.
Let me know if this works for you!
Thanks a million @leolabs ! I can’t wait to try this and I’ll follow-up with how it goes. Hopefully tomorrow I’ll be back at my dev machine.
1 Like
setCueMeta
works perfectly for importing! Thanks so much for the info!
One other question: Is there way to get the state of an edited (unsaved) setlist? I can iterate over the DOM elements to get [data-id]
and .skipped
but that requires all list items to be visible. (not desirable)
A custom saveSetlist
function is needed when on an iPad. This is because the storage is limited to the iPad and not the host Mac Mini where it needs to be.
Hey @RichardB,
Currently, there’s no way to get a list of skipped songs from the DOM, but you could fetch a list of all songs from the API (GET /api/setlist
) and then mark those that you don’t see in the DOM as skipped.
I hope this helps!
Thank you @leolabs . I’ll use this workaround until a useful API is released
1 Like