Hello, after several attempts I’m unable to create the “End of Show Time” label in the canvas. Thank you for your help.
Hey Daniel,
You can calculate the expected end time of the show in Canvas by combining the current clock time with AbleSet’s /setlist/remainingTimeInSet .
Try adding a Dynamic Label with this:
${new Date(now() + osc("/setlist/remainingTimeInSet") * 1000).toLocaleTimeString()}
If you’d like it formatted in a simple 24-hour clock, you can also use:
${(() => {
const d = new Date(now() + osc("/setlist/remainingTimeInSet") * 1000);
const h = String(d.getHours()).padStart(2, "0");
const m = String(d.getMinutes()).padStart(2, "0");
const s = String(d.getSeconds()).padStart(2, "0");
return `${h}:${m}:${s}`;
})()}
This will dynamically display the estimated end time of the set in your Canvas.
Just keep in mind that this is dynamic . If you loop sections, or otherwise change the flow of the set, AbleSet will recalculate /setlist/remainingTimeInSet , so the displayed end time will update accordingly.
Let me know if this works for your use case!
Thank you for your message.
I must be doing something wrong because when I enter the message it says “error.” Do I have to type out the entire message?
Hey Daniel,
Yes, you should paste the entire expression exactly as shown, including the ${ ... } and everything inside it.
Make sure that you are adding it in the Label’s Label field in Canvas.
The full expression should look like this:
${(() => {
const d = new Date(now() + osc("/setlist/remainingTimeInSet") * 1000);
const h = String(d.getHours()).padStart(2, "0");
const m = String(d.getMinutes()).padStart(2, "0");
const s = String(d.getSeconds()).padStart(2, "0");
return `${h}:${m}:${s}`;
})()}
If you’re still seeing an error, could you send a screenshot of the Canvas element settings so I can see exactly where and how you’re entering it?
I’m looking forward to your reply!
Thank you so much for your help.
I’d like to make the loop function blink when it’s active, but I don’t know if there’s a script for that and where to add it.
Regards
Hey @Daniel_Espinouse,
I just translated your posts to English so others with similar questions can reference them. Please post in English so everyone on this forum can get involved.
Regarding your question, you can use this expression in the Background Color of your loop button:
${osc("/setlist/loopEnabled")
? (osc("/global/beatsPosition") % 2 === 0 ? "blue-700" : "blue-800")
: "blue-950"}
If the loop is enabled, this blinks with every beat while Live is playing. Let me know if this works for you ![]()