Using Video Projectors as Stage Light

We installed three video projectors facing the audience at a small venue, and made a patch in Processing simulating moving heads, strobes and other effects we came up with.

Click here for zip with the new source code (for Processing) tested on Mac and PC.
You will need to install Processing at and the RWMidi lib at

Basic instructions are included in the header of lightTable.pde.

About these ads

23 responses to “Using Video Projectors as Stage Light

    • Hardware issues. The same problems we had with the mini-mixer. The open-DMX usb thing doesn’t handle receiving DMX well. We need the “Pro” model…

  1. Hi,

    Nice job on this!

    This probably is pretty stupid but I can’t seem to get the openDMX libraries in the right place. I’ve put :

    – OpenDmx.jar
    – opendmx.dll
    – FTD2XX.dll

    in : “c:\Users\Image Line\Documents\Processing\libraries”

    but I keep getting : “No library found for com.juanjo.openDmx. As of release 1.0, libraries must be installed in a folder named ‘libraries’ inside the ‘sketchbook’ folder.”

    All input is welcome.


    • Ah! I remember we had that problem… The openDmx library is not for processing, but our genius Java guru, Mario Michelli found I way around. You have to make the folder structure in the library (which off-course must be placed in the processing\library folder) the same as the other libraries you have put there.

      On the other hand, the DMX input never worked very well and we ended up using a Behringer BCF2000 MIDI controller to run the show. I if get time I’ll see if I can remove the openDmx references from the code so you can used with Midi or just keyboard.

  2. Some hints on using the patch.

    Using Keyboard:

    s = save current state
    r = load saved state
    R = random. Cool for testing

    Use keys left and right to select “DMX” channel (even if you do not use DMX, we pretend so), and up and down keys to alter the DMX value for selected channel. The output window in the Processing Window will display useful hints as you go.

    12 channels are used for each fixture, so channel 1 to 12 should be parameters like size, position, color, speed etc for the first effect, 13 to 24 for the next and so on.

    Using MIDI:

    The MIDI input uses midi control inputs and translates them to our internal virtual DMX. Midi Contol 0 is translated to DMX channel 1 etc. The Midi value 0-127 is scaled to DMX value 0-255.

  3. Im a complete noob at this stuff, so you can use just any projector right? You don’t need a special projector that uses MIDI or DMX for the input.

  4. Hi, I’d like to try to run your code but only with source audio coming from mic/line in. Few questions:
    1. Have you tried your program with Processing 2.x?
    2. You mention “failed DMX receiving routines”. is the dmx.pde file required to do what you have done in your video (or do what I’m attempting)?

    Thanks, Marty

  5. Hey this looks absolutely amazing! I’ve downloaded and installed the software, but cannot figure out how to actually create patches or set up… is there any possible way you could post your patches you’ve created, or give a newbie a bit of a tutorial?

  6. Assuming you have installed Processing and the RWMidi-library correct:

    Unzip the folder and put it somewhere, e.g. under my documents\processing
    Open Processing.
    Click “open” and find the file “lightTable.pde”.
    Press the “play” button. A window with black bacground should open.
    Press the “r” key for random effects. There you are…

    More instructions in the top of the “lightTable.pde”-file.

    If it works, let me know :-)
    If it doesn’t tell me what happens. Error messages?

    • Howdy.

      I don’t know Processing very well, but I followed these instructions. I’m running OS 10.8.2. When I ran lightTable.pde, the window that popped up started as light gray and then showed some visual distortion of other open applications. Processing spit out this error message:

      “The file “gobo1.png” is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
      The file “gobo1.png” is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
      [0] Real Time Sequencer Sun Microsystems
      Exception in thread “Animation Thread” java.lang.ArrayIndexOutOfBoundsException: 1
      at lightTable.setup(
      at processing.core.PApplet.handleDraw(
      at processing.opengl.PGL$PGLListener.display(
      at jogamp.opengl.GLDrawableHelper.displayImpl(
      at jogamp.opengl.GLDrawableHelper.display(
      at jogamp.opengl.GLAutoDrawableBase$
      at jogamp.opengl.GLDrawableHelper.invokeGLImpl(
      at jogamp.opengl.GLDrawableHelper.invokeGL(
      at com.jogamp.newt.opengl.GLWindow.display(
      at processing.opengl.PGL.requestDraw(
      at processing.opengl.PGraphicsOpenGL.requestDraw(

      • You need to put any png-file with the name “gobo1.png” in the application folder. Or remove the code asking for it from the source code. That requires some Prosessing skills though.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s