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)
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()
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
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)
def send_levels(self): levels = self.get_dmx_list() dmxclient.outputlevels(levels)
def send_sub(self, sub): levels = sub.get_dmx_list() dmxclient.outputlevels(levels)
def sendOutput(self, combined): dmx = combined.get_dmx_list() yield dmxclient.outputlevels(dmx, twisted=True)