Describe your issue here:
Hey Leo, not so much an issue as a question:
I have multiple iPads positioned around stage for the artist to use as a hidden teleprompter, because they’re obscured I don’t have a good line of sight to them and as such I’d love to have a way to display in my AbleSet canvas if the connection is happy. Is there a way to send a heartbeat to the specific IP addresses of the devices on stage and have an indicator in Canvas to give me peace of mind mid show? Is it possible with the OSC heartbeat built in to AbleSet or maybe by utilizing the HTTP API?
Thanks!
Jason
Please fill out these values to make it easier to troubleshoot:
- OS and Version: 12.5.1
- Version of AbleSet: 3.1.0 Beta 7
- Version of Ableton Live: 12.2.7
Hey @JasonBentch,
Starting with version 3.1 beta 8, AbleSet exposes a /devices/ namespace via OSC that gives you info about each connected browser. Every device gets its own set of values based on its OSC Device Name (set in the new Devices tab → Browsers).
For example, if you name your iPads ipad-1, ipad-2, etc., you can read values like:
/devices/ipad-1/page/path — the current page the device is displaying
/devices/ipad-1/page/title — the page title
/devices/ipad-1/names — the device’s name list
/devices/ipad-1/isLocked — whether the device is locked
So to build a connection indicator on your Canvas, you could add a Label element for each iPad with a dynamic background color like this:
${osc("/devices/ipad-1/page/path") ? "green-500" : "red-500"}
This checks if the device is reporting a page path. If it is, the label turns green. If not, it turns red. Set the Label text to something like “iPad 1” or “Stage Left” so you know which one you’re looking at.
You could even display what page each iPad is currently showing by using a dynamic Label text:
${osc("/devices/ipad-1/page/title") ?? "Disconnected"}
Version 3.1 beta 8 adds a dedicated Devices page where you can see all connected browsers, send cue lights and messages to their screens, change the page they display, and reload them remotely.
Make sure each iPad has a unique OSC Device Name set in its settings so you can target them individually.
Would that work for your use case?
Hey Augustin,
I saw your original reply in my email and tried what you suggested and it worked exactly how I need it to with beta 8, is there a reason I shouldn’t use the method you suggested there?
Hey @JasonBentch,
Apologies for the confusion, there was a mix-up with the drafts on my end. You’re good to go with that approach!
Glad it’s working for you!
Hey Agustin,
Had an issue with this the other night and I thought I’d let you know. One of the devices I am monitoring the connection to had it’s network connection freeze multiple times and would temporarily reconnect after an unplug/replug. It wasn’t until I took out the code that it stopped getting hung up. Is it possible that the polling is flooding the network or something like that?
Here’s the code in question:
Label:
PIANO: ${shared("locked", false) ? "🔒" : "🔓"} ${osc("/devices/piano/page/path") ?? "Disconnected"}
Background:
${osc("/devices/piano/connected") ? "green-500" : "red-500"}
Another interesting observation: I have another iPad on the same network that I’m using for control that is also using the same code to monitor it’s connection and I haven’t had it hang up. Same model model iPad, same model of ethernet adapter, plugged in to the same switch.
Hey @JasonBentch, the code for templates doesn’t actively poll for changes. Instead, when a value changes, AbleSet pushes those changes over the network, so it won’t make a difference how much code your Canvas contains.
I’d attribute the freezes to a network problem, but since your tablets are plugged in via Ethernet, there shouldn’t be any problems with latency. Could it be that your Ethernet adapter didn’t work and your iPad connected to WiFi instead?
If this happens again, could you check the latency to that iPad from the Devices page? That might help diagnose whether it’s a network issue or not.
I’m looking forward to your reply! 
It was a bad adapter! Swapped it out and the connection is rock solid.
Thanks!
1 Like