Jump to content


Recommended Posts

  • 2 weeks later...

Getter method or function that return the value of an existing input doesn't exist in the published external control protocol.

What you can do is to use or create a proxy or intermediary application that sit between the setter device (the device that set the input value) and WATCHOUT. This proxy or intermediary application will have member variables with all the input values. Whenever you set an input value, the proxy will set its member variable matching the name and remember that value internally. As well as forward that input value to WATCHOUT.

I did a similar thing a while back for exactly this — basically I needed to know what is the current value of a specific input before I send the subsequent command. This was done by having the  proxy/intermediary application storing and remembering the input. Please see this programming sketch : https://github.com/eddyyanto/watchout-proxy



Link to comment
Share on other sites

I though that one solution could be creating a variable that starts with the same value as the input and stores the changes at the same time they are modified, but that could be problematic if Watchout restarts for some reason, right?

Link to comment
Share on other sites

If WatchOut restarted in an unintended manner, that meant something is wrong.

In this case, you'll need to plan how do you want your inputs to be when WatchOut comes back online. There are 2 ways of doing it depending on your show design and how do you want your users to see:

1. Send the last saved input values back into WatchOut. Eg: setInput xPosition 1000 500
2. Send the default input values into WatchOut. Eg: setInput xPosition 0 500

If you share your overall setup and design, we can probably give you some suggestions.

Link to comment
Share on other sites

A while back when I was toying with the idea of writing an app similar to Eddy's to filter and manipulate values before sending them to Watchout Inputs, a colleague introduced me to an app called Chataigne - https://benjamin.kuperberg.fr/chataigne/en

It's kind a Swiss-army knife for live performance / show control or whatever you care to use it for. It can take in Midi, OSC, etc values, manipulate them, perform conditional actions, and then spit them back out in different protocols. On a recent opera project, my colleague built a whole show-control UI using it, monitoring the status of Watchout players, fibre transmitters and projectors, as well as UI controls for video matrix main/spare switching and shutter commands for the projectors. For an upcoming project in the autumn, I think we will probably add scenery tracking data in there and use Chataigne to map and smooth the data before transmitting the values to Watchout.

It's maybe not the most intuitive UI the first time you open the app, but it's very powerful once you start exploring the possibilities. The developer, Benjamin Kuperberg, has some other useful utilities on his github:  https://github.com/benkuper?tab=repositories

Link to comment
Share on other sites

Thanks for sharing, Matt! It's a really useful piece of software.

I just tried it, the way the modules are structured is quite intuitive — the protocol, hardware, software, etc. I am barely scratching the surface but I think it can fulfill what Manuel is trying to achieve with his input values getter/setter.


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...