annotate light8/README @ 161:0803fb42109d

we now have TkCueList, which is really cool. it doesn't provide editing we now have TkCueList, which is really cool. it doesn't provide editing yet, but you could almost nearly probably maybe run a show with it. heck, i hope so. some of the shifting/drawing problems were probably fixed. cuelist1 got more bogus data to help populate the TkCueList.
author dmcc
date Mon, 07 Jul 2003 17:18:26 +0000
parents 45b12307c695
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 Light 8 Lighting Control
45b12307c695 Initial revision
drewp
parents:
diff changeset
2 ------------------------
45b12307c695 Initial revision
drewp
parents:
diff changeset
3
45b12307c695 Initial revision
drewp
parents:
diff changeset
4 Installation
45b12307c695 Initial revision
drewp
parents:
diff changeset
5
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 You'll need Python 2.2, Tk 8.x. Depending on your platform, you might
45b12307c695 Initial revision
drewp
parents:
diff changeset
7 need SWIG as well. We also assume you have the same hardware that
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 we built. It shouldn't be too hard to adapt it to another system,
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 but we leave that as an exercise to the reader.
45b12307c695 Initial revision
drewp
parents:
diff changeset
10
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 1. SWIG the parallel port C code. (optional, depending on platform,
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 compiler, etc.)
45b12307c695 Initial revision
drewp
parents:
diff changeset
13
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 First,
45b12307c695 Initial revision
drewp
parents:
diff changeset
15
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 shell> make parport_wrap.c
45b12307c695 Initial revision
drewp
parents:
diff changeset
17
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 Then,
45b12307c695 Initial revision
drewp
parents:
diff changeset
19
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 shell> make parportmodule.so
45b12307c695 Initial revision
drewp
parents:
diff changeset
21
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 2. Create the necessary preference files.
45b12307c695 Initial revision
drewp
parents:
diff changeset
23
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 shell> touch /tmp/light9.prefs
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 shell> touch /tmp/light9.prefs.dummy
45b12307c695 Initial revision
drewp
parents:
diff changeset
26
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 Sadly, we didn't have the 5 seconds to add this to the code.
45b12307c695 Initial revision
drewp
parents:
diff changeset
28
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 3. You're done. Sadly, Light 8 needs to be run as root, due to the nature of
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 of the parallel port interface. However, you can run it in dummy mode
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 without being root.
45b12307c695 Initial revision
drewp
parents:
diff changeset
32
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 Live mode:
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 shell> su
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 <enter password>
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 shell> python light8.py real
45b12307c695 Initial revision
drewp
parents:
diff changeset
37
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 or
45b12307c695 Initial revision
drewp
parents:
diff changeset
39
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 Dummy mode:
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 shell> python light8.py
45b12307c695 Initial revision
drewp
parents:
diff changeset
42
45b12307c695 Initial revision
drewp
parents:
diff changeset
43
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 Introduction and Usage
45b12307c695 Initial revision
drewp
parents:
diff changeset
45
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 Light 8 is a quick-and-dirty hack to produce a working
45b12307c695 Initial revision
drewp
parents:
diff changeset
47 DMX controller written in Python and Tk. Our website,
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 http://light9.bigasterisk.com/danceshow, has more information.
45b12307c695 Initial revision
drewp
parents:
diff changeset
49 We hope to produce a more elegant and flexible solution, known as
45b12307c695 Initial revision
drewp
parents:
diff changeset
50 Light 9. Nevertheless, we found Light 8 useful, and perhaps other
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 lighting designers will as well.
45b12307c695 Initial revision
drewp
parents:
diff changeset
52
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 As an example, we have included the configuration files for the dance
45b12307c695 Initial revision
drewp
parents:
diff changeset
54 show that we used Light 8 on. Light 8 has two modes, dummy and live.
45b12307c695 Initial revision
drewp
parents:
diff changeset
55 Each has it's own configuration file. Dummy uses ConfigDummy.py and
45b12307c695 Initial revision
drewp
parents:
diff changeset
56 live uses Config.py. Speaking of which, you need to add something
45b12307c695 Initial revision
drewp
parents:
diff changeset
57 after the command line to enter real mode so that you don't accidently
45b12307c695 Initial revision
drewp
parents:
diff changeset
58 run the show (this may seem silly, but we were developing it on two
45b12307c695 Initial revision
drewp
parents:
diff changeset
59 computers and didn't want to accidentally run it on both).
45b12307c695 Initial revision
drewp
parents:
diff changeset
60
45b12307c695 Initial revision
drewp
parents:
diff changeset
61 Dummy mode:
45b12307c695 Initial revision
drewp
parents:
diff changeset
62 shell> ./rsn.py
45b12307c695 Initial revision
drewp
parents:
diff changeset
63
45b12307c695 Initial revision
drewp
parents:
diff changeset
64 Real mode:
45b12307c695 Initial revision
drewp
parents:
diff changeset
65 shell> ./rsn.py real
45b12307c695 Initial revision
drewp
parents:
diff changeset
66
45b12307c695 Initial revision
drewp
parents:
diff changeset
67 (you could actually type anything for 'real', it just counts
45b12307c695 Initial revision
drewp
parents:
diff changeset
68 arguments)
45b12307c695 Initial revision
drewp
parents:
diff changeset
69
45b12307c695 Initial revision
drewp
parents:
diff changeset
70 Config must include several structures. patch is a dictionary,
45b12307c695 Initial revision
drewp
parents:
diff changeset
71 mapping channels to dimmers. However, unlike most light boards,
45b12307c695 Initial revision
drewp
parents:
diff changeset
72 Light 8 supports named channels. Additionally, channels may have
45b12307c695 Initial revision
drewp
parents:
diff changeset
73 multiple names. Furthermore, there is a 1-to-1 patch of channels
45b12307c695 Initial revision
drewp
parents:
diff changeset
74 to dimmers. Here's an example patch to illustrate:
45b12307c695 Initial revision
drewp
parents:
diff changeset
75
45b12307c695 Initial revision
drewp
parents:
diff changeset
76 patch = {
45b12307c695 Initial revision
drewp
parents:
diff changeset
77 ('center neutral 1', 'main special') : 1,
45b12307c695 Initial revision
drewp
parents:
diff changeset
78 'SL blue' : 3,
45b12307c695 Initial revision
drewp
parents:
diff changeset
79 'SR blue' : 4,
45b12307c695 Initial revision
drewp
parents:
diff changeset
80 }
45b12307c695 Initial revision
drewp
parents:
diff changeset
81
45b12307c695 Initial revision
drewp
parents:
diff changeset
82 In this patch, we can refer to dimmer 1 by two names, 'center
45b12307c695 Initial revision
drewp
parents:
diff changeset
83 neutral 1' and 'main special'. We can also refer to it as '1' or 1
45b12307c695 Initial revision
drewp
parents:
diff changeset
84 (either a Python string or int. Heck, maybe even a float, but I'm
45b12307c695 Initial revision
drewp
parents:
diff changeset
85 not sure). Dimmer 2 can only be referred to as '2' or 2, since
45b12307c695 Initial revision
drewp
parents:
diff changeset
86 the patch omits a name. Dimmer 3 can be referred to as 'SL blue',
45b12307c695 Initial revision
drewp
parents:
diff changeset
87 '3', or 3. And so on...
45b12307c695 Initial revision
drewp
parents:
diff changeset
88
45b12307c695 Initial revision
drewp
parents:
diff changeset
89 Source file breakdown
45b12307c695 Initial revision
drewp
parents:
diff changeset
90 ---------------------
45b12307c695 Initial revision
drewp
parents:
diff changeset
91
45b12307c695 Initial revision
drewp
parents:
diff changeset
92 rsn.py - Main loop, I/O, GUI, persistence, etc
45b12307c695 Initial revision
drewp
parents:
diff changeset
93 Xfader.py - 2-group crossfader widget and algorithm
45b12307c695 Initial revision
drewp
parents:
diff changeset
94 Patch.py - Manages DMX channel naming
45b12307c695 Initial revision
drewp
parents:
diff changeset
95 util.py - Some cue arithmetic functions
45b12307c695 Initial revision
drewp
parents:
diff changeset
96 Subs.py - Submaster object, including effects gui api,
45b12307c695 Initial revision
drewp
parents:
diff changeset
97 Config.py - Show-specific names and effect code
45b12307c695 Initial revision
drewp
parents:
diff changeset
98 ConfigDummy.py - Show-specific names and effect code for dummy site
45b12307c695 Initial revision
drewp
parents:
diff changeset
99 parport* - Parallel port interface code