def upgrade_0_0_to_1_0(self, tools, address): root = tools.root(address) for i in range(1, 10): root.ensure_node(11, i, 255, 1) root.ensure_node(11, i, 255, 3) root.ensure_node(11, i, 254).set_data(piw.makefloat(10.0, 0)) root.ensure_node(11, 1, 255, 8).set_string("volume rate") root.ensure_node(11, 2, 255, 8).set_string("modwheel rate") root.ensure_node(11, 3, 255, 8).set_string("pan rate") root.ensure_node(11, 4, 255, 8).set_string("foot pedal rate") root.ensure_node(11, 5, 255, 8).set_string("expression rate") root.ensure_node(11, 6, 255, 8).set_string("channel pressure rate") root.ensure_node(11, 7, 255, 8).set_string("poly pressure rate") root.ensure_node(11, 8, 255, 8).set_string("pitch bend rate") root.ensure_node(11, 9, 255, 8).set_string("sustain pedal rate") root.ensure_node(11, 10, 255, 8).set_string("continuous rate") root.ensure_node(11, 11, 255, 8).set_string("continuous rate") root.ensure_node(11, 12, 255, 8).set_string("continuous rate") root.ensure_node(11, 13, 255, 8).set_string("continuous rate") root.ensure_node(11, 10, 255, 7).set_long(1) root.ensure_node(11, 11, 255, 7).set_long(2) root.ensure_node(11, 12, 255, 7).set_long(3) root.ensure_node(11, 13, 255, 7).set_long(4) return True
def upgrade_5_0_to_6_0(self, tools, address): root = tools.root(address) root.ensure_node(2, 253, 254).set_long(2) root.ensure_node(2, 253, 255.1) root.ensure_node(2, 253, 255.3) root.ensure_node(2, 253, 255.4).set_string('channel') root.ensure_node(2, 253, 255.8).set_string('count') root.ensure_node(2, 1, 255, 8).set_string('') root.ensure_node(3, 253, 254).set_long(2) root.ensure_node(3, 253, 255.1) root.ensure_node(3, 253, 255.3) root.ensure_node(3, 253, 255.4).set_string('channel') root.ensure_node(3, 253, 255.8).set_string('count') root.ensure_node(3, 1, 255, 8).set_string('') pmap = [] for p in range(1, 17): pnode = root.ensure_node(4, p) for n in pnode.iter(): pbits = n.get_string().split(',') pmap.append(logic.make_term('m', p, int(pbits[2]), 1.0)) pnode.ensure_node(255, 17) # replace 0 tail time (meaning, plugin value) with a sensible default n = root.ensure_node(10, 254) if n.get_data().is_float() and n.get_data().as_float() == 0.0: n.set_data(piw.makefloat(30.0, 0)) root.ensure_node(14, 255.1) root.ensure_node(14, 255.3) root.ensure_node(14, 255.8).set_string('midi input') root.ensure_node(15, 255.1) root.ensure_node(15, 255.3) root.ensure_node(15, 255.8).set_string('midi output') id_bits = root.ensure_node(255, 6).get_string().split('|') plug_id = id_bits[0] plug_name = id_bits[1] if len(id_bits) > 1 else '' au_bits = plug_id[0:4], plug_id[4:8], plug_id[8:12] what = '' if au_bits[0] == 'aumu': what = 'Synths' if au_bits[0] == 'aumf' or au_bits[0] == 'aufx': what = 'Effects' if what: desc = host_native.plugin_description( 'AudioUnit:%s/%s' % (what, ','.join(au_bits)), plug_name) root.ensure_node(255, 6, 3).set_string(urllib.quote(desc.to_xml())) root.ensure_node(255, 6, 4).set_data(root.get_node(9, 254).get_data()) root.ensure_node(255, 6, 5).set_string( logic.render_term(logic.make_term('mapping', *tuple(pmap)))) root.remove(99) return True
def __addvoiceatom(self,root,voice,file,vol,chop,playing): voice_node = root.ensure_node(5,voice) voice_node.ensure_node(255,7).set_data(piw.makelong(voice,0)) voice_node.ensure_node(255,8).set_data(piw.makestring('voice',0)) voice_node.ensure_node(255,6).set_data(piw.makestring(logic.render_term((file,playing)),0)) voice_node.ensure_node(255,1) voice_node.ensure_node(255,3) volume_node = voice_node.ensure_node(1) volume_node.ensure_node(255,8).set_data(piw.makestring('volume',0)) volume_node.ensure_node(255,1) volume_node.ensure_node(255,3) volume_node.ensure_node(254).set_data(piw.makefloat(vol,0)) chop_node = voice_node.ensure_node(2) chop_node.ensure_node(255,8).set_data(piw.makestring('chop',0)) chop_node.ensure_node(255,1) chop_node.ensure_node(255,3) chop_node.ensure_node(254).set_data(piw.makefloat(chop,0))
def upgrade_1_0_to_2_0(self, tools, address): root = tools.root(address) node = root.get_node(2, 23) if (node == None): print 'cello upgrade warning: no bow velocity factor node found so creating one' root.ensure_node(2, 23) root.ensure_node(2, 23, 254).set_data(piw.makefloat(1.0, 0)) root.ensure_node(2, 23, 255) root.ensure_node(2, 23, 255, 1) root.ensure_node(2, 23, 255, 3) root.ensure_node(2, 23).setmeta(8, 'bow', 'velocity', 'factor') return True
def upgrade_3_0_to_4_0(self,tools,address): root = tools.root(address) node = root.get_node(2,9) if(node==None): print 'clarinet upgrade warning: no pitch time node found so creating one' root.ensure_node(2,9) root.ensure_node(2,9,254).set_data(piw.makefloat(10.0,0)) root.ensure_node(2,9,255) root.ensure_node(2,9,255,1) root.ensure_node(2,9).setmeta(8,'pitch','time','input') root.get_node(2,8).copy(root.get_node(2,9)) root.get_node(2,9).erase() return True
def upgrade_9_0_to_10_0(self, tools, address): root = tools.root(address) if root.get_node(11): root.get_node(11).erase() if root.get_node(12): root.get_node(12).erase() if root.get_node(13): root.get_node(13).erase() root.ensure_node(15) root.ensure_node(15, 254) root.ensure_node(15, 255) root.ensure_node(15, 255, 1) root.ensure_node(15, 255, 3) root.ensure_node(15).setmeta(8, 'midi', 'clock', 'input') root.ensure_node(16) root.ensure_node(16, 1) root.ensure_node(16, 1, 254) root.ensure_node(16, 1, 255) root.ensure_node(16, 1, 255, 1) root.ensure_node(16, 1, 255, 3) root.ensure_node(16, 1).setmeta(8, 'status', 'output') root.ensure_node(16, 1, 255, 9) root.ensure_node(16, 254).set_data(piw.makebool(False, 0)) root.ensure_node(16, 255) root.ensure_node(16, 255, 1) root.ensure_node(16, 255, 3) root.ensure_node(16).setmeta(8, 'midi', 'clock', 'enable') root.ensure_node(16, 255, 17) root.ensure_node(16, 255, 18) root.ensure_node(17) root.ensure_node(17, 254).set_data(piw.makefloat(0.0, 0)) root.ensure_node(17, 255) root.ensure_node(17, 255, 1) root.ensure_node(17, 255, 3) root.ensure_node(17).setmeta(8, 'midi', 'clock', 'latency') return True
def upgrade_2_0_to_3_0(self, tools, address): root = tools.root(address) root.ensure_node(2, 3, 254).set_data(piw.makefloat(0.0, 0)) return True
def upgrade_3_0_to_4_0(self, tools, address): root = tools.root(address) root.get_node(1, 1).set_data(piw.makefloat(1.0, 0)) return True
def set_float(self, value, ts=0): self.dbnode.set_data(piw.makefloat(value, ts))
def __doubletap_change(self,v): fc = piw.fastchange(self.__agent.view.set_doubletap()) fc(piw.makefloat(v,0)) return True
def __fraction_change(self,v): fc = piw.fastchange(self.__agent.model.set_stepdenominator()) fc(piw.makefloat(v,0)) return True
def __step_change(self,v): fc = piw.fastchange(self.__agent.model.set_stepnumerator()) fc(piw.makefloat(v,0)) return True
def __encode(self,str): r,c,e = self.__split(str) t = (c<<32)|r return piw.makefloat(e,t)
def __ochange(self, v): fc = piw.fastchange(self.bender.set_offset()) fc(piw.makefloat(v, 0)) return True
def maketuple_floats(items, ts): d = piw.tuplenull(ts) for v in items: d = piw.tupleadd(d, piw.makefloat(v, ts)) return d