Kinect Input

You can use the input capabilities of WATCHOUT to control cue parameters. This is similar to how a tween track controls a parameter, such as opacity or rotation, but it uses an external input instead of (or together with) the tween track’s control curve. WATCHOUT directly supports inputs using industry-standard protocols such as MIDI and DMX-512. You can also set the inputs using the external control protocol in WATCHOUT to control either the display software directly (unless the production software is being used to run the show) or the production software. If you use it to control the production software, you can see the values as they change in the Input window, makig it easier to understand what’s going on.

Interfacing a Control Source

Using MIDI or DMX-512 to control WATCHOUT is relatively straightforward due to the standardized nature of those protocols. On occasion, you may want to interface a sensor or other device which doesn’t communicate with these standards. One way to accomplish this is to write a small piece of software that takes the data from the device and translates it into the WATCHOUT control protocol. This is particularly convenient if the device is already able to talk to the computer, and thus accessible.

The Microsoft Kinect motion sensor provides a number of interesting capabilities including the ability to track the position of a human body in 3D space. This data can be used to control WATCHOUT in several ways by converting the data to numeric parameters, subsequently forwarded to WATCHOUT inputs.

Kinect.jpg

Making a Kinect talk to WATCHOUT

A small program receives the data from the Kinect and converts it into three numeric parameters. These parameters correspond to the distance and arm positions of a human in front of the sensor. The program displays a status window indicating the Kinect and WATCHOUT connection status, as well as the numeric parameters.

KinectApp.png

The status window of the KinectWO interface program.

In order to use this program, you must first download and install Microsoft’s Kinect SDK, which in turn requires the .NET Framework 4. The Kinect SDK provides the driver and other software components necessary to use the Kinect.

When you done that, download and unpack the attached KinectWO.zip file. This results in a KinectWO.exe file. Run this file to display the window shown above. The Depth value shows the distance between the sensor and a person in front of it. Move your arms up and down to control the Left and Right parameters.

Finally, download and unpack the attached Kinect.zip file, which contains a small WATCHOUT show that uses the parameters from the Kinect to control a human figure on screen. In the illustration below, you can see the WATCHOUT Input window displaying the three parameters, as well as the figure flapping its arms accordingly. The depth parameter controls the color of the body, cycling through the spectrum as you move away from the sensor.

NOTE: The Kinect interface program used in this example runs in the background on the same computer as the WATCHOUT production software. It talks to the production software rather than the display software, unlike most other recipes. The control protocols of WATCHOUT production and display components are similar but not identical. Please refer to the corresponding appendices in the WATCHOUT User’s Guide for details.

KinectScreenshot.png

Changing the Interface Program

If you want to do something more interesting with Kinect in conjunction with WATCHOUT, change the interface program to support additional parameters, or change the way the parameters are calculated. The interface program is written in C#, and can be edited using the free Microsoft Visual Studio Express. After installing Visual Studio, download and unpack the attached Kinect_WO_src.zip file and open the KinectWO.sln file.

Files attached to this recipe: