Access application status/active scenes
-
Hi! I'm working on an app that remotely monitors the status of theatrical devices over the network- things like QLab, light consoles, projectors, media servers, etc. I'm just looking for basic info like
- Is Isadora running on this computer?
- What scene(s) are active?Is there a way to do this with Isadora that works in every project (i.e. doesn't require setting up actors to send this info over network)? Maybe there's a port that Isadora always opens that could at least confirm that it's running?
-
Hi there,
To my knowledge Isadora does not send that kind of information over the network without the user setting it up.
@mark is the creator of Isadora, since this is a Third party application reach out directly to the Troikatronix team here (https://support.troikatronix.c...) they will help you with your questions / discuss it further.
-
@sparksalec said:
Is there a way to do this with Isadora that works in every project (i.e. doesn't require setting up actors to send this info over network)? Maybe there's a port that Isadora always opens that could at least confirm that it's running?
There is no built in way to do this. Do QLab and others implement such protocol?
Best Wishes,
Mark -
Check if Isadora is Running
You can tell if Isadora is running if any of the three following applications are running:
- Isadora
- IzzyMoviePlayer32
- IzzyMoviePlayer64
Fastest way may be to, every X seconds, have your application search the currently running applications that begin with "Is" (so you don't have to search the entire list of applications each cycle or whatever) to see whether one of them is named "Isadora". If yes, Isadora is running. If no, it's not. That's the only way I can think of to tell if Isadora is running or not without changing a patch or using Isadora actors.
Broadcast Q# (Per Scene, upon entering a Scene) via MIDI Show Control
To get the current Q# (listed before the Scene Name) you could enable the broadcasting of MIDI Show Control and Isadora will then send out the cue number of the current Scene every time it enters a new one.
You could then monitor that MIDI information to see what Q# Isadora is in.
Get Current Scene Name via OSC or MIDI
In order to get the name of the current Scene, you'd need to use actors, but you can make a User Actor and put that in every Scene to standardize how you do this. You can combine Get Scene Name and OSC Transmit into a User Actor and place that in every Scene to broadcast the name of the active scene when entering the Scene and once every second over a network using an OSC port and address. After doing this you can monitor the chosen OSC Port for information about the current Scene.
If all your patches have this in them, then whatever system you are using to monitor the OSC data from Isadora can interpret the absence of any information being broadcast for a period longer than 1.5 or 2 seconds (to be safe) as proof that Isadora is not running.
Screenshot and example file below
You could also do this OSC approach with the Send MIDI Show Control actor if you wanted to use MIDI instead of OSC.
Example File
2020 - 3.0.7 - Get+Broadcast Current Scene Name.zip
Best wishes,
Woland
-
@mark thanks for the reply! A few theatrical devices do this:
QLab: Discoverable on the network using Bonjour/zeroconf. An app can get active cue(s) and cuelists via TCP OSC. QLab also has an OSC "heartbeat" method to confirm a certain workspace is active. These OSC controls work on every workspace. I think this is the best implementation of remote device search and status monitoring.
ETC Eos: Always opens TCP Port 3033. An app can search the network for devices with this port open. If a device is found, you can use the OSC "ping" method like a heartbeat to confirm the device is Eos and it's healthy. Can get cue lists via OSC as well, provided OSC is enabled on the console.
PJLink: PJLink Version 2 has a search feature, where projectors will respond to specific broadcast UDP packets. If an app gets a response to a broadcast, it knows that projector exists and can get more info.
The app I'm working on is v2 of Cue View, of which v1 can be found here if you're curious: https://www.cueview.app
Thanks again!
-
@woland This is super useful, thank you!
-
If you want to send 'I'm alive' masseges to non specific devices/ip/ all network. You can send a 'heartbeat' over OSC to the broadcast address x.x.x.255:portn
With an puls actor triggering a simple OSC send actor with an OSC syntax like: /devicename/izzi/imalive/1 should be received by any OSC listening software in the same subnet.
Cheers, dill -
@dillthekraut totally! I could program this with actors any number of ways. I'm more interested in scene list and status APIs that could exist at the application layer, rather than in the document layer, that let you check what Isadora is up to no matter what document is opened. That way I don't need to change a designer's file to implement the non-creative feature of remote status monitoring.