Move Auto-Play down to song level

It would be extremely helpful to make autoplay available at the song level.
This way, the user can run 2 or 3 songs and stop. Then 2 or 3 more, and stop.
This would be more ‘normal’ as a set usually runs.

Perhaps autoplay=yes, autoplay=no, or play after ## seconds, would be ideal.
This way if the user just has to get ready for the next song, the machine will handle it while the performer does what they have to do…

Hey @Maverick, welcome to the forum!

AbleSet should already be able to do what you described, except for the delay between songs. If you end each song with a SONG END locator, you’ll be able to decide per song if playback should stop or if AbleSet should automatically jump to the next song.

Here’s a video where I demo this: https://youtu.be/UFcMi-Xyu1c?t=126

The ability to add a delay after a song is already on my todo list :slight_smile:

Let me know if this covers your use case!

Unfortunately, that’s not helpful.

For clarification, I only use Multifile mode.

It would be to limiting and time consuming to setup multiple songs in a single file in Ableton Live, which is why I waited for Ableset to happen before I ever considered buying Ableton Live. When you play frequently, you don’t want to do the same songs in the same order all the time.

We plan sets before we go to the venue (set them up in Ableset) because time is precious when we get there for setting up, sound check, etc.

Planning a set involves excluding and including songs from our catalog, especially adding new songs.

This modular approach is much more efficient.

Autoplay or Wait are definitely attributes of a SET, but not in Ableton Live. In Ableton Live, each song stands on it’s own, so it’s much more practical to use them in various sets, in different orders, with different songs.

I’m simply saying it would be much more useful to have autoplay or wait as options at the songs level rather than the whole set level, but it needs to be in Ableset as part of the set. (MULTIFILE MODE)

Hey @Maverick,

This approach also works in Multi-File Mode. If you put a SONG END locator at the end of each song, i.e. each project file, then you’ll be able to use the stop toggle in AbleSet’s setlist editor to decide whether playback should stop at the end of each song or whether the next song should be started automatically.

Let me know if this works for you :slight_smile:

But again, the song file is saved with or without the locator, so the user is committed to that attribute every time they run the song. Additionally, it’s at the END of the song, rather than the beginning. This attribute is much more about the following song, rather than the current song.

In other words, this approach could work better if it pertained to the start locator, such as a song that requires the guitarist to put on a capo, but even then, it depends on placement in the set. If the previous song or next song requires the same capo, then no need to wait.

So again, it’s really about the SET (song order) more than the song (songfile).

Additionally, Is the “SONG END” the exact label that Ableton is looking for?
I’ve been putting a locator named “STOP” at the end of each song, assuming that as long as it doesn’t have the ‘>’ in front of the name, that it didn’t matter.
Perhaps if we could do something with the first locator, it would be better than nothing, though still not as good as what I propose.

auto-play = true or false (0 or 1) in the JSON file of the saved set (for each song) would be awesome!

Have you tried this?

Thanks for trying, but no that doesn’t help.
I guess I’m not explaining the issue very well.

  1. I absolutely don’t spend the time to set up multiple songs in a single file in Ableton Live. That’s just a really bad idea. Way too time consuming and redundant. Without AbleSet, running in Multi-File mode, I wouldn’t have ever bought Ableton Live.
  2. It’s not helpful enough to set the auto-play attribute only at the END of the song. Example: If you’re a guitar player, and the set is 15 songs. Depending on the order of the songs, you may need to change guitars or put on a capo for song #6. So, in the set, you need to stop before AND after song #6.
    Then, in another set, that song that was #6 in the previous set, might be before or after another song that uses the same guitar or capo, so you could auto-play the two of them. Does this make sense?
    Doesn’t make sense that it would be best to have the auto-play attribute in the SET (at each song) and not the SONG FILE ITSELF?

Hey @Maverick,

The SONG END locator doesn’t define AbleSet’s autoplay behavior, it just tells AbleSet where the song ends. Whether playback should stop or the next song should be played immediately is stored as part of the setlist – you’ll see it in the exported JSON file as well. This is different from the STOP locator, which also defines the end of a song but always makes AbleSet stop playback when the playhead reaches it.

The behavior at the end of each song can be controlled using the stop toggle in AbleSet’s setlist editor, so the same song can have different behaviors depending on the setlist you’ve loaded.

This works in multi-file projects as well as in single-file projects. Could you give it a try and let me know if it works for your use case?

1 Like

If I can set song specific tags in the JSON file, it will solve my issue. I just can’t find any documentation to tell me the spec to do so, and I don’t want to break anything.
Here’s an example of 2 songs in a set file.
I see that it’s a total list of songs in the folder with the “skipped” tag omitting songs not in the set.
I don’t know what the “time” tag does, because it’s always a value of zero.
I understand the “order” tag.
So what is the syntax for auto-play true/false or 0/1?

{ “id”: “8554cf64-c829-4cef-a9f1-fe64373b8c44”, “filePath”: “_PAUSE_09/_PAUSE_09.als”, “lastKnownHash”: “ad52619437e19b633810fe64676b563d”, “skipped”: true, “time”: 0, “order”: 6 },

{ “id”: “131a4a2b-654d-4ec3-a499-13bbca55d2f8”, “filePath”: “Whatever It Is/Whatever It Is.als”, “lastKnownHash”: “781a01167f2bf8dfbff49634171bf7b9”, “time”: 0, “order”: 7 },

Also, what is the risk of reusing an “all songs” json file with the same id/guid values?

Hey @Maverick,

Here’s a snippet of a song where playback should stop when the playhead reaches the SONG END locator:

{
  "id": "3b9558d4-6b09-48aa-99a6-8972bd30996a",
  "filePath": "Songs/Crossings.als",
  "lastKnownHash": "769bf5a758bf65f8a6ec8a3790e0c163",
  "time": 0,
  "skipped": false,
  "order": 0,
  "stop": true
}

The "stop": true part is the important value here. If you omit it or set it to false, AbleSet will automatically start playing the next song in the setlist upon reaching the current song’s SONG END marker.

You can do this without any risk. You can also omit the id, time, and lastKnownHash keys. These are just used as a safeguard in case you’ve renamed your project files between saving and loading a setlist. The order key can also be omitted without breaking imports. AbleSet will use the order of songs in your JSON file in that case.

I hope this helps!

1 Like

We’re getting close in concept, but when I try the following edited JSON, I get an error for each line in the file saying “No Song Found For [line value]”.

[
{
“filePath”: “Chattahoochee/Chattahoochee.als”,
“skipped”: false,
“stop”: false,
“order”: 0
},
{
“filePath”: “That Ain’t My Truck/That Ain’t My Truck.als”,
“skipped”: false,
“stop”: false,
“order”: 1
},
{
“filePath”: “Liza Jane/Liza Jane.als”,
“skipped”: false,
“stop”: false,
“order”: 2
},
{
“filePath”: “Little Sister/Little Sister.als”,
“skipped”: false,
“stop”: false,
“order”: 3
},
{
“filePath”: “Heard It In A Love Song/Heard It In A Love Song.als”,
“skipped”: false,
“stop”: false,
“order”: 4
},
{
“filePath”: “Neon Moon/Neon Moon.als”,
“skipped”: false,
“stop”: false,
“order”: 5
},
{
“filePath”: “Family Tradition/Family Tradition.als”,
“skipped”: false,
“stop”: false,
“order”: 6
},
{
“filePath”: “Fireman/Fireman.als”,
“skipped”: false,
“stop”: false,
“order”: 7
},
{
“filePath”: “If The World Had A Front Porch/If The World Had A Front Porch.als”,
“skipped”: false,
“stop”: false,
“order”: 8
},
{
“filePath”: “Whatever It Is/Whatever It Is.als”,
“skipped”: false,
“stop”: false,
“order”: 9
}
]

In the meantime, I went ahead and renamed all of my STOP locators to SONG END. Then I tested using the “stop”: false, in an existing JSON file.

In settings, I have AUTOPLAY set to TRUE. It doesn’t matter if my locators are named STOP or SONG END, either way, the next song starts right away, even with the “stop”: true in the JSON file. The only difference was that it did add a little space in the setlist visually, but no different behavior.

All of these settings (in playback) are set to true:
Autoplay
Auto-Jump to the Next Song
Auto-Loop the Current Section
Always Stop at the End of Songs
Stop by Default Instead of Pausing

Hey @Maverick,

It seems that your JSON file isn’t formatted properly, so AbleSet tries to parse the file as a plain text setlist.

My first hunch is that it has to do with the quotes you’re using, at least based on what you posted. Could you try replacing all quotes with " quotes and check if that helps?

Regarding the other issue, I recently implemented a fix for this which is available in the latest beta version. Could you give it a try and check if it makes a difference?

I’m looking forward to your reply!

I also noticed the quotes, but they are correct in the file. It seems that when I post them on this site, they get converted.
I would love to try the text file method. Where is the documentation for that?

I can try the 2.7.0 Beta 2 after Saturday to see if if it corrects the SONG END issue.

Thanks!

Hmm, that’s weird then. Could you send me the setlist JSON file you’re experiencing this issue with so I can take a closer look at what might be wrong with it?

You can also send me a log package including the project files so I can try to reproduce the issue on my end. You can create one by opening AbleSet’s status window, clicking the settings icon on the top right, and then selecting “Create Log Package”.

If the files are too large to DM or email, you can upload them to my support inbox instead.

Regarding plaintext setlists, here’s a short video explaining the feature: https://youtu.be/Q3sEvshi2Y8?t=341

I’m looking forward to your reply!

Files uploaded to support inbox.

I watched the video on importing a text file setlist, but it doesn’t appear to support the stop=true option for the songs…

Installed 2.7.0 Beta 2 to troubleshoot the SOND END issue.
No change there.
I’ve attached a screenshot just to make sure there’s nothing wrong on the Ableton Live side.
SONG END STILL NOT WORKING WITH 2.7.0 Beta 2

Hey @Maverick,

Thank you for the files! I managed to reproduce the issues on my end and just implemented a fix for them. I’ll release it as part of the next beta version, likely later today.

Thanks! Looking forward to it!
Just to be clear, this fix will be for importing edited JSON, correct?

So, what do I need to do to help with the issue of stopping on the SONG END Locator?

2.7.0 Beta 2 has some kind of issue with showing locators that aren’t in the song.
Perhaps cached from a previous song or something? But maybe not, since I closed both Ableton Live and AbleSet, opened them both again, and ran the song, and it was still displaying the wrong locators, such as >BRIDGE or >CHORUS.

Any luck with the next beta version you mentioned 9 days ago?

Hey @Maverick,

could you try beta 4 to see if it fixes the issues with multi-file projects you’re experiencing?

If it doesn’t, could you send me another log package along with a video of the behavior so I can take a closer look?

I’m looking forward to your reply!