May 10th, 2011

Lighting Design and Control

A long time ago I used to run lights and sound for bands / magicians / comedians etc. on a cruise ship and for a short while I taught lighting at a digital arts college in Emeryville, CA. So it’s been interesting for me to see some projects roll in where people are using Control to manipulate lighting setups. Joey Ferguson, a lighting designer at Theatre Aurora used the MIDI transmitting capabilities of Control to feed a ETC Express board (I used an ETC Expression board back in the day). He posted a forum entry about his interface that you can check out.

More recently forum member Paul who does lighting design for Villagers Theatre created an interface that is over 3,000 lines in length using a Perl script to automatically layout banks of sliders, buttons, and labels. He also wrote a nice script to translate OSC messages into messages that can be understood by the LanBox, a DMX control devices that can be controlled over ethernet (DMX is the protocol most smart-lighting devices speak). He created a short video of this script in action, with the cellular automata demo that comes with Control being used to control the lighting setup at his theatre:

Control with the LanBox

Here’s the forum thread where he talks about his setup, and below is a screenshot of the interface he created. The interface includes some custom scripting to throttle OSC transmission to a rate that the LanBox can handle.

May 3rd, 2011

New Interface Templates

I updated the interface template file today to take advantage of some of the 1.2 coding conventions. For example, buttons can now have label text without requiring a separate label widget defined; just add the “label” property to any button widget and pass some text as a value. Also, I added shorthand syntax for defining boundary rectangles:


/**** before (and still valid, but not the most efficient) *****/
"x": 0, "y": 0, "width": .654, "height": .3

/**** as of 1.2 ****/
"bounds": [0, 0, .654, .3]

These two changes (bounds & button labels) cut the code for the interface template (any many other interfaces) in half.

I also added a multipage interface template file. You can use different pages to define separate screens of widgets; you can move between these pages by pressing the provided buttons in the template (this functionality could also be mapped to a slider). The javascript for switching pages can either target a specific page:

control.changePage(2);

or can change pages relatively:

control.changePage("next");
control.changePage("previous");

The “info” button in all the default interfaces included with Control just calls the changePage() method and takes you to a page containing nothing but a label with informational text and a back button.

This work is licensed under GPL - 2009 | Powered by Wordpress using a heavily modified version of the theme aav1