changeset 54:3011c1028eb7

Cue math error fixed. Cue math error fixed. Bad cues in ConfigDummy fixed, not fixed in Config yet. Cue fader back in rsn. Oh yeah.
author dmcc
date Mon, 08 Jul 2002 15:50:00 +0000
parents 032b2b67bc10
children 5e8c505bcc2c
files light8/ConfigDummy.py light8/Cue.py light8/Fader.py light8/rsn.py
diffstat 4 files changed, 384 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- a/light8/ConfigDummy.py	Mon Jul 08 14:31:20 2002 +0000
+++ b/light8/ConfigDummy.py	Mon Jul 08 15:50:00 2002 +0000
@@ -4,19 +4,38 @@
 from Subs import *
 from Cue import *
 
-f1 = Fade('red', 0, 2, 100)
-f2 = Fade('green', 1, 3, 50)
-f3 = Fade('blue', 0, 4, 0)
-f4 = Fade('clear', 0, 8, 75) 
-c1 = Cue("Color shift", 0, 10, f1, f2, f3, f4)
+f1 = Fade('col blue', 0, 2, 1)
+f2 = Fade('col gree', 1, 3, .50)
+f3 = Fade('col oran', 0, 4, 0)
+f4 = Fade('col red', 0, 8, .75) 
+
+g1 = Fade('col blue', 1, 2, .20)
+g2 = Fade('col gree', 0, 4, .10)
+g3 = Fade('cyc', 1, 5, .20)
+g4 = Fade('god', 0, 4, .15) 
 
-cues = [c1]
+r1 = Fade('col blue', 0, 2, 0)
+r2 = Fade('col gree', 1, 3, .10)
+r3 = Fade('col oran', 0, 4, .6)
+r4 = Fade('col red', 0, 8, .15) 
+r5 = Fade('cyc', 1, 5, .90)
+r6 = Fade('god', 0, 8, .75) 
+
+cues = [
+    Cue("This", 0, 10, f1, f2, f3, f4),
+    Cue("That", 0, 5, g1, g2, g3, g4),
+    Cue("The other", 1, 7, f1, g2, g3, f4),
+    Cue("Reset", 1, 9, r1, r2, r3, r4, r5, r6),
+]
 
 patch = {
     
-    'side l' : 45, # posts
-    'side r' : 46,
+    ('side l','sidepost1') : 45, # posts
+    ('side r','sidepost2') : 46,
     
+    'sidefill1' : 13,
+    'sidefill2' : 14,
+
     ('patio1','main 1',) : 1,
     ('main 2',) : 2,
     ('main 3',) : 3,
@@ -29,9 +48,10 @@
     ('main 10',) : 10,
     ('main 11',):11,
     ('patio2','main 12',):12,
+    'hotback':19,
 
     'cycleft' : 43,
-    'cycright' : 44, # ? might be a different circuit
+    'cycright' : 42,
     
     'house':68,
     ('desk1' ,'b11'):54, # left bank over house
@@ -56,6 +76,10 @@
     'gree1':22,    'gree2':26,    'gree3':30,    'gree4':34,
     'blue1':23,    'blue2':27,    'blue3':31,    'blue4':35,
     'red1' :24,    'red2' :28,    'red3' :32,    'red4' :36,
+    'upfill1' : 40,
+    'upfill2' : 38,
+    'upfill3' : 37,
+    'upfill4' : 39,
 }
 
 from util import maxes,scaledict
@@ -249,33 +273,314 @@
             curtime = time()
         yield {dim : 100, 20 : params.get_param_value('magic')}
 
+
 subs = {
-    'over pit sm' : levs(range(1, 13),(100,0,0,91,77,79,86,55,92,77,59,0)),
-    'over pit lg' : fulls(range(1, 13)),
     ('house', 'black') : { 68:100 },
-    ('cyc', 'lightBlue'):{42:FL,43:FL},
-    ('scp hot ctr', 'yellow'):{18:FL},
-    ('scp more', '#AAAA00'):{18:FL,14:FL},
-    ('scp all', '#AAAA00'):fulls((13,16,18,19,39)),
     ('col oran', '#EEEE99'):fulls('oran1 oran2 oran3 oran4'.split()),
     ('col red', 'red'):fulls('red1 red2 red3 red4'.split()),
     ('col blue', 'blue'):fulls('blue1 blue2 blue3 blue4'.split()),
     ('col gree', 'green'):fulls('gree1 gree2 gree3 gree4'.split()),
     'sidepost':fulls((45,46)),
-    'edges':fulls((55,60,49,54,61,66)),
     'bank1ctr':fulls(('b22','b23','b24','b25')),
     'god' : fulls((6,)),
-    ('strobe', 'grey'):strobe,
+#    ('strobe', 'grey'):strobe,
+#    'chase' : chase,
+#    'chase2' : chase,
+    'cyc' : fulls(('cycleft','cycright')),
+    'sidefill' : fulls(('sidefill1','sidefill2')),
+    'patio left' : { 'patio1':FL },
+    'patio right' : { 'patio2':FL },
+    'upfill sides' : fulls(('upfill1','upfill4')),
+    '*broadway open':{},
+    '*int mission':{},
+    '*phone booth':{},
+    '*off broadway':{},
+    '*cuba left':{},
+    '*cuba right':{},
+    '*cuba dance':{},
+    '*cuba sky':{},
+    '*cuba love':{},
+    '*ext mission':{},
+    '*hotbox dance':{},
+    '*hotbox table':{},
+    '*sewer':{},
+    '*marry':{},
     
-#    'midstage' : dict([(r, 100) for r in range(11, 21)]),
-#    'backstage' : dict([(r, 100) for r in range(21, 31)]),
-#    'frontchase' : mr_effect,
-    'chase' : chase,
-    # 'chase2' : chase,
-#    'random' : randomdimmer,
+    
 }
 
-subs["ba outrs"] = fulls("b11 b12 b13 b14 b15 b16 b31 b32 b33 b34 b35 b36".split())
-subs["ba some"] = {'b12':40,'b13':FL,'b14':FL,'b15':40,
-                   'b32':40,'b33':FL,'b34':FL,'b35':40,}
-subs['*curtain'] = subs['ba some'].copy()
+subs["*marry"] = { "hotbox1" : 100,}
+subs["*phone booth"] = { "phone" : 100,}
+subs["*broadway open"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "main 11" : 100, "main 10" : 100, "b34" : 100, "b25" : 100, "b24" : 100,
+    "b22" : 100, "desk2" : 78, "phone" : 46, "upfill3" : 69, "upfill2" : 100,
+    "main 3" : 68, "main 2" : 100, "main 5" : 100, "main 4" : 100,
+    "main 7" : 100, "main 9" : 100, "main 8" : 100, "edge" : 46,
+    "sidepost1" : 100, "sidepost2" : 100, "marry2" : 100, "marry1" : 100,}
+subs["*int mission"] = { "sidefill1" : 100, "main 4" : 100, "main 9" : 100,
+    "main 8" : 100, "b24" : 100, "b23" : 100, "desk1" : 100, "desk2" : 100,
+    "b22" : 100, "rock" : 100, "marry1" : 100, "cuba1" : 25, "cuba2" : 51,
+    "main 10" : 100,}
+subs["*broadway open"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "main 11" : 100, "main 10" : 100, "b34" : 100, "b25" : 100, "b24" : 100,
+    "b22" : 100, "desk2" : 78, "phone" : 46, "hotbox1" : 100, "upfill3" : 69,
+    "upfill2" : 100, "main 3" : 68, "main 2" : 100, "main 5" : 100,
+    "main 4" : 100, "main 7" : 100, "hotbox2" : 100, "main 9" : 100,
+    "main 8" : 100, "edge" : 46, "sidepost1" : 100, "sidepost2" : 100,
+    "marry2" : 100, "marry1" : 100,}
+subs["*broadway open"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "cycright" : 41, "upfill3" : 69, "upfill2" : 100, "upfill1" : 56,
+    "side l" : 100, "b25" : 100, "cycleft" : 41, "b22" : 100, "desk2" : 78,
+    "phone" : 46, "hotbox1" : 100, "upfill4" : 56, "b24" : 100, "side r" : 100,
+    "main 11" : 100, "main 10" : 100, "main 3" : 68, "main 2" : 100,
+    "main 5" : 100, "main 4" : 100, "main 7" : 100, "hotbox2" : 100,
+    "main 9" : 100, "main 8" : 100, "b34" : 100, "edge" : 46, "god" : 100,
+    "marry2" : 100, "marry1" : 100,}
+subs["*broadway open"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "cycright" : 41, "upfill3" : 69, "upfill2" : 100, "upfill1" : 56,
+    "b34" : 100, "b25" : 100, "side l" : 100, "b22" : 100, "desk2" : 78,
+    "phone" : 80, "hotbox1" : 100, "upfill4" : 56, "b24" : 100, "side r" : 100,
+    "main 11" : 100, "main 10" : 100, "main 3" : 100, "main 2" : 100,
+    "main 5" : 100, "main 4" : 100, "main 7" : 100, "hotbox2" : 100,
+    "main 9" : 100, "main 8" : 100, "cycleft" : 41, "edge" : 80,
+    "god" : 100, "marry2" : 100, "marry1" : 100,}
+subs["*int mission"] = { "sidefill2" : 51, "sidefill1" : 0, "upfill4" : 0,
+    "main 11" : 100, "main 10" : 100, "b34" : 0, "b25" : 0, "b24" : 100,
+    "b23" : 100, "desk1" : 53, "desk2" : 100, "b22" : 100, "hotbox2" : 85,
+    "hotbox1" : 25, "b32" : 62, "upfill3" : 37, "upfill2" : 66, "main 3" : 0,
+    "main 5" : 70, "main 4" : 100, "main 7" : 100, "main 9" : 100,
+    "main 8" : 100, "rock" : 52, "marry2" : 100, "marry1" : 61, "cuba1" : 0,
+    "cuba2" : 78,}
+subs["*int mission"] = { "sidefill2" : 51, "sidefill1" : 0, "upfill4" : 0,
+    "main 11" : 100, "main 10" : 100, "b34" : 0, "b25" : 0, "b24" : 100,
+    "b23" : 100, "desk1" : 53, "desk2" : 100, "b22" : 100, "hotbox2" : 85,
+    "hotbox1" : 25, "cycright" : 66, "b32" : 62, "upfill3" : 37,
+    "upfill2" : 66, "main 3" : 57, "main 2" : 0, "main 5" : 70, "main 4" : 100,
+    "main 7" : 100, "main 9" : 100, "main 8" : 100, "rock" : 52,
+    "marry2" : 100, "marry1" : 61, "cuba1" : 0, "cuba2" : 78,}
+subs["*hotbox dance"] = { "red3" : 100, "sidefill2" : 46, "red1" : 100,
+    "cycright" : 19, "upfill3" : 32, "upfill2" : 46, "upfill1" : 26,
+    "red2" : 100, "side l" : 46, "b25" : 46, "cycleft" : 19, "sidefill1" : 46,
+    "desk2" : 36, "b22" : 46, "phone" : 37, "hotbox1" : 46, "upfill4" : 26,
+    "b24" : 46, "side r" : 46, "main 11" : 46, "main 10" : 46, "main 3" : 46,
+    "main 2" : 46, "main 5" : 46, "main 4" : 46, "main 7" : 46, "hotbox2" : 46,
+    "main 9" : 46, "main 8" : 46, "red4" : 100, "b34" : 46, "edge" : 37,
+    "god" : 100, "marry2" : 46, "marry1" : 46,}
+subs["*hotbox dance"] = { "cycright" : 19, "upfill3" : 32, "upfill2" : 46,
+    "upfill1" : 26, "sidefill2" : 0, "b25" : 0, "side l" : 46, "b23" : 0,
+    "desk1" : 0, "desk2" : 0, "upfill4" : 26, "side r" : 46, "main 11" : 46,
+    "main 10" : 46, "god" : 100, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0,
+    "marry2" : 0, "marry1" : 0, "cuba1" : 0, "cuba2" : 0, "b13" : 0,
+    "red3" : 100, "red2" : 100, "sidefill1" : 0, "b24" : 0, "red4" : 100,
+    "b34" : 30, "cycleft" : 19, "b32" : 43, "b22" : 0, "phone" : 0,
+    "hotbox1" : 42, "main 3" : 46, "main 2" : 46, "main 5" : 46,
+    "main 4" : 46, "main 7" : 100, "hotbox2" : 78, "main 9" : 46,
+    "main 8" : 46, "hotback" : 100, "rock" : 0, "red1" : 100,}
+subs["*hotbox dance"] = { "cycright" : 19, "upfill3" : 32, "upfill2" : 46,
+    "upfill1" : 26, "sidefill2" : 0, "b25" : 0, "side l" : 46, "b23" : 0,
+    "desk1" : 0, "desk2" : 24, "upfill4" : 26, "side r" : 46, "main 11" : 46,
+    "main 10" : 100, "god" : 100, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0,
+    "marry2" : 0, "marry1" : 0, "cuba1" : 0, "cuba2" : 0, "b13" : 0,
+    "red3" : 100, "red2" : 100, "sidefill1" : 0, "b24" : 0, "red4" : 100,
+    "b34" : 30, "cycleft" : 19, "b32" : 43, "b22" : 0, "phone" : 0,
+    "hotbox1" : 42, "main 3" : 46, "main 2" : 46, "main 5" : 100,
+    "main 4" : 46, "main 7" : 100, "hotbox2" : 78, "main 9" : 46,
+    "main 8" : 46, "hotback" : 100, "rock" : 0, "red1" : 100,}
+subs["*hotbox table"] = { "sidefill2" : 0, "main 3" : 80, "main 2" : 62,
+    "main 11" : 0, "main 4" : 29, "main 7" : 10, "main 9" : 64, "main 8" : 10,
+    "b25" : 0, "b22" : 100, "phone" : 0, "edge" : 0, "b13" : 0, "marry2" : 0,
+    "main 5" : 34, "marry1" : 0, "hotback" : 0, "cuba1" : 22, "cuba2" : 0,}
+subs["*hotbox table"] = { "sidefill2" : 0, "main 11" : 0, "b25" : 0,
+    "b22" : 100, "desk2" : 58, "phone" : 0, "main 3" : 80, "main 2" : 62,
+    "main 5" : 34, "main 4" : 100, "main 7" : 10, "hotbox2" : 46,
+    "main 9" : 64, "main 8" : 10, "edge" : 0, "b13" : 0, "rock" : 22,
+    "marry2" : 0, "marry1" : 0, "hotback" : 0, "cuba1" : 22, "cuba2" : 0,}
+subs["*hotbox small table"] = { "red3" : 100, "red2" : 100, "main 3" : 80,
+    "main 2" : 62, "main 5" : 34, "main 4" : 100, "main 7" : 10,
+    "red4" : 100, "main 9" : 64, "main 8" : 10, "rock" : 22, "red1" : 100,
+    "desk2" : 58, "b22" : 100, "hotbox2" : 46, "upfill4" : 62, "god" : 100,
+    "upfill1" : 62, "cuba1" : 22,}
+subs["*hotbox small table"] = { "red3" : 100, "red2" : 100, "red1" : 100,
+    "upfill4" : 62, "main 11" : 0, "main 10" : 0, "upfill1" : 62,
+    "red4" : 100, "b25" : 5, "b22" : 100, "desk2" : 58, "desk1" : 52,
+    "hotbox2" : 0, "sidefill2" : 0, "main 3" : 47, "main 2" : 0,
+    "main 5" : 0, "main 4" : 0, "main 7" : 0, "phone" : 0, "main 9" : 11,
+    "main 8" : 0, "god" : 100, "edge" : 0, "rock" : 0, "marry2" : 0,
+    "marry1" : 0, "hotback" : 0, "cuba1" : 0, "cuba2" : 0,}
+subs["*ext mission"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "cycright" : 41, "upfill3" : 69, "upfill2" : 100, "upfill1" : 56,
+    "side l" : 100, "b25" : 100, "cycleft" : 41, "b22" : 100, "desk2" : 78,
+    "phone" : 80, "hotbox1" : 100, "upfill4" : 56, "b24" : 100, "side r" : 100,
+    "main 11" : 100, "main 10" : 100, "main 3" : 100, "main 2" : 100,
+    "main 5" : 100, "main 4" : 100, "main 7" : 100, "hotbox2" : 100,
+    "main 9" : 100, "main 8" : 100, "b34" : 100, "edge" : 80, "god" : 100,
+    "marry2" : 100, "marry1" : 100,}
+subs["*ext mission"] = { "sidefill2" : 100, "sidefill1" : 59,
+    "cycright" : 53, "upfill3" : 0, "upfill2" : 0, "upfill1" : 0,
+    "b34" : 100, "b25" : 100, "side l" : 100, "b23" : 100, "b22" : 49,
+    "b32" : 80, "phone" : 0, "hotbox1" : 0, "upfill4" : 0, "b24" : 100,
+    "desk2" : 78, "main 11" : 100, "main 10" : 100, "main 3" : 0,
+    "main 2" : 100, "main 5" : 100, "main 4" : 0, "main 7" : 100,
+    "hotbox2" : 100, "main 9" : 100, "main 8" : 100, "god" : 100,
+    "cycleft" : 0, "edge" : 0, "b13" : 0, "rock" : 60, "marry2" : 100,
+    "marry1" : 0, "side r" : 100,}
+subs["*broadway night 1-7"] = { "sidefill2" : 37, "sidefill1" : 37,
+    "cycright" : 15, "upfill3" : 25, "upfill2" : 37, "upfill1" : 20,
+    "side l" : 37, "b25" : 37, "cycleft" : 15, "b22" : 37, "desk2" : 28,
+    "phone" : 29, "hotbox1" : 37, "upfill4" : 20, "b24" : 37, "side r" : 37,
+    "main 11" : 37, "main 10" : 37, "main 3" : 37, "main 2" : 37,
+    "main 5" : 37, "main 4" : 37, "main 7" : 37, "hotbox2" : 37,
+    "main 9" : 37, "main 8" : 37, "b34" : 37, "edge" : 29, "god" : 100,
+    "marry2" : 37, "marry1" : 37,}
+subs["*broadway night 1-7"] = { "sidefill2" : 37, "sidefill1" : 37,
+    "upfill3" : 11, "upfill2" : 23, "b34" : 37, "b25" : 37, "b24" : 94,
+    "b23" : 100, "b22" : 61, "desk2" : 28, "hotbox2" : 37, "hotbox1" : 37,
+    "blue1" : 93, "main 11" : 37, "blue3" : 93, "blue2" : 93, "blue4" : 93,
+    "main 10" : 37, "main 3" : 25, "main 2" : 37, "main 5" : 37,
+    "main 4" : 37, "main 7" : 37, "main 9" : 37, "main 8" : 37, "edge" : 12,
+    "god" : 100, "marry2" : 37, "marry1" : 37,}
+subs["*broadway night 1-7"] = { "sidefill2" : 37, "sidefill1" : 37,
+    "upfill3" : 11, "upfill2" : 23, "b34" : 37, "b25" : 37, "b24" : 94,
+    "b23" : 100, "b22" : 61, "desk2" : 0, "desk1" : 0, "hotbox2" : 37,
+    "hotbox1" : 0, "blue1" : 93, "main 11" : 37, "blue3" : 93, "blue2" : 93,
+    "blue4" : 93, "main 10" : 37, "main 3" : 25, "main 2" : 37, "main 5" : 37,
+    "main 4" : 37, "main 7" : 37, "main 9" : 37, "main 8" : 37, "edge" : 12,
+    "god" : 100, "marry2" : 37, "marry1" : 37,}
+subs["*broadway night 1-7"] = { "sidefill2" : 37, "sidefill1" : 37,
+    "upfill3" : 11, "upfill2" : 23, "b34" : 28, "b25" : 37, "b24" : 94,
+    "b23" : 100, "b22" : 82, "desk2" : 0, "desk1" : 0, "hotbox2" : 11,
+    "hotbox1" : 0, "blue1" : 93, "main 11" : 37, "blue3" : 93, "blue2" : 93,
+    "blue4" : 93, "main 10" : 37, "main 3" : 25, "main 2" : 37, "main 5" : 37,
+    "main 4" : 37, "main 7" : 37, "main 9" : 37, "main 8" : 37, "edge" : 12,
+    "god" : 100, "marry2" : 0, "marry1" : 37,}
+subs["*cuba right"] = { "main 3" : 31, "main 2" : 0, "main 10" : 100,
+    "b34" : 100, "b22" : 31, "desk2" : 85, "desk1" : 39, "edge" : 31,
+    "sidefill1" : 7, "cuba1" : 100, "cuba2" : 100,}
+subs["*cuba dance"] = { "sidefill2" : 100, "sidefill1" : 100,
+    "upfill4" : 100, "upfill3" : 81, "upfill2" : 100, "upfill1" : 100,
+    "b34" : 100, "b25" : 100, "b24" : 100, "b23" : 100, "desk1" : 100,
+    "desk2" : 100, "b22" : 100, "phone" : 100, "main 11" : 100, "main 10" : 100,
+    "main 3" : 100, "main 2" : 100, "main 5" : 100, "main 4" : 100,
+    "main 7" : 100, "main 9" : 100, "main 8" : 100, "edge" : 100,
+    "god" : 100, "marry2" : 100, "marry1" : 100, "hotback" : 100,
+    "cuba1" : 100, "cuba2" : 100,}
+subs["*cuba love"] = { "sidefill2" : 0, "sidefill1" : 0, "upfill4" : 61,
+    "main 11" : 100, "main 10" : 100, "upfill1" : 61, "b25" : 100,
+    "b24" : 100, "b23" : 100, "b22" : 100, "desk2" : 0, "desk1" : 0,
+    "phone" : 0, "hotbox1" : 0, "upfill3" : 61, "upfill2" : 61, "main 3" : 0,
+    "main 2" : 100, "main 5" : 100, "main 4" : 100, "main 7" : 100,
+    "main 9" : 73, "main 8" : 100, "edge" : 0, "hotback" : 0, "marry2" : 0,
+    "marry1" : 0, "cuba1" : 0, "cuba2" : 0,}
+subs["*cuba love"] = { "sidefill2" : 0, "sidefill1" : 0, "upfill4" : 0,
+    "main 11" : 28, "main 10" : 28, "upfill1" : 0, "b34" : 9, "b25" : 100,
+    "b24" : 59, "b23" : 59, "b22" : 100, "desk2" : 0, "desk1" : 0,
+    "phone" : 0, "hotbox1" : 0, "upfill3" : 43, "upfill2" : 43, "main 3" : 0,
+    "main 2" : 100, "main 5" : 16, "main 4" : 16, "main 7" : 0, "main 9" : 73,
+    "main 8" : 100, "edge" : 0, "marry2" : 9, "marry1" : 0, "hotback" : 0,
+    "cuba1" : 0, "cuba2" : 0,}
+subs["*cuba love"] = { "sidefill2" : 0, "sidefill1" : 0, "upfill4" : 0,
+    "main 11" : 28, "main 10" : 28, "upfill1" : 0, "b34" : 9, "b25" : 100,
+    "b24" : 59, "b23" : 59, "b22" : 100, "desk2" : 0, "desk1" : 0,
+    "phone" : 0, "hotbox1" : 0, "upfill3" : 43, "upfill2" : 43, "main 3" : 0,
+    "main 2" : 100, "main 5" : 16, "main 4" : 16, "main 7" : 0, "main 9" : 65,
+    "main 8" : 74, "edge" : 0, "marry2" : 9, "marry1" : 0, "hotback" : 0,
+    "cuba1" : 0, "cuba2" : 0,}
+subs["*cuba love"] = { "sidefill2" : 0, "sidefill1" : 0, "upfill4" : 0,
+    "main 11" : 28, "main 10" : 28, "upfill1" : 0, "b34" : 9, "b25" : 100,
+    "b24" : 59, "b23" : 59, "b22" : 100, "desk2" : 16, "desk1" : 0,
+    "phone" : 0, "hotbox1" : 0, "upfill3" : 43, "upfill2" : 43, "main 3" : 28,
+    "main 2" : 100, "main 5" : 16, "main 4" : 16, "main 7" : 0, "main 9" : 65,
+    "main 8" : 74, "edge" : 0, "marry2" : 9, "marry1" : 0, "hotback" : 0,
+    "cuba1" : 0, "cuba2" : 0,}
+subs["*ext mission night"] = { "sidefill2" : 39, "sidefill1" : 23,
+    "cycright" : 20, "main 11" : 29, "main 10" : 29, "upfill1" : 8,
+    "b34" : 39, "b25" : 39, "side l" : 39, "b23" : 39, "b22" : 19,
+    "b32" : 31, "upfill4" : 8, "b24" : 39, "side r" : 39, "desk2" : 18,
+    "main 2" : 39, "main 5" : 39, "main 9" : 39, "main 8" : 39, "god" : 100,
+    "marry2" : 39,}
+subs["*ext mission night"] = { "sidefill2" : 39, "sidefill1" : 23,
+    "cycright" : 20, "main 11" : 29, "main 10" : 29, "upfill1" : 8,
+    "b34" : 39, "b25" : 39, "side l" : 39, "b23" : 39, "b22" : 19,
+    "b32" : 31, "upfill4" : 8, "b24" : 39, "side r" : 39, "desk2" : 18,
+    "main 2" : 39, "main 5" : 39, "main 9" : 39, "main 8" : 39, "god" : 100,
+    "marry2" : 39,}
+subs["*ext mission night"] = { "cycright" : 6, "main 11" : 15,
+    "main 10" : 15, "upfill1" : 0, "b25" : 25, "side l" : 39, "b23" : 25,
+    "b22" : 5, "desk2" : 4, "upfill4" : 0, "side r" : 39, "upfill3" : 0,
+    "upfill2" : 0, "patio1" : 0, "god" : 86, "edge" : 0, "b13" : 0,
+    "sidepost2" : 0, "marry2" : 25, "marry1" : 0, "cuba1" : 5, "cuba2" : 0,
+    "sidepost1" : 0, "sidefill2" : 25, "sidefill1" : 9, "b24" : 25,
+    "b34" : 25, "cycleft" : 0, "b32" : 17, "desk1" : 0, "hotbox2" : 25,
+    "hotbox1" : 0, "main 3" : 0, "main 2" : 25, "main 5" : 25, "main 4" : 25,
+    "main 7" : 25, "phone" : 0, "main 9" : 25, "main 8" : 25, "patio2" : 0,
+    "hotback" : 0, "rock" : 17,}
+subs["*ext mission night"] = { "b32" : 27, "sidefill2" : 34, "sidefill1" : 20,
+    "cycright" : 18, "main 11" : 34, "main 10" : 34, "upfill1" : 8,
+    "b34" : 34, "b25" : 34, "side l" : 34, "b23" : 34, "b22" : 16,
+    "desk2" : 26, "hotbox2" : 34, "upfill4" : 8, "b24" : 34, "side r" : 34,
+    "main 2" : 34, "main 5" : 34, "main 4" : 25, "main 7" : 34, "main 9" : 34,
+    "main 8" : 34, "rock" : 20, "god" : 100, "marry2" : 34, "cuba1" : 5,}
+subs["*2-2"] = { "b32" : 27, "sidefill2" : 34, "sidefill1" : 20,
+    "cycright" : 18, "main 11" : 34, "main 10" : 34, "upfill1" : 70,
+    "b34" : 34, "b25" : 34, "side l" : 34, "b23" : 34, "b22" : 16,
+    "desk2" : 26, "hotbox2" : 34, "upfill4" : 70, "b24" : 34, "side r" : 34,
+    "main 2" : 34, "main 5" : 34, "main 4" : 25, "main 7" : 34, "main 9" : 34,
+    "main 8" : 34, "rock" : 20, "god" : 100, "marry2" : 34, "cuba1" : 5,}
+subs["*2-2"] = { "sidefill2" : 0, "sidefill1" : 0, "cycright" : 18,
+    "main 11" : 5, "main 10" : 5, "upfill1" : 70, "b34" : 34, "b25" : 71,
+    "side l" : 34, "b23" : 67, "b22" : 50, "b32" : 57, "desk1" : 0,
+    "hotbox2" : 59, "upfill4" : 70, "b24" : 67, "desk2" : 26, "main 3" : 0,
+    "main 2" : 5, "main 5" : 5, "main 4" : 0, "main 7" : 5, "main 9" : 5,
+    "main 8" : 5, "rock" : 20, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0,
+    "god" : 100, "marry2" : 50, "cuba1" : 0, "side r" : 34,}
+subs["*sewer"] = { "main 10" : 71, "upfill4" : 100, "main 11" : 66,
+    "main 4" : 71, "upfill1" : 88, "main 8" : 71, "main 7" : 71,
+    "main 5" : 100, "hotbox1" : 88, "hotback" : 66, "marry2" : 66,
+    "upfill3" : 88, "marry1" : 66, "upfill2" : 100,}
+subs["*2-2"] = { "sidefill2" : 0, "sidefill1" : 0, "cycright" : 18,
+    "main 11" : 5, "main 10" : 5, "upfill1" : 70, "b34" : 34, "b25" : 71,
+    "side l" : 34, "b23" : 67, "b22" : 50, "b32" : 57, "desk1" : 0,
+    "hotbox2" : 59, "upfill4" : 70, "b24" : 67, "desk2" : 26, "main 3" : 0,
+    "main 2" : 5, "main 5" : 56, "main 4" : 0, "main 7" : 5, "main 9" : 5,
+    "main 8" : 5, "rock" : 20, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0,
+    "god" : 100, "marry2" : 50, "cuba1" : 0, "side r" : 34,}
+subs["*sewer"] = { "sidefill2" : 33, "sidefill1" : 33, "upfill4" : 10,
+    "upfill3" : 22, "main 10" : 48, "upfill1" : 14, "b25" : 16, "b24" : 19,
+    "b23" : 46, "b22" : 50, "hotbox1" : 0, "main 11" : 40, "upfill2" : 61,
+    "main 2" : 54, "main 5" : 20, "main 4" : 45, "main 7" : 0, "main 9" : 84,
+    "main 8" : 45, "hotback" : 40, "marry2" : 0, "marry1" : 0,}
+subs["*sewer"] = { "sidefill2" : 33, "sidefill1" : 33, "upfill4" : 10,
+    "upfill3" : 22, "main 10" : 48, "upfill1" : 14, "b25" : 16, "b24" : 19,
+    "b23" : 64, "b22" : 50, "hotbox1" : 0, "main 11" : 40, "upfill2" : 61,
+    "main 2" : 54, "main 5" : 20, "main 4" : 45, "main 7" : 0, "main 9" : 84,
+    "main 8" : 45, "hotback" : 40, "sidepost1" : 31, "sidepost2" : 31,
+    "marry2" : 0, "marry1" : 0,}
+subs["*sewer"] = { "sidefill2" : 33, "sidefill1" : 33, "upfill4" : 10,
+    "upfill3" : 22, "main 10" : 48, "upfill1" : 14, "b25" : 16, "b24" : 19,
+    "b23" : 64, "b22" : 50, "hotbox1" : 0, "main 11" : 40, "upfill2" : 61,
+    "main 2" : 54, "main 5" : 20, "main 4" : 45, "main 7" : 0, "main 9" : 84,
+    "main 8" : 45, "hotback" : 40, "sidepost1" : 31, "sidepost2" : 31,
+    "marry2" : 0, "marry1" : 0, "cuba1" : 59,}
+subs["*marry"] = { "b32" : 23, "sidefill2" : 30, "sidefill1" : 17,
+    "cycright" : 15, "main 11" : 30, "main 10" : 30, "upfill1" : 48,
+    "b34" : 30, "b25" : 30, "side l" : 30, "b23" : 30, "b22" : 14,
+    "desk2" : 23, "hotbox2" : 30, "upfill4" : 48, "b24" : 30, "side r" : 30,
+    "main 3" : 30, "main 2" : 30, "main 5" : 30, "main 4" : 22, "main 7" : 30,
+    "main 9" : 30, "main 8" : 30, "rock" : 17, "edge" : 15, "god" : 100,
+    "marry2" : 30, "cuba1" : 4,}
+subs["*marry"] = { "sidefill2" : 0, "sidefill1" : 0, "cycright" : 100,
+    "main 11" : 55, "main 10" : 55, "upfill1" : 48, "b34" : 30, "b25" : 0,
+    "side l" : 30, "b23" : 100, "b22" : 14, "b32" : 23, "main 4" : 0,
+    "hotbox2" : 43, "hotbox1" : 49, "upfill4" : 48, "b24" : 100,
+    "desk2" : 23, "patio2" : 0, "main 3" : 0, "main 2" : 30, "main 5" : 0,
+    "patio1" : 0, "main 7" : 30, "phone" : 0, "main 9" : 30, "main 8" : 0,
+    "rock" : 17, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0, "god" : 100,
+    "marry2" : 34, "marry1" : 69, "cuba1" : 0, "cuba2" : 0, "side r" : 30,}
+subs["*marry"] = { "sidefill2" : 0, "sidefill1" : 0, "cycright" : 100,
+    "main 11" : 55, "main 10" : 55, "upfill1" : 48, "b34" : 30, "patio1" : 0,
+    "b25" : 0, "side l" : 30, "b23" : 100, "b22" : 14, "b32" : 23,
+    "hotbox2" : 43, "hotbox1" : 49, "upfill4" : 48, "b24" : 100,
+    "desk2" : 23, "patio2" : 0, "main 3" : 0, "main 2" : 30, "main 5" : 0,
+    "main 4" : 0, "main 7" : 30, "phone" : 0, "main 9" : 30, "main 8" : 0,
+    "rock" : 17, "edge" : 0, "sidepost1" : 0, "sidepost2" : 0, "god" : 100,
+    "marry2" : 34, "marry1" : 69, "cuba1" : 0, "cuba2" : 0, "side r" : 30,}
--- a/light8/Cue.py	Mon Jul 08 14:31:20 2002 +0000
+++ b/light8/Cue.py	Mon Jul 08 15:50:00 2002 +0000
@@ -29,6 +29,7 @@
         return c.keys()
     def start(self, levels, time):
         'Mark the beginning of a cue'
+        # print "cue marked with", levels
         self.init_levels = levels
         self.init_time = time
 
@@ -56,13 +57,14 @@
     'See Cue.__doc__'
     def __init__(self, channel, starttime, dur=None, endlevel=0, param=None):
         'Fades are simple Cues'
-        Cue.__init__(self, "%s -> %f" % (channel, endlevel), starttime, dur)
+        Cue.__init__(self, "%s -> %.1f" % (channel, endlevel), starttime, dur)
         self.channel = channel
         self.endlevel = endlevel
         self.dur = dur
         self.param = param
     def start(self, levels, time):
         'Mark the beginning of the fade'
+        # print "fade", self.name, "marked with", levels
         self.init_levels = levels
         self.init_level = levels[self.channel]
         self.init_time = time
@@ -76,7 +78,8 @@
         elif elapsed >= self.endtime:
             return {self.channel : self.endlevel}
         else:
-            percent = float(elapsed) / self.dur
+            percent = float((curtime - self.init_time) - self.starttime) / \
+                        self.dur
             return {self.channel : self.init_level + 
                 percent * (self.endlevel - self.init_level)}
     def get_end_levels(self):
--- a/light8/Fader.py	Mon Jul 08 14:31:20 2002 +0000
+++ b/light8/Fader.py	Mon Jul 08 15:50:00 2002 +0000
@@ -10,6 +10,11 @@
 
 stdfont = ('Arial', 10)
 
+def get_selection(listbox):
+    'Given a listbox, returns first selection as integer'
+    selection = int(listbox.curselection()[0]) # blech
+    return selection
+
 class Fader(Frame):
     'User interface for cue fader'
     def __init__(self, master, cues, scalelevels):
@@ -40,14 +45,17 @@
         self.cuetimeleft.set('0s')
 
         buttonframe = Frame(self)
+        topframe = Frame(self) # to contain cue list and infoframe
+        infoframe = Frame(topframe)
+        topframe.pack()
 
-        self.listbox = ScrolledListBox(buttonframe, 
+        self.listbox = ScrolledListBox(topframe, 
             command=self.update_selection)
         self.listbox.listbox.configure({'exportselection' : 0, 
             'selectmode' : EXTENDED})
         for c in self.cues:
             self.listbox.listbox.insert(END, c.name)
-        self.listbox.pack(side=TOP)
+        self.listbox.pack(side=LEFT)
         self.listbox.listbox.bind("<<ListboxSelect>>", self.update_selection, 
             add=1)
         Button(buttonframe, text="Go", command=self.go, font=stdfont,
@@ -56,10 +64,11 @@
             bg='red').pack(side=LEFT)
         Button(buttonframe, text="Prev", command=self.prev, 
             font=stdfont).pack(side=LEFT)
-        Button(buttonframe, text="Next", command=self.next, 
-            font=stdfont).pack(side=LEFT)
+        nextbutton = Button(buttonframe, text="Next", command=self.next, 
+            font=stdfont)
+        # Button(buttonframe, text="Load", command=self.mark_start, bg='grey80',
+            # font=stdfont).pack(side=LEFT)
 
-        infoframe = Frame(self)
         Label(infoframe, textvariable=self.cuename, 
             font=('Arial', 12), bg='lightBlue').grid(columnspan=4, sticky=NE+SW)
 
@@ -69,9 +78,10 @@
             font=stdfont).grid(row=1, column=1, columnspan=3, sticky=NE+SW)
 
         Label(infoframe, text="Target", font=stdfont,
-            bg='lightPink', wraplength=50).grid(row=2, sticky=NE+SW)
+            bg='lightPink').grid(row=2, sticky=NE+SW)
         Label(infoframe, textvariable=self.cuetarget, 
-            font=stdfont).grid(row=2, column=1, columnspan=3, sticky=NE+SW)
+            font=stdfont, wraplength=250).grid(row=2, column=1, columnspan=3, 
+                sticky=NE+SW)
 
         Label(infoframe, text="Status", font=stdfont,
             bg='lightPink').grid(row=3, sticky=NE+SW)
@@ -94,25 +104,30 @@
             font=stdfont)
         self.percentlabel.grid(row=5, column=1, columnspan=3, sticky=NE+SW)
 
-        s = Scale(infoframe, variable=self.cuepercent,
+        # s = Scale(infoframe, variable=self.cuepercent,
+        s = Scale(buttonframe, variable=self.cuepercent,
                         showvalue=0, length=220,
                         width=18, sliderlength=30,
                         to=100,res=.1,from_=0,bd=1, font=stdfont,
                         orient='horiz')
-        s.grid(row=6, columnspan=4, sticky='ew')
+        # s.grid(row=6, columnspan=4, sticky='ew')
+        nextbutton.pack(side=RIGHT)
+        s.pack(side=RIGHT, expand=1, fill=X)
 
         infoframe.pack(side=RIGHT, fill=BOTH, expand=1)
-        buttonframe.pack(side=BOTTOM)
+        buttonframe.pack(side=BOTTOM, expand=1, fill=X)
 
         self.listbox.listbox.select_set(0)
         self.update_selection()
+    def mark_start(self):
+        self.time_start = time()
+        startlevels = dict([(k, v.get()) for k, v in self.scalelevels.items()])
+        # print "going to mark with", startlevels
+        self.current.start(startlevels, self.time_start)
     def update_percent(self, *args):
         if self.cuestatus.get() != 'running':
             self.cuestatus.set("running")
-            self.time_start = time()
-            startlevels = dict([(k, v.get()) 
-                for k, v in self.scalelevels.items()])
-            self.current.start(startlevels, self.time_start)
+            self.mark_start()
 
         percent = self.cuepercent.get()
         self.percentlabel.config(text='%.1f%%' % percent)
@@ -121,19 +136,22 @@
         elapsed = percent * self.current.dur
         self.cuetimeelapse.set('%.1fs' % elapsed)
         self.cuetimeleft.set('%.1fs' % (self.current.dur - elapsed))
+
         newlevels = self.current.get_levels(self.time_start + elapsed)
+        # print "newlevels", newlevels
         for ch, lev in newlevels.items():
             try:
-                self.scalelevels[ch].set(lev / 100.0)
+                self.scalelevels[ch].set(lev)
             except KeyError:
                 pass
 
     def update_selection(self, *args):
-        selection = int(self.listbox.listbox.curselection()[0]) # blech
+        self.cuestatus.set('stopped')
+        selection = get_selection(self.listbox.listbox)
         self.current = self.cues[selection]
         self.cuename.set(self.current.name)
         self.cuelength.set(self.current.dur)
-        target = ', '.join(['%s -> %.1f' % (n, lev) 
+        target = ', '.join(['%s -> %.2f' % (n, lev) 
             for n, lev in self.current.get_end_levels().items()])
         self.cuetarget.set(target)
         self.cuetimeelapse.set('0s')
@@ -142,33 +160,34 @@
     def go(self):
         self.update_selection()
         self.cuestatus.set("running")
-        self.time_start = time()
-        startlevels = dict([(k, v.get()) for k, v in self.scalelevels.items()])
-        self.current.start(startlevels, self.time_start)
+        self.mark_start()
         self.running_loop()
     def stop(self):
         self.cuestatus.set('stopped')
     def prev(self):
-        self.cuestatus.set('stopped')
-        selection = int(self.listbox.listbox.curselection()[0]) # blech
+        self.stop()
+        selection = get_selection(self.listbox.listbox)
         if selection != 0:
             self.listbox.listbox.select_clear(selection)
             self.listbox.listbox.select_set(selection - 1)
             self.update_selection()
+            self.mark_start()
     def next(self):
-        self.cuestatus.set('stopped')
-        selection = int(self.listbox.listbox.curselection()[0]) # blech
+        self.stop()
+        selection = get_selection(self.listbox.listbox)
         if selection != self.listbox.listbox.size() - 1:
             self.listbox.listbox.select_clear(selection)
             self.listbox.listbox.select_set(selection + 1)
             self.update_selection()
+            self.mark_start()
     def running_loop(self):
         if self.cuestatus.get() == 'stopped':
             return
         curtime = time()
         elapsed = (curtime - self.time_start)
+
         if elapsed > self.current.dur:
-            self.cuestatus.set('finished')
+            self.cuestatus.set('stopped')
             self.cuepercent.set(100)
 
             # advance cues if okay
--- a/light8/rsn.py	Mon Jul 08 14:31:20 2002 +0000
+++ b/light8/rsn.py	Mon Jul 08 15:50:00 2002 +0000
@@ -14,7 +14,6 @@
 from Fader import Fader
 import stage
 
-
 if len(sys.argv) >= 2:
     DUMMY = 0
     print "This is the real thing, baby"
@@ -97,9 +96,9 @@
         self.xfader.setupwidget(xf)
         controlpanel.pack()
 
-        # cuefader_tl = toplevelat(98, 480)
-        # cuefader = Fader(cuefader_tl, Subs.cues, self.scalelevels)
-        # cuefader.pack()
+        cuefader_tl = toplevelat(78, 480)
+        cuefader = Fader(cuefader_tl, Subs.cues, self.scalelevels)
+        cuefader.pack()
 
     def refresh(self, *args):
         'rebuild interface, reload data'