# HG changeset patch # User dmcc # Date 2002-07-08 15:50:00 # Node ID 3011c1028eb71dec9ae77f1407f1e852434a1539 # Parent 032b2b67bc10aa82392945a73d5d23b7740ea379 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. diff --git a/light8/ConfigDummy.py b/light8/ConfigDummy.py --- a/light8/ConfigDummy.py +++ b/light8/ConfigDummy.py @@ -4,19 +4,38 @@ from __future__ import generators,divisi 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 @@ patch = { ('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 @@ patch = { '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 @@ def randomdimmer(params, slideradjuster) 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,} diff --git a/light8/Cue.py b/light8/Cue.py --- a/light8/Cue.py +++ b/light8/Cue.py @@ -29,6 +29,7 @@ class Cue: 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 @@ class Fade(Cue): '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 @@ class Fade(Cue): 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): diff --git a/light8/Fader.py b/light8/Fader.py --- a/light8/Fader.py +++ b/light8/Fader.py @@ -10,6 +10,11 @@ from FlyingFader import FlyingFader 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 @@ class Fader(Frame): 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("<>", self.update_selection, add=1) Button(buttonframe, text="Go", command=self.go, font=stdfont, @@ -56,10 +64,11 @@ class Fader(Frame): 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 @@ class Fader(Frame): 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 @@ class Fader(Frame): 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 @@ class Fader(Frame): 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 @@ class Fader(Frame): 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 diff --git a/light8/rsn.py b/light8/rsn.py --- a/light8/rsn.py +++ b/light8/rsn.py @@ -14,7 +14,6 @@ from subediting import Subediting from Fader import Fader import stage - if len(sys.argv) >= 2: DUMMY = 0 print "This is the real thing, baby" @@ -97,9 +96,9 @@ class Lightboard: 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'