def chase(t, ontime=0.5, offset=0.2, onval=1.0, offval=0.0, names=None, combiner=max, random=False): """names is list of URIs. returns a submaster that chases through the inputs""" if random: r = random_mod.Random(random) names = names[:] r.shuffle(names) chase_vals = chase_logic(t, ontime, offset, onval, offval, names, combiner) lev = {} for uri, value in chase_vals.items(): try: dmx = Patch.dmx_from_uri(uri) except KeyError: log.info(("chase includes %r, which doesn't resolve to a dmx chan" % uri)) continue lev[dmx] = value return Submaster.Submaster(name="chase" ,levels=lev)
def stack(t, names=None, fade=0): """names is list of URIs. returns a submaster that stacks the the inputs fade=0 makes steps, fade=1 means each one gets its full fraction of the time to fade in. Fades never... """ frac = 1.0 / len(names) lev = {} for i, uri in enumerate(names): if t >= (i + 1) * frac: try: dmx = Patch.dmx_from_uri(uri) except KeyError: log.info(("stack includes %r, which doesn't resolve to a dmx chan"% uri)) continue lev[dmx] = 1 else: break return Submaster.Submaster(name="stack", levels=lev)