Jump to content

External control with setInput, Tweening and Easing


Recommended Posts



I've been experimenting with external control of Watchout cues using setInput. Setting the tween time with the third parameter works fine, except that the movement is linear, with no easing, which looks a bit harsh. I don't suppose there's a hidden 4th parameter that enables ease-in-out?


I have been playing with sending position data from an external app to try and achieve a smoother move with easing. First by trying to update the generic input used for position at 60fps. This works pretty well with one layer but, as predicted by Mike Fahl in this post - http://forum.dataton.com/topic/1262-interactive-inputs-are-freezing-up-watchout/ -once you start sending updates to a few more layers, things slow down and eventually crash.


My next approach was to split the move into segments, and send setInput commands every few frames with a tween time, to try and approximate an easing curve while sending fewer network commands. This works a bit better, in that things don't lag as badly, but the change in speed between segments is noticeable. Even using this approach, and staggering the network commands, once I had 10 layers moving around, things got pretty slow again.


So a couple of questions: Is the slow-down when moving multiple layers due to overhead in the network protocol? If I use a midi controller and link the sliders and knobs to Watchout cues, I don't notice the same slowdown. Rather than using a generic input, would I be able to achieve smooth changes without bogging down Watchout by sending Midi updates through a virtual midi interface?


Thanks for any ideas...


Link to comment
Share on other sites

This issue has been alleviated in WATCHOUT 6. There are two improvements here:


1. More commands are processed per frame, greatly increasing the number of setInput commands that can be handled.


2. A new setInputs command was added, which takes multiple name-input-slope triplets in one command, increasing the maximum number of inputs that can be managed significantly. This command will be documented in the upcoming WO6 User's Guide.


So if you're using v6, you should not have any problem here. If you're at v5, the maximum rate is more constrained, as you say.


Mike  -  http://fahl.se/

Link to comment
Share on other sites

Hi Mike,


I'm using Watchout 5 at the moment, but it's good to know that I would be able to pass in an array of values to Watchout 6.


I'm curious about the difference in playback when animating cues on the timeline and using setInput - I can animate 20 cues simultaneously in the timeline and playback is fine; if I try and do the same thing using inputs, things start to lag and stutter pretty quickly.


I was experimenting with using a force-directed graph to position text in a word cloud, with new layers pushing other layers out of the way to make room, before the 'cloud' settles down into a new layout. I guess I could use my external app to calculate the new layout positions and send a single command for each layer, but it would be nice to get a smooth moving with easing, which is why I was trying to send a stream of position data. Assuming I stick with v5 for the moment, would Midi be a better choice for low-latency position updates?



Link to comment
Share on other sites

After reading this other discussion about real-time control of Watchout (http://forum.dataton.com/topic/1843-realtime-tracking-in-watchout/) I continued my experiments. The first thing I did was to switch to sending commands via UDP, rather than TCP, which should create less network overhead (and seems to be working successfully for the Spikemark software).


So, I have 10 layers moving around in real-time (updating x,y,z and opacity information) and everything is nice and fluid. At least, it is as long as I run in Production mode and send the commands to the Producer machine. If I switch to Cluster mode, and send commands directly to the Display machine, everything starts stuttering and lagging again.


So the very same player copes fine when controlled by a Producer, but staggers to a crawl when running as a standalone Display. Is this expected behaviour? Does using a Producer mean that the producer PC is dealing with the network overhead so that the Display machines don't have to?

Link to comment
Share on other sites

I will do some experiments with the new version of Watchout sometime when I can borrow a friend's v6 dongles. I was just surprised to see such a big difference in performance between production mode and a display cluster - animation of 10 layers was smooth as butter when talking to the production PC, but the Display machine started having trouble with only 2 layers.


One last question - Are there any plans to add external control of compositions? I was trying to move two cues (an image and a drop shadow behind it) together by linking them both to the same inputs, but there was a little bit of wiggle between the two - maybe the position being rounded to whole pixels?

Link to comment
Share on other sites

Vollmers: Unfortunately there isn't an easing parameter for setInput (unless Dataton have something up their sleeves for an update). That's why I'm using an external app to calculate the acceleration/deceleration and send a series of updates to Watchout. The difference in v6 is apparently that it copes better with frequent updates - it's quite easy to swamp v5 with network messages, which causes playback to stutter.

Link to comment
Share on other sites

Yes, matkeane is correct, there's no easing formula supported. Just linear interpolation. The syntax for the basic setInptu command is unchanged (but has improved performance in version 6), while a new setInputs (note trailing "s") improves bandwidth and synchronicity even more by allowing you to set multiple inputs with a single command. Full details will be in the version 6 user's guide, to be release any day now.

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...