Esempio n. 1
0
def writeOut():
    global prevs, envPrevs, envLo, envHi
    now = time.time()

    envPrevs = (envPrevs + [currentLevel])[-50:]
    
    prevs = (prevs + [currentLevel])[-config['avgPrevs']:]
    avg = sum(prevs) / len(prevs)

    yEnv = max(0, avg - envLo) / (envHi - envLo)

    envLo = min(envPrevs)
    envHi = max(envPrevs)
    
    
    y = max(0, min(1, (yEnv + config['levelOffset']) /
                   config['levelMax']))
    y = math.pow(y, config['gamma'])
    if y > .8 and now > state['lastHueTime'] + .3:
        state['dominantHue'] = .5 - state['dominantHue']#random.random()
        state['lastHueTime'] = time.time()
        print "hue", state['dominantHue']

    chans = [0] * 90

    h = state['dominantHue'] + y / 5
    chans[73-1:76-1] = list(colorsys.hsv_to_rgb(h, 1, y))
    chans[80-1:83-1] = list(colorsys.hsv_to_rgb(h, 1, y))
    chans[88-1:91-1] = list(colorsys.hsv_to_rgb(h, .4, y)) # center
    chans[87-1] = .84

    dmxclient.outputlevels(chans, twisted=True)
Esempio n. 2
0
    def readSample(self):
        dsp.flush()
        b = dsp.read(2)

        x = abs(ord(b[0]) - 128) / 128

        outputlevels([0,0,0,0,0,0,0,0,0,0, x], twisted=True)

        intens = 255 * x
        disp.fill((intens, intens, intens))
        pygame.display.flip()
Esempio n. 3
0
 def send_dmx(self,t):
     dispatcher.send("curves to sliders", t=t)
     scaledsubs=[]
     for st in self.subterms:
         scl = st.scaled(t)
         scaledsubs.append(scl)
     out = Submaster.sub_maxes(*scaledsubs)
     levs = out.get_levels()
     now=time.time()
     if now-self.lastsendtime>5 or levs!=self.lastsendlevs:
         dispatcher.send("output levels",val=levs)
         dmxclient.outputlevels(out.get_dmx_list(),
                                twisted=1,clientid='curvecalc')
         self.lastsendtime = now
         self.lastsendlevs = levs
Esempio n. 4
0
def step():
    hue = (time.time() * .2) % 1.0
    r, g, b = colorsys.hsv_to_rgb(hue, 1, 1)
    chans = [r, g, b]
    log.info(chans)
    dmxclient.outputlevels([0] * (firstDmxChannel - 1) + chans, twisted=True)
Esempio n. 5
0
 def send_levels(self):
     levels = self.get_dmx_list()
     dmxclient.outputlevels(levels)
Esempio n. 6
0
 def send_sub(self, sub):
     levels = sub.get_dmx_list()
     dmxclient.outputlevels(levels)
Esempio n. 7
0
 def sendOutput(self, combined):
     dmx = combined.get_dmx_list()
     yield dmxclient.outputlevels(dmx, twisted=True)