示例#1
0
    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
示例#2
0
    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
示例#3
0
 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))
示例#4
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
示例#5
0
 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
示例#6
0
 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
示例#7
0
 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
示例#8
0
 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
示例#9
0
 def set_float(self, value, ts=0):
     self.dbnode.set_data(piw.makefloat(value, ts))
示例#10
0
 def __doubletap_change(self,v):
     fc = piw.fastchange(self.__agent.view.set_doubletap())
     fc(piw.makefloat(v,0))
     return True
示例#11
0
 def __fraction_change(self,v):
     fc = piw.fastchange(self.__agent.model.set_stepdenominator())
     fc(piw.makefloat(v,0))
     return True
示例#12
0
 def __step_change(self,v):
     fc = piw.fastchange(self.__agent.model.set_stepnumerator())
     fc(piw.makefloat(v,0))
     return True
示例#13
0
 def __encode(self,str):
     r,c,e = self.__split(str)
     t = (c<<32)|r
     return piw.makefloat(e,t)
示例#14
0
 def __ochange(self, v):
     fc = piw.fastchange(self.bender.set_offset())
     fc(piw.makefloat(v, 0))
     return True
示例#15
0
def maketuple_floats(items, ts):
    d = piw.tuplenull(ts)
    for v in items:
        d = piw.tupleadd(d, piw.makefloat(v, ts))
    return d