SOS button on canvas

Hi,
Is it possible to create a button in one canvas that simply lights up a button or label in another canvas? I’d like each of my musicians to have an SOS button on their canvas, and the IEM engineer would have “indicator lights” on their own canvas. This way, a musician could discreetly call for help in case of a technical issue.

Thanks

H.

Hey @Jan_Slawinski!

That’s a really cool use case!

You can absolutely achieve what you want using OSC, and it works perfectly for SOS-style messages.

You could have each musician’s SOS button trigger a big notification on your IEM engineer’s device.

For example, you can use a custom OSC command like this:

/notify/big IEM "SOS Guitar" 2500

Here’s what each part does:

  • IEM → the target device name.
    This is set in AbleSet under Settings → OSC Settings → OSC Device Name on the IEM engineer’s device.
  • "SOS Guitar" → the text that will be shown in the big notification.
  • 2500 → duration in milliseconds (2.5 seconds).

On each musician’s Canvas you can add a Button element and assign a different OSC message, e.g.:

/notify/big IEM "SOS Drums" 3000
/notify/big IEM "SOS Keys" 3000
/notify/big IEM "SOS Vocal" 3000

That way, pressing the SOS button on any musician’s Canvas will discreetly pop up a clear message only on the IEM engineer’s device. For an SOS/help message I’d recommend using a duration of at least 2000 ms so it’s hard to miss. :sweat_smile:

And if some of your musicians use MIDI controllers and can’t tap the Canvas during a show, they can do the exact same thing via MIDI mappings. Just map a note or CC in AbleSet’s MIDI Mappings and set it to trigger a Custom OSC Message with the same OSC command shown above.

If you want to dive deeper into the syntax and OSC commands AbleSet supports, you can also check out the docs here.

This way every musician can trigger their own SOS — either from the Canvas or from their MIDI controller — and the IEM engineer will instantly see who needs help.

Hope this helps, I’m looking forward to your reply!

Agus

3 Likes

Alternatively, you could also make use of Shared Variables for this. I haven’t gotten around to properly documenting this yet, but shared variables are shared between all devices and would be perfect for your use case.

Here’s a simple button that you can click to toggle its color between a dark and a bright red. This state can be accessed from all canvases independently of the device they’re running on:

I’ve built a small example canvas with four SOS buttons here: SOS Buttons.json (2.6 KB)

You can just drag this file into the AbleSet/Canvases folder in your Live project folder to try it out.

You can also combine this with @agustinvolpe’s solution if you’d like to get full-screen notifications in addition to the button lighting up. The script would then look like this:

if (shared("sos1")) {
  setShared("sos1", false);
} else {
  setShared("sos1", true);
  sendOsc("/notify/big", "IEM", "SOS 1", 3000);
}

I hope this helps! :slight_smile:

Thank you! Works perfectly!

1 Like

Sooo… :smiley: is there a way to send the “notify” OSC with message from input field?

Yes! On the input field, set the “Linked Variable” to a name like “message”, then create a send button with the following code:

sendOsc("/notify/big", "all", local("message")); // sends the message
setLocal("message", ""); // resets the message input field

You can also use this code in the “on enter” script of the input field, which makes it send the message when you press enter.

Let me know if this works for you :slight_smile: