def light9_presentation():
"""
Drew Perttula
drewp@bigasterisk.com
http://light9.bigasterisk.com
Goals of light9:
- control the brightness of many lights while playing music
- allow easy editing of the show
- allow easy maintenance of the code, even while the show is running
"""
def dependencies():
"""
Twisted - event loop and networking
TwistedWeb - xmlrpc protocol
tk, tix
pympd - my twisted interface to mpd
pydispatcher - signals
mpd - music player daemon
swig - interface to C code
darcs
*
"""
def connections():
"""
(play cmds)
ascoltami --------------> mpd ----------> audio out
| (timing)
v
curvecalc subcomposer keyboardcomposer
| | |
+--- | ----+
\----- | --------/
\--+---/
| (light levels)
v
* dmxserver
| (dmx levels)
......... v ....................
. chippy .
. | (dmx) . external hardware
. v .
. dmx dimmer .
. | (juice) .
. v .
. light .
................................
"""
def metrics():
"""
selected linecounts:
356 ascoltami (music player)
318 curvecalc (curve and expression editor)
279 keyboardcomposer
189 dmxserver (hardware output)
153 subcomposer
17 wavecurve (create smoothed waveforms from .wav)
311 light9/curve.py (curve widgets)
191 light9/FlyingFader.py (enhanced tk.Scale)
168 light9/Submaster.py
* 151 light9/zoomcontrol.py
137 light9/dmxchanedit.py
40 light9/wavepoints.py
65 light9/io/parport.c (dmx interface protocol)
50 light9/io/serport.i (i2c interface to sliders)
total in project: about 3200 in about 30 files
"""
def future_projects():
"""
A submaster server that talks with the other programs and
eliminates all the explicit saving and reloading of subs
More abstract output layer, to which I can add home lighting, for
example
Small timed 'clips' that can be triggered
Generalize to a whizzy, distributed real-time circuit simulator
node network with a 5GL editor and failsafe checkpointing and
redundancy
*
"""