Files @ 1cbb52eac89b
Branch filter:

Location: light9/light8/README

drewp@bigasterisk.com
nginx log what server/path you proxy to
Light 8 Lighting Control
------------------------

Installation

    You'll need Python 2.2, Tk 8.x.  Depending on your platform, you might
    need SWIG as well.  We also assume you have the same hardware that
    we built.  It shouldn't be too hard to adapt it to another system,
    but we leave that as an exercise to the reader.

1.  SWIG the parallel port C code. (optional, depending on platform,
        compiler, etc.)

    First,

    shell> make parport_wrap.c

    Then,

    shell> make parportmodule.so

2.  Create the necessary preference files.

    shell> touch /tmp/light9.prefs
    shell> touch /tmp/light9.prefs.dummy

    Sadly, we didn't have the 5 seconds to add this to the code.

3.  You're done.  Sadly, Light 8 needs to be run as root, due to the nature of
    of the parallel port interface.  However, you can run it in dummy mode
    without being root.

    Live mode:
    shell> su
        <enter password>
    shell> python light8.py real

    or

    Dummy mode:
    shell> python light8.py


Introduction and Usage

    Light 8 is a quick-and-dirty hack to produce a working
    DMX controller written in Python and Tk.  Our website,
    http://light9.bigasterisk.com/danceshow, has more information.
    We hope to produce a more elegant and flexible solution, known as
    Light 9.  Nevertheless, we found Light 8 useful, and perhaps other
    lighting designers will as well.

    As an example, we have included the configuration files for the dance
    show that we used Light 8 on.  Light 8 has two modes, dummy and live.
    Each has it's own configuration file.  Dummy uses ConfigDummy.py and
    live uses Config.py.  Speaking of which, you need to add something
    after the command line to enter real mode so that you don't accidently
    run the show (this may seem silly, but we were developing it on two
    computers and didn't want to accidentally run it on both).

    Dummy mode: 
    shell> ./rsn.py

    Real mode: 
    shell> ./rsn.py real

    (you could actually type anything for 'real', it just counts
    arguments)

    Config must include several structures.  patch is a dictionary,
    mapping channels to dimmers.  However, unlike most light boards,
    Light 8 supports named channels.  Additionally, channels may have
    multiple names.  Furthermore, there is a 1-to-1 patch of channels
    to dimmers.  Here's an example patch to illustrate:

    patch = {
        ('center neutral 1', 'main special') : 1, 
        'SL blue' : 3, 
        'SR blue' : 4,
    }

    In this patch, we can refer to dimmer 1 by two names, 'center
    neutral 1' and 'main special'.  We can also refer to it as '1' or 1
    (either a Python string or int.  Heck, maybe even a float, but I'm
    not sure).  Dimmer 2 can only be referred to as '2' or 2, since
    the patch omits a name.  Dimmer 3 can be referred to as 'SL blue',
    '3', or 3.  And so on...

Source file breakdown
---------------------

rsn.py - Main loop, I/O, GUI, persistence, etc
Xfader.py - 2-group crossfader widget and algorithm
Patch.py - Manages DMX channel naming
util.py - Some cue arithmetic functions
Subs.py - Submaster object, including effects gui api, 
Config.py - Show-specific names and effect code
ConfigDummy.py - Show-specific names and effect code for dummy site
parport* - Parallel port interface code