From 5c5883b8131c4c06151d2fe74e3cdda9860ebd33 Mon Sep 17 00:00:00 2001 From: jaxter184 Date: Fri, 23 Mar 2018 04:07:27 -0500 Subject: [PATCH 1/4] Organization and reverse conversion Now converts back to unreadable json! why do that, you ask? I don't have plaintext representations of certain filetypes like bwproject and bwclip, so in order to edit them, its a lot easier to convert them back to unreadable code. Also, the cleanup of the plaintext files took kinda a long time (like, a couple seconds), so this way is faster anyway. Also, changed the folder heirarchy a little. All the lookup tables are in a folder inside lib, and the inputs have their own folder (helpful for when you want to batch convert every single modulator and device at once) --- collate.py | 26 - convert.py | 21 - editor.py | 377 - main.py | 107 + src/__init__.py | 0 src/__init__.pyc | Bin 140 -> 0 bytes src/__pycache__/__init__.cpython-36.pyc | Bin 136 -> 0 bytes src/__pycache__/decoder.cpython-36.pyc | Bin 8193 -> 0 bytes src/__pycache__/tables.cpython-36.pyc | Bin 16507 -> 0 bytes src/decoder.py | 302 +- src/decoder.pyc | Bin 10252 -> 0 bytes src/encoder.py | 51 + src/extractor.py | 236 + src/lib/__pycache__/atoms.cpython-36.pyc | Bin 17958 -> 0 bytes src/lib/__pycache__/fs.cpython-36.pyc | Bin 990 -> 0 bytes src/lib/__pycache__/util.cpython-36.pyc | Bin 3103 -> 0 bytes src/lib/atoms.py | 181 +- .../__pycache__/backupFields.cpython-36.pyc | Bin 0 -> 156329 bytes .../__pycache__/backupObjects.cpython-36.pyc | Bin 0 -> 98027 bytes .../luts/__pycache__/tables.cpython-36.pyc | Bin 0 -> 21701 bytes .../luts/__pycache__/typeLists.cpython-36.pyc | Bin 0 -> 11248 bytes src/lib/luts/backupFields.py | 6104 +++++++++++++++++ src/lib/luts/backupObjects.py | 2908 ++++++++ src/{ => lib/luts}/tables.py | 628 +- src/lib/luts/typeLists.py | 615 ++ src/notes.txt | 16 + src/tables.pyc | Bin 20133 -> 0 bytes typeLists.py | 615 ++ 28 files changed, 11374 insertions(+), 813 deletions(-) delete mode 100644 collate.py delete mode 100644 convert.py delete mode 100644 editor.py create mode 100644 main.py delete mode 100644 src/__init__.py delete mode 100644 src/__init__.pyc delete mode 100644 src/__pycache__/__init__.cpython-36.pyc delete mode 100644 src/__pycache__/decoder.cpython-36.pyc delete mode 100644 src/__pycache__/tables.cpython-36.pyc delete mode 100644 src/decoder.pyc create mode 100644 src/encoder.py create mode 100644 src/extractor.py delete mode 100644 src/lib/__pycache__/atoms.cpython-36.pyc delete mode 100644 src/lib/__pycache__/fs.cpython-36.pyc delete mode 100644 src/lib/__pycache__/util.cpython-36.pyc create mode 100644 src/lib/luts/__pycache__/backupFields.cpython-36.pyc create mode 100644 src/lib/luts/__pycache__/backupObjects.cpython-36.pyc create mode 100644 src/lib/luts/__pycache__/tables.cpython-36.pyc create mode 100644 src/lib/luts/__pycache__/typeLists.cpython-36.pyc create mode 100644 src/lib/luts/backupFields.py create mode 100644 src/lib/luts/backupObjects.py rename src/{ => lib/luts}/tables.py (76%) create mode 100644 src/lib/luts/typeLists.py create mode 100644 src/notes.txt delete mode 100644 src/tables.pyc create mode 100644 typeLists.py diff --git a/collate.py b/collate.py deleted file mode 100644 index 26c21fc..0000000 --- a/collate.py +++ /dev/null @@ -1,26 +0,0 @@ -import os - -root_dir = '.\output' -output = {} - -for directory, subdirectories, files in os.walk(root_dir): - for file in files: - if directory == root_dir: - with open(directory + '\\' + file, 'r') as f: - print '-'+file - text = f.readlines() - for lines in text: - index = 0 - while lines[index] != ',': - index+=1 - if lines[-1:] != '\n': - lines += '\n' - output[int(lines[:index])] = lines[index + 1:] - - with open('collated.txt', 'w') as fileOutput: - textOutput = '' - for params in range(output, keys=int): - if params in output: - textOutput += str(params) + ':"' + output[params][:-1] + '",\n' - fileOutput.write(textOutput) - print "done" diff --git a/convert.py b/convert.py deleted file mode 100644 index 1221598..0000000 --- a/convert.py +++ /dev/null @@ -1,21 +0,0 @@ -import os -from src import decoder - -root_dir = '.\devices' -folder = {0:'.\devices', - 1:'.\devices\old devices'} - -decoder.mode = 3 -print ("Heyo I'm Jaxter, thanks for using my little script. Notice how I said 'my'. That's right, this is something that I made, and you should therefore be pretty careful about using it. I won't take responsibility for breaking your Bitwig devices, so make sure you have a copy of them saved somewhere before starting. Also, be cautious in general; just because I trust my own work doesn't mean you should.\nNow, with the fearmongering out of the way, lets get started.\n") -try: - inputDir = input("Enter the subdirectory that your devices are in. (If this script is in the same folder as them, just press enter)") -except SyntaxError: - inputDir = '' -inputDir = '.' + inputDir -if not os.path.exists('output'): - os.mkdir('output') -for file in os.listdir(inputDir): - if file.endswith(".bwdevice") or file.endswith(".bwproject") or file.endswith(".bwmodulator") or file.endswith(".bwpreset") or file.endswith(".bwclip") or file.endswith(".bwscene"): - print ('-'+file) - decoder.magic(file, inputDir) -input("All done. Let me know if you had any issues using this or have suggestions for improving it. [Press Enter to exit]") \ No newline at end of file diff --git a/editor.py b/editor.py deleted file mode 100644 index 3685da6..0000000 --- a/editor.py +++ /dev/null @@ -1,377 +0,0 @@ -from src import decoder -import os -from kivy.app import App -from kivy.uix.floatlayout import FloatLayout -from kivy.uix.gridlayout import GridLayout -from kivy.uix.label import Label -from kivy.uix.textinput import TextInput -from kivy.uix.button import Button -from kivy.uix.dropdown import DropDown -from kivy.uix.button import Button -from kivy.uix.scrollview import ScrollView -from kivy.core.window import Window -from kivy.uix.behaviors import DragBehavior -from kivy.uix.screenmanager import ScreenManager, Screen -from kivy.base import runTouchApp - -from kivy.graphics import * -height = 2000 -mult = 2 - -class DragButt(DragBehavior, Label): - pass - -def drawConn(canv,objLocs,objSize, fr,to, inport = 0,outport = 0): #fr is short for from - x1 = mult*objLocs[fr][0] + inport*10 + 10 - y1 = height-objLocs[fr][1] - if (objLocs[to][0] == -1 and objLocs[to][1] == -1): - x2 = x1 - y2 = y1 +10 - else: - x2 = mult*objLocs[to][0] + outport*10 + 10 - y2 = height-objLocs[to][1]-objSize[to][1] - diff = abs(y1-y2)/2 - with canv.canvas: - Color(1., 1., 1.) - Line(bezier=(x1,y1,x1,y1+diff,x2,y2-diff,x2,y2)) - -def addAtom(canv,objLocs,objSize, obj): - x = mult*obj.fields["settings(6194)"].fields["desktop_settings(612)"].fields["x(17)"] - y = height - obj.fields["settings(6194)"].fields["desktop_settings(612)"].fields["y(18)"] - flag = 0 - name = '' - if (len(objLocs) < obj.id): - for i in range(obj.id-len(objLocs) + 1): - objLocs.append((-1,-1)) - objSize.append((-1,-1)) - nameIn = obj.classname - #values - if nameIn == 'float_core.decimal_value_atom(289)': - name = obj.fields["name(374)"] - val = obj.fields["value_type(702)"].fields["default_value(891)"] - width = 15 + 6*len(name) - name += '\n' + str(val)[:6] - objSize[obj.id] = (width,40) - flag = 1 - elif nameIn == 'float_core.boolean_value_atom(87)': - name = obj.fields["name(374)"] - val = obj.fields["value_type(702)"].fields["default_value(6957)"] - width = 15 + 6*len(name) - name += '\n' + str(val) - objSize[obj.id] = (width,40) - flag = 1 - elif nameIn == 'float_core.indexed_value_atom(180)': - name = obj.fields["name(374)"] - width = 15 + 6*len(name) - vals = obj.fields["value_type(702)"].fields["items(393)"] - dropdown = DropDown() - i = 0 - for val in vals: - btn = Button(text=val.fields["name(651)"], font_size='12sp', size_hint_y=None, height=20) - btn.bind(on_release=lambda btn: dropdown.select(btn.text)) - dropdown.add_widget(btn) - i += 1 - objSize[obj.id] = (width,40) - mainbutton = Button(text=name + '\n' + vals[0].fields["name(651)"], font_size='12sp', pos=(x,y-40), size_hint=(None, None), size=objSize[obj.id]) - mainbutton.bind(on_release=dropdown.open) - dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', name + '\n' + x)) - canv.add_widget(mainbutton) - elif nameIn == 'float_core.integer_value_atom(394)': - name = obj.fields["name(374)"] - val = obj.fields["value_type(702)"].fields["default_value(6956)"] - width = 15 + 6*len(name) - name += '\n' + str(val) - objSize[obj.id] = (width,40) - flag = 1 - elif nameIn == 'float_common_atoms.constant_value_atom(314)': - name = str(obj.fields["constant_value(750)"])[:5] - width = 15 + 6*len(name) - objSize[obj.id] = (width,40) - flag = 1 - elif nameIn == 'float_common_atoms.constant_integer_value_atom(298)': - name = str(obj.fields["constant_value(720)"]) - width = 15 + 6*len(name) - objSize[obj.id] = (width,40) - flag = 1 - #atoms - elif nameIn == 'float_common_atoms.nitro_atom(1721)': - name = 'nitro' - val = obj.fields["code(6264)"][:19] - width = 15 + 6*len(val) - name += '\n' + str(val) - objSize[obj.id] = (width,40) - flag = 1 - elif nameIn == 'float_common_atoms.mix_atom(301)': - name = 'MIX' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.polyphonic_note_voice_atom(350)': - name = 'PolyNoteVoice' - objSize[obj.id] = (90,30) - flag = 1 - elif nameIn == 'float_common_atoms.note_delay_compensation_atom(1435)': - name = 'NoYo' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.delay_compensation_atom(1371)': - name = 'oYo' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_core.modulation_source_atom(766)': - name = obj.fields["name(3639)"] + '\no->' - width = 15 + 6*(len(name)-4) - objSize[obj.id] = (width,30) - flag = 1 - elif nameIn == 'float_core.value_led_atom(189)': - name = 'led' - objSize[obj.id] = (20,20) - flag = 1 - #other atoms - elif nameIn == 'float_common_atoms.decimal_event_filter_atom(400)': - name = 'decFilter' - val1 = obj.fields["comparison(842)"] - val2 = obj.fields["comparison_value(843)"] - width = 15 + 6*len(name) - name += '\n' + str(val1) + '\n' + str(val2) - objSize[obj.id] = (width,60) - flag = 1 - elif nameIn == 'float_common_atoms.multiplexer_atom(1188)': - name = 'MUX' - val = obj.fields["inputs(4763)"] - objSize[obj.id] = (10*val+20,30) - name += ' ' + str(val) - flag = 1 - elif nameIn == 'float_common_atoms.deinterleave_atom(368)': - name = 'L/R' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.indexed_lookup_table_atom(344)': - name = 'lookup' - vals = obj.fields["row_data(744)"] - length = obj.fields["row_count(743)"] - name += '\n' - for i in range(length): - name += str(vals[i].fields["cells(726)"][0].fields["value(739)"]) + '|' - width = 6*(len(name)-6) - objSize[obj.id] = (width,40) - flag = 1 - #math - elif nameIn == 'float_common_atoms.constant_add_atom(308)': - name = '+' - val = obj.fields["constant_value(750)"] - name += '\n' + str(val) - objSize[obj.id] = (40,40) - flag = 1 - elif nameIn == 'float_common_atoms.constant_multiply_atom(303)': - name = 'x' - val = obj.fields["constant_value(750)"] - name += '\n' + str(val)[:5] - objSize[obj.id] = (40,40) - flag = 1 - elif nameIn == 'float_common_atoms.add_atom(337)': - name = '+' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.multiply_atom(367)': - name = 'x' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.subtract_atom(343)': - name = '-' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.multiply_add_atom(304)': - name = 'x+' - objSize[obj.id] = (obj.fields["multiplier_pairs(724)"]*20+10,30) - flag = 1 - elif nameIn == 'float_common_atoms.sum_atom(305)': - name = '+++' - val = obj.fields["inputs(725)"] - name += str(val) - objSize[obj.id] = (val*10+10,40) - flag = 1 - #DSP - elif nameIn == 'float_common_atoms.svf_filter_atom(578)': - name = 'filter' - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_common_atoms.surge_classic_oscillator_atom(491)': - name = 'surge osc' - objSize[obj.id] = (100,30) - flag = 1 - #components - elif nameIn == 'float_core.proxy_in_port_component(154)': - name = 'IN' - #val = obj.fields["port(301)"].fields["decorated_name(499)"] - #name += '\n' + val - objSize[obj.id] = (30,30) - flag = 1 - elif nameIn == 'float_core.proxy_out_port_component(50)': - name = 'OUT' - #val = obj.fields["port(301)"].fields["decorated_name(499)"] - #name += '\n' + val - objSize[obj.id] = (30,30) - y-=300 - flag = 1 - elif nameIn == 'float_core.nested_device_chain_slot(587)': - name = 'nest' - val = obj.fields["name(835)"] - name += '\n' + val - objSize[obj.id] = (40,40) - flag = 1 - #everything else - else: - dot = 0 - paren = 0 - name = '' - num = '' - for i in range(len(nameIn)): - if nameIn[i] == '(': - paren = 1 - if dot and not paren: - if nameIn[i] == '_': - name += ' ' - else: - name += nameIn[i] - elif paren: - num += nameIn[i] - if nameIn[i] == '.': - dot = 1 - if not name: - name = num - width = 8*len(name) + 16 - objSize[obj.id] = (width,30) - flag = 1 - if flag: - #canv.add_widget(DragButt(text=name, pos = (x,y-objSize[obj.id][1]), font_size='12sp', size_hint=(None, None), size=objSize[obj.id], drag_rectangle=(x, y, objSize[obj.id][0], objSize[obj.id][1]), drag_timeout=10000000, drag_distance=0)) - canv.add_widget(Button(text=name, pos = (x,y-objSize[obj.id][1]), font_size='12sp', size_hint=(None, None), size=objSize[obj.id])) - objLocs[obj.id] = (x/mult,height-y) - -def setSlide(instance, manager, screenName): - manager.current = screenName - -def addKids(canv,objLocs,objSize, child): - try: - kids = child.fields["settings(6194)"].fields["inport_connections(614)"] - except AttributeError: - pass - #print(child) - except: - pass - #print(child.fields) - else: - item = 0 - while(item < len(kids)): - try: - kids[item].fields["source_component(248)"].fields["settings(6194)"].fields["desktop_settings(612)"].fields["x(17)"] - except AttributeError: #its a reference - pass - if kids[item].fields["source_component(248)"]: - drawConn(canv,objLocs,objSize, child.id, kids[item].fields["source_component(248)"].classNum, item, kids[item].fields["outport_index(249)"]) - except: - pass - #print(kids[item].fields) - else: - addAtom(canv,objLocs,objSize,kids[item].fields["source_component(248)"]) - drawConn(canv,objLocs,objSize, child.id, kids[item].fields["source_component(248)"].id, item, kids[item].fields["outport_index(249)"]) - addKids(canv,objLocs,objSize,kids[item].fields["source_component(248)"]) - item += 1 - -class Hello(GridLayout): - def __init__(self,**kwargs): - global sm, fileNames - self.rows = 2 - super(Hello,self).__init__(**kwargs) - sm = ScreenManager(size_hint = (1, 9)) - selector = GridLayout(rows=1, size_hint = (1,1)) - fileNames = {} - for file in os.listdir('.'): - opened = [] - if file.endswith(".bwdevice") or file.endswith(".bwproject") or file.endswith(".bwmodulator") or file.endswith(".bwpreset") or file.endswith(".bwclip") or file.endswith(".bwscene"): - print ('-'+file) - with open(file, 'rb') as readThis: - opened = decoder.objectify(readThis.read()) - subWidget = FloatLayout(size_hint=(None,None), size = (5000,height)) - objLocs = [] - objSize = [] - for eachField in ("child_components(173)","proxy_in_ports(177)","proxy_out_ports(178)"): - children = opened[1].fields[eachField] - item = 0 - while(item < len(children)): - try: - children[item].fields["settings(6194)"].fields["desktop_settings(612)"].fields["x(17)"] - except AttributeError: #its a reference - pass - #print(children[item]) - except: - pass - #print(children[item].fields) - else: - addAtom(subWidget,objLocs,objSize, children[item]) - addKids(subWidget,objLocs,objSize, children[item]) - item += 1 - screen = Screen(name=file) - root = ScrollView(size_hint=(1, 1)) - root.add_widget(subWidget) - screen.add_widget(root) - #screen.add_widget(subWidget) - sm.add_widget(screen) - but = Button(text=file[:-9], font_size='8sp', on_press=self.callback) - fileNames[but] = file - selector.add_widget(but) - #selector.add_widget(Button(text=file)) - sm.current = "Peak Limiter.bwdevice" - self.add_widget(selector) - self.add_widget(sm) - - def callback(instance, value): - print('My button <%s> state is <%s>' % (instance, value)) - global sm, fileNames - sm.current = fileNames[value] - - def newScene(self, event): - global sm, fileName - sm.current = fileName - -class app1(App): - def build(self): - return Hello() -if __name__=="__main__": - app1().run() - - ''''sm = ScreenManager(size_hint = (1, 9)) - selector = GridLayout(rows=1, size_hint = (1,1)) - overall = GridLayout(rows=2) - for file in os.listdir('.'): - opened = [] - if file.endswith(".bwdevice") or file.endswith(".bwproject") or file.endswith(".bwmodulator") or file.endswith(".bwpreset") or file.endswith(".bwclip") or file.endswith(".bwscene"): - print ('-'+file) - with open(file, 'rb') as readThis: - opened = decoder.objectify(readThis.read()) - subWidget = FloatLayout(size_hint_y=None, size = (2000,height)) - for eachField in ("child_components(173)","proxy_in_ports(177)","proxy_out_ports(178)"): - children = opened[1].fields[eachField] - item = 0 - while(item < len(children)): - try: - children[item].fields["settings(6194)"].fields["desktop_settings(612)"].fields["x(17)"] - except AttributeError: #its a reference - pass - #print(children[item]) - except: - pass - #print(children[item].fields) - else: - addAtom(subWidget, children[item]) - addKids(subWidget, children[item]) - item += 1 - screen = Screen(name=file) - root = ScrollView(size_hint=(1, 1)) - root.add_widget(subWidget) - screen.add_widget(root) - sm.add_widget(screen) - selector.add_widget(Button(text=file, on_press=newScene(name=file))) - sm.current = "Peak Limiter.bwdevice" - overall.add_widget(selector) - overall.add_widget(sm) - runTouchApp(overall)''' \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..c737f6c --- /dev/null +++ b/main.py @@ -0,0 +1,107 @@ +import os +from src import decoder, encoder, extractor +from src.lib import fs, util, atoms + +root_dir = '.\devices' +folder = {0:'.\devices', + 1:'.\devices\old devices'} + +classExtract = 0 #change this to 0 for regular operation and 1 for class extraction. most users won't need class extraction, as it is just a tool I use to make internal files + +def magic(name, directory): #decodes then reencodes a single file + global extractedClasses, extractedFields + device_data = fs.read_binary(directory + '\\' + name) + header = device_data[:40].decode("utf-8") #'BtWg00010001008d000016a00000000000000000' + if (header[11] == '2'): + if (classExtract): + classes,fields = extractor.bwExtract(device_data) + extractedClasses.append(classes) + extractedFields.append(fields) + else: + header = header[:11] + '1' + header[12:] + output = '' + gather = decoder.bwDecode(device_data) + for item in gather: #encodes all of the objects in the output list + output += util.json_encode(atoms.serialize(item)) + output = header + decoder.reformat(output) + with open('output\\converted ' + name, 'wb') as file: + file.write(output.encode("utf-8")) + gather2 = encoder.bwEncode(gather) + header = header[:11] + '2' + header[12:] + output2 = header.encode('utf-8') + gather2 + with open('output\\reconverted ' + name, 'wb') as file: + file.write(output2) + #elif (device_data[42] == '{'): + # print("this file is either already converted or isn't an unreadable file") + elif (header[11] == '1'): + print("this is already converted") + else: + print("i don't know what kind of file this is") + +def extractClasses(): + global extractedClasses, extractedFields + collatedClassDict = {} + collatedFieldDict = {} + #collatedClassListErrors = {} + for eachFile in extractedClasses: + for eachClass in eachFile: + if eachClass in collatedClassDict: + ###check to see if the class matches the existing class + #diffkeys = [k for k in collatedClassDict[eachClass] if collatedClassDict[eachClass][k] != eachFile[k]] + #if diffkeys: + if collatedClassDict[eachClass] != eachFile[eachClass]: + print("oopsie woopsie fucky wucky code is \'different classes in main\'") + print(collatedClassDict[eachClass]) + print(eachFile[eachClass]) + #collatedClassListErrors[eachClass] = (eachFile[eachClass]) + else: + #print(eachFile[eachClass]) + collatedClassDict[eachClass] = (eachFile[eachClass]) + for eachFile in extractedFields: + for eachField in eachFile: + if eachField in collatedFieldDict: + ###check to see if the class matches the existing class + #diffkeys = [k for k in collatedFieldDict[eachClass] if collatedFieldDict[eachClass][k] != eachFile[k]] + #if diffkeys: + if collatedFieldDict[eachField] != eachFile[eachField]: + if collatedFieldDict[eachField] == None: + collatedFieldDict[eachField] = eachFile[eachField] + elif eachFile[eachField] == None: + eachFile[eachField] = collatedFieldDict[eachField] + if collatedFieldDict[eachField] != eachFile[eachField]: + print("oopsie woopsie fucky wucky code is \'different fields in main\'") + print(collatedFieldDict[eachField]) + print(eachFile[eachField]) + #collatedClassListErrors[eachField] = (eachFile[eachField]) + else: + #print(eachFile[eachField]) + collatedFieldDict[eachField] = (eachFile[eachField]) + with open('typeLists.py', 'w') as file: + output = str(collatedClassDict).replace('], ', '],\n').replace('{', 'classList = {\n').replace('}', '\n}') + output2 = str(collatedFieldDict).replace(', ', ',\n').replace('{', 'fieldList = {\n').replace('}', '\n}') + file.write(output + '\n' + output2) + +print ("Heyo I'm Jaxter, thanks for using my little script. Notice how I said 'my'. That's right, this is something that I made, and you should therefore be pretty careful about using it. I won't take responsibility for breaking your Bitwig devices, so make sure you have a copy of them saved somewhere before starting. Also, be cautious in general; just because I trust my own work doesn't mean you should.\nNow, with the fearmongering out of the way, lets get started.\n") +try: + inputDir = input("Enter the subdirectory that your devices are in. (If they're in the 'inputs' folder, just press enter)") +except SyntaxError: + inputDir = '' +if not inputDir: + inputDir = 'input' +else: + inputDir = '.' + inputDir +if not os.path.exists('output'): + os.mkdir('output') +extractedClasses = [] +extractedFields = [] +#print(inputDir) +for file in os.listdir(inputDir): + if file.endswith((".bwdevice",".bwmodulator",".bwpreset",".bwclip",".bwscene",".bwremotecontrols")): + print ('-'+file) + if file != "Phase-4.bwdevice": continue #use this to isolate a file + magic(file, inputDir) + elif file.endswith(".bwproject"): + print ('*skipping '+file) +if classExtract: + extractClasses() +input("All done. Let me know if you had any issues using this or have suggestions for improving it. [Press Enter to exit]") \ No newline at end of file diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/__init__.pyc b/src/__init__.pyc deleted file mode 100644 index 2d79788c20e7946cfed22f34934ad845e6d6ae5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140 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 diff --git a/src/__pycache__/tables.cpython-36.pyc b/src/__pycache__/tables.cpython-36.pyc deleted file mode 100644 index 63fa3bad538561a34580d22a500b9232bcc0578c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16507 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 DWbU&a diff --git a/src/decoder.py b/src/decoder.py index 3731633..4428856 100644 --- a/src/decoder.py +++ b/src/decoder.py @@ -1,16 +1,8 @@ import struct from collections import OrderedDict -from src import tables -from src.lib import fs -from src.lib import util +from src.lib.luts import tables, backupObjects, backupFields from src.lib import atoms - -mode = 3 -##:func name, #description (allowed filetypes) -#0:coords, #collects the coordinates of modules in the desktop modular environment (plaintext) -#1:settings, #collects all field numbers used and their respective names (plaintext) -#2:classes, #collects all class numbers used and their respective names (plaintext) -#3:objectify #converts files from unreadable to plaintext .bwdevice and .bwmodulator files (unreadable) +import uuid types = {1:'int8', 2:'int16', @@ -30,9 +22,12 @@ 0x17:'float array', 0x19:'package ref array' } - -def parseField(text, stringType = 0): - global offset, output +stringMode = 0 +endFlag = 0 +def parseField(text): + global offset, output, stringMode, endFlag, currentSection + if endFlag: + return '' parseType = text[offset] offset += 1 '''if parseType in types: @@ -40,7 +35,7 @@ def parseField(text, stringType = 0): else: print (hex(parseType))''' field = '' #output string - if parseType == 0x01: #8 bit int + if parseType == 0x01: #8 bit int val = (text[offset]) if val & 0x80: val -= 0x100 @@ -72,7 +67,7 @@ def parseField(text, stringType = 0): offset += 8 return dbVal elif parseType == 0x08: #string - if stringType == 0: + if stringMode == 0: stringLength = intConv(text[offset:offset+4]) offset += 4 string = '' @@ -87,7 +82,7 @@ def parseField(text, stringType = 0): if sFormat: #utf-16 for i in range(stringLength): if (text[offset+i*2]): #if the first character is anything other than 0x00 - string += ('\\u' + hex(intConv(text[offset+i*2:offset+i*2+2]))) + string += chr(intConv(text[offset+i*2:offset+i*2+2])) else: if text[offset+i*2 + 1] == '\n': string += '\\n' @@ -101,8 +96,10 @@ def parseField(text, stringType = 0): string += chr(text[offset+i]) offset += stringLength*(sFormat + 1) return string - elif stringType == 1: + elif stringMode == 1: while (text[offset]) != 0x00: + if endFlag: + break field += chr(text[offset]) offset += 1 offset += 1 @@ -116,48 +113,58 @@ def parseField(text, stringType = 0): offset += 4 out = atoms.Reference(objNum) return out - elif parseType == 0x0d: #nested header + elif parseType == 0x0d: #structure #not done yet + object = atoms.Atom() headerLength = intConv(text[offset:offset+4]) offset += 4 - field += '"' - print(headerLength) - while(headerLength > 0): - field += chr(text[offset]) - offset+=1 - headerLength-=1 - field += '"' + if currentSection == 2: + offset += 57 + field = intConv(text[offset:offset+headerLength]) + offset += headerLength + elif headerLength<54: + print("short header at " + hex(offset)) + offset += 54 + stringMode = 1 + field = getClass(text) + stringMode = 0 + else: + field = intConv(text[offset:offset+headerLength]) + offset += headerLength return field elif parseType == 0x12: #object array tempList = [] while (intConv(text[offset:offset+4]) != 0x3): + if endFlag: + break tempList.append(getClass(text)) - #print (tempList) offset += 4 return tempList elif parseType == 0x14: #map string #field += 'type : "map",\n' + 'data :\n' + '{\n' object = atoms.Atom() + string = '' + mapping = atoms.Atom() parseType2 = (text[offset]) offset += 1 if parseType2 == 0x1: object.add_field("type", "map") - stringLength = intConv(text[offset:offset+4]) - offset += 4 - string = bigChr(text[offset:offset+stringLength]) - offset += stringLength - mapping = atoms.Atom() - object.add_field("type", "map") - mapping.add_field(string, getClass(text)) + stringLength = intConv(text[offset:offset+4]) + offset += 4 + string = bigChr(text[offset:offset+stringLength]) + offset += stringLength + mapping.add_field(string, getClass(text)) + offset+=1 + elif parseType2 == 0x0: + object.add_field("type", "map") + mapping.add_field('', None) + else: + object.add_field("type", "unknown") object.add_field("data", mapping) - offset+=1 return object - elif parseType == 0x15: #16 character hex value - for i in range(16): - if i in [4,6,8,10]: - field += '-' - field += "{0:0{1}x}".format((text[offset+i]),2) #includes leading zeros + elif parseType == 0x15: #UUID + value = str(uuid.UUID(bytes=text[offset:offset+16])) offset += 16 - return field + return value elif parseType == 0x16: #color flVals = [] flVals.append(struct.unpack('f', struct.pack('L', intConv(text[offset:offset + 4])))[0]) @@ -174,107 +181,89 @@ def parseField(text, stringType = 0): offset += 4 offset += arrayLength*4 return field - elif parseType == 0x19: #package reference array + elif parseType == 0x19: #string array arrayLength = intConv(text[offset:offset+4]) offset += 4 - field += '[' + arr = [] for i in range(arrayLength): - field += (chr(text[offset+i])) + ', ' - if arrayLength: - field = field[:-2] - field += ']' - offset += arrayLength + strLength = intConv(text[offset:offset+4]) + offset += 4 + arr.append(text[offset:offset+strLength].decode("utf-8")) + offset+=strLength + return arr + elif parseType == 0x1a: #fuck if i know #not done yet + #print("shit,1a ") + strLength = 0 + while (text[offset] == 0x00): + strLength = intConv(text[offset:offset+4]) + offset += 4 + if strLength == 0x90: + return '' + field = text[offset:offset+strLength].decode("utf-8") + offset += strLength return field + else: + endFlag = 1 print('unknown type at ' + hex(offset-1) + ', ' + str(parseType)) - return '' + return 'end here' def bigOrd(text): - output = 0 - for i in range(len(text)): - #print(len(text)-i - 1) - output += (256**(len(text)-i - 1))*(text[i]) - return output + output = 0 + for i in range(len(text)): + #print(len(text)-i - 1) + output += (256**(len(text)-i - 1))*(text[i]) + return output def bigChr(chain): - output = '' - for i in range(len(chain)): - #print(len(text)-i - 1) - output += chr(chain[i]) - return output + output = '' + for i in range(len(chain)): + #print(len(text)-i - 1) + output += chr(chain[i]) + return output def intConv(chain): - output = 0 - for i in range(len(chain)): - #print(len(chain)-i - 1) - output += (256**(len(chain)-i - 1))*chain[i] - return output - -def coords(text): - output = "" - lastStart = 0 - isX = 0 - findComma = 0 - for pick in range(14, len(text)): - if bigChr(text[pick - 10:pick]) == '\"x(17)\" : ': - lastStart = pick - isX = 1 - findComma = 1 - if bigChr(text[pick - 10:pick]) == '\"y(18)\" : ': - lastStart = pick - isX = 0 - findComma = 1 - if bigChr(text[pick - 14:pick]) == '\"name(374)\" : ': - lastStart = pick - isX = 0 - findComma = 1 - if bigChr(findComma and (text[pick]) == ','): - if isX: - output += '\n' - else: - output += ',' - findComma = 0 - output += bigChr(text[lastStart:pick]) - return output[1:] - -def settings(text): - output = "" - for pick in range(len(text)-5): - if bigChr(text[pick:pick + 5]) == ')\" : ': - preIndex = 0 - while bigChr(text[pick - preIndex]) != '(': - preIndex += 1 - number = bigChr(text[pick-preIndex + 1:pick]) - pIndexNum = preIndex - while chr(text[pick - preIndex]) != '\"': - preIndex += 1 - parameter = bigChr(text[pick-preIndex + 1:pick-pIndexNum]) - output += '\n' + number + ',' + parameter - return output[1:] - -def classes(text): - output = "" - for pick in range(len(text)): - if pick > 100: - if text[pick-9:pick] == 'class : \"': - preIndex = 0 - while text[pick + preIndex] != '(': - preIndex += 1 - parameter = text[pick:pick + preIndex] - '''if parameter[:11] == 'float_core.': - parameter = parameter[11:] - if parameter[:19] == 'float_common_atoms.': - parameter = parameter[19:]''' - pIndexNum = preIndex - while text[pick + preIndex] != ')': - preIndex += 1 - number = text[pick+pIndexNum + 1:pick+preIndex] - output += '\n' + number + ',' + parameter - #print(parameter) - return output[1:] + output = 0 + for i in range(len(chain)): + #print(len(chain)-i - 1) + output += (256**(len(chain)-i - 1))*chain[i] + return output +def getParams(text, object): + global offset, output, stringMode, unClassable, unFieldable, endFlag + fieldNum = intConv(text[offset:offset+4]) + offset += 4 + #print (fieldNum) + while (fieldNum): + if endFlag: + break + #print("field: " + hex(offset-4)) + fieldName = '' + value = 'placeholder' + if fieldNum > 10: + if fieldNum in tables.params: + fieldName = tables.params[fieldNum] + '(' + str(fieldNum) + ')' + if fieldNum in backupFields.bparams: + fieldName = backupFields.bparams[fieldNum] + '(' + str(fieldNum) + ')' + else: + fieldName = "missing_field" + '(' + str(fieldNum) + ')' + unFieldable += 1 + value = parseField(text) + else: + print("weird field detected at " + hex(offset)) + fieldName = text[offset:offset+fieldNum].decode() + offset += fieldNum + value = atoms.Atom(fieldName) + getParams(text, value) + object.add_field(fieldName, value) + fieldNum = intConv(text[offset:offset+4]) + offset += 4 + return + def getClass(text): - global offset, output, stringMode, unClassable, unFieldable + global offset, output, stringMode, unClassable, unFieldable, endFlag + if endFlag: + return '' #print("pos: " + hex(offset)) classNum = intConv(text[offset:offset+4]) offset += 4 @@ -286,25 +275,13 @@ def getClass(text): objName = '' if classNum in tables.objs: objName = tables.objs[classNum] + '(' + str(classNum) + ')' + elif classNum in backupObjects.bobjs: + objName = backupObjects.bobjs[classNum] + '(' + str(classNum) + ')' else: objName = "missing_class" + '(' + str(classNum) + ')' unClassable += 1 object = atoms.Atom(objName) - fieldNum = intConv(text[offset:offset+4]) - offset += 4 - #print (fieldNum) - while (fieldNum): - #print("field: " + hex(offset-4)) - fieldName = '' - if fieldNum in tables.params: - fieldName = tables.params[fieldNum] + '(' + str(fieldNum) + ')' - else: - fieldName = "missing_field" + '(' + str(fieldNum) + ')' - unFieldable += 1 - value = parseField(text) - object.add_field(fieldName, value) - fieldNum = intConv(text[offset:offset+4]) - offset += 4 + getParams(text, object) #print ("broke out of object") return object @@ -395,8 +372,10 @@ def reformat(input): #output = output.replace('data : ', 'data :') #optional return output -def objectify(text): - global offset, output, objList, unClassable, unFieldable, idCount +def bwDecode(text): + global offset, output, objList, unClassable, unFieldable, idCount, endFlag, currentSection + if endFlag: + return '' atoms.resetId() currentSection = 0 output = [] #the array of objects that will be output @@ -405,8 +384,10 @@ def objectify(text): unFieldable = 0 textLength = len(text) offset = 40 - while offset < textLength:#textLength: #should probably use a while loop instead so it doesnt have to iterate through ignored characters + while offset < textLength: #print('p') + if endFlag: + break if currentSection == 0: #getting the header info keyType = intConv(text[offset:offset+4]) offset += 4 @@ -429,6 +410,7 @@ def objectify(text): objList.append(atoms.Atom(name)) elif currentSection == 1: #intermediary section (whitespaces) if (text[offset]) == 0x0a: + #print(output[0]) currentSection = 2 offset+=1 else: @@ -441,32 +423,4 @@ def objectify(text): (unFieldable != 0)*(str(unFieldable) + " unknown fields") + " in this file") else: print("everything probably worked ok. to be honest, i'm not sure.") - return output - #return header + finalOutput - -algos = {0:coords, - 1:settings, - 2:classes, - 3:objectify -} -inputType = [0,0,0,1,1] - -def magic(name, directory): #applies an algorithm to a single file (which algorithm it is is based on the 'mode' variable) - device_data = fs.read_binary(directory + '\\' + name) - output = "" - if (device_data[42] == 0) and inputType[mode]: #not sure how to implement this yet - output = algos[mode](device_data) - finalOutput = '' - for item in output: #encodes all of the objects in the output list - finalOutput += util.json_encode(atoms.serialize(item)) - finalOutput = 'BtWg00010001008d000016a00000000000000000' + reformat(finalOutput) - elif (device_data[42] == '{') and not inputType[mode]: - print("this file is either already converted or isn't an unreadable file") - else: - print("i don't know what kind of file this is") - fs.write_binary(directory + '\output\\converted ' + name, finalOutput.encode("utf-8")) - -#these function calls are for test purposes -#magic('test.bwproject', '.\devices\old devices') -#magic('Amp.bwdevice', '.\devices\old devices') -#print('decoder imported') + return output \ No newline at end of file diff --git a/src/decoder.pyc b/src/decoder.pyc deleted file mode 100644 index dcea4368c9ffad075c821b0d5cd1c4c0544d9028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10252 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 diff --git a/src/encoder.py b/src/encoder.py new file mode 100644 index 0000000..3153124 --- /dev/null +++ b/src/encoder.py @@ -0,0 +1,51 @@ +import struct +from collections import OrderedDict +from src.lib import atoms + +endFlag = 0 + +def bigOrd(text): + output = 0 + for i in range(len(text)): + #print(len(text)-i - 1) + output += (256**(len(text)-i - 1))*(text[i]) + return output + +def bigChr(chain): + output = '' + for i in range(len(chain)): + #print(len(text)-i - 1) + output += chr(chain[i]) + return output + +def intConv(chain): + output = 0 + for i in range(len(chain)): + #print(len(chain)-i - 1) + output += (256**(len(chain)-i - 1))*chain[i] + return output + +def bwEncode(objList): + global output, endFlag, currentSection + if endFlag: + return '' + atoms.resetId() + currentSection = 0 + output = bytearray(b'') + for object in objList: + if endFlag: + break + if currentSection == 0: + #print (object) + if isinstance(object, atoms.Atom): + output += object.encode() + if currentSection == 1: + output.extend((' '*5000).encode('utf-8')) + output += bytearray.fromhex('0a') + if isinstance(object, atoms.Atom): + output += object.encode() + else: + print('something went wrong, but im gonna keep going. For reference, the oopsie woopsie fucky wucky code is \'section 1 in bwEncode\'') + currentSection+=1 + print("encode complete") + return output \ No newline at end of file diff --git a/src/extractor.py b/src/extractor.py new file mode 100644 index 0000000..e1eaa9b --- /dev/null +++ b/src/extractor.py @@ -0,0 +1,236 @@ +import struct +from collections import OrderedDict +from src.lib.luts import tables, backupObjects, backupFields +from src.lib import atoms +import uuid + +stringMode = 0 +endFlag = 0 +def parseField(): + global text, offset, output, stringMode, endFlag, currentSection + if endFlag: + return '' + parseType = text[offset] + offset += 1 + #print(hex(parseType)) + if parseType == 0x01: #8 bit int + offset += 1 + elif parseType == 0x02: #16 bit int + offset += 2 + return 1 + elif parseType == 0x03: #32 bit int + offset += 4 + return 1 + elif parseType == 0x05: #boolean + offset += 1 + elif parseType == 0x06: #float + offset += 4 + elif parseType == 0x07: #double + offset += 8 + elif parseType == 0x08: #string + if stringMode == 0: + stringLength = intConv(text[offset:offset+4]) + offset += 4 + sFormat = 0 #0:utf-8, 1:utf-16 + if (stringLength & 0x80000000): + stringLength &= 0x7fffffff + sFormat = 1 + if (stringLength > 100000): + offset += 4 + return 'too long' + offset += stringLength*(sFormat + 1) + elif stringMode == 1: + while (text[offset]) != 0x00: + if endFlag: + break + offset += 1 + offset += 1 + elif parseType == 0x09: #object + getClass() + elif parseType == 0x0a: #null + return None + elif parseType == 0x0b: #object reference + offset += 4 + return 9 + elif parseType == 0x0d: #structure #not done yet + headerLength = intConv(text[offset:offset+4]) + offset += 4 + if currentSection == 2: + offset += 57 + offset += headerLength + elif headerLength<54: + print("short header at " + hex(offset)) + offset += 54 + stringMode = 1 + getClass() + stringMode = 0 + else: + offset += headerLength + elif parseType == 0x12: #object array + while (intConv(text[offset:offset+4]) != 0x3): + if endFlag: + break + getClass() + offset += 4 + elif parseType == 0x14: #map string + parseType2 = (text[offset]) + offset += 1 + if parseType2 == 0x1: + stringLength = intConv(text[offset:offset+4]) + offset += 4 + offset += stringLength + getClass() + offset+=1 + elif parseType == 0x15: #UUID + offset += 16 + elif parseType == 0x16: #color + offset += 16 + elif parseType == 0x17: #float array + arrayLength = intConv(text[offset:offset+4]) + offset += 4 + offset += arrayLength*4 + elif parseType == 0x19: #string array + arrayLength = intConv(text[offset:offset+4]) + offset += 4 + for i in range(arrayLength): + strLength = intConv(text[offset:offset+4]) + offset += 4 + offset+=strLength + elif parseType == 0x1a: #fuck if i know #not done yet + #print("shit,1a ") + strLength = 0 + while (text[offset] == 0x00): + strLength = intConv(text[offset:offset+4]) + offset += 4 + if strLength == 0x90: + return '' + offset += strLength + else: + endFlag = 1 + print('unknown type at ' + hex(offset-1) + ', ' + str(parseType)) + return 'end here' + return parseType + +def bigOrd(text): + output = 0 + for i in range(len(text)): + #print(len(text)-i - 1) + output += (256**(len(text)-i - 1))*(text[i]) + return output + +def bigChr(chain): + output = '' + for i in range(len(chain)): + #print(len(text)-i - 1) + output += chr(chain[i]) + return output + +def intConv(chain): + output = 0 + for i in range(len(chain)): + #print(len(chain)-i - 1) + output += (256**(len(chain)-i - 1))*chain[i] + return output + +def addField(fieldName): + global text, fieldList + fieldType = parseField() + if fieldName not in fieldList: + fieldList[fieldName] = fieldType + elif fieldList[fieldName] == None: + fieldList[fieldName] = fieldType + else: + if fieldType and fieldList[fieldName] != fieldType: + print("somethings wrong. oopsie woopsie fucky wucky code is \'different fields\'") + #print(str(fieldList[fieldName]) + ', ' + str(fieldType)) + +def getParams(): + global text, offset, classList, fieldList, unClassable, unFieldable, endFlag + fieldNum = intConv(text[offset:offset+4]) + offset += 4 + output = [] + while (fieldNum): + if endFlag: + break + #print("field: " + hex(offset-4)) + fieldName = '' + value = 'placeholder' + if fieldNum > 10: + #print('f'+hex(fieldNum)) + addField(fieldNum) + else: + print("weird field detected at " + hex(offset)) + fieldName = text[offset:offset+fieldNum].decode() + offset += fieldNum + value = fieldName + classList[fieldName] = getParams() + output.append(fieldNum) + fieldNum = intConv(text[offset:offset+4]) + offset += 4 + return output + +def getClass(): + global text, offset, classList, unClassable, endFlag + if endFlag: + return + classNum = intConv(text[offset:offset+4]) + offset += 4 + if classNum == 0x1: #object references + offset += 4 + else: + #print(classNum) + classList[classNum] = getParams() + return + +def reformat(input): + output = input + i = 0 + length = len(output) + while (i < len(output)): + i+=1 + return output + +def bwExtract(textIn): + global text, offset, classList, fieldList, unClassable, unFieldable, endFlag, currentSection + text = textIn + endFlag = 0 + atoms.resetId() + currentSection = 0 + classList = {} + fieldList = {} + unClassable = 0 + unFieldable = 0 + textLength = len(text) + offset = 40 + list = OrderedDict() + while offset < textLength: + if endFlag: + break + if currentSection == 0: #getting the header info + keyType = intConv(text[offset:offset+4]) + offset += 4 + if keyType == 0x0: #end of array + metaList = list + currentSection = 1 + elif keyType == 0x1: #parameter + keyLength = intConv(text[offset:offset+4]) #length of the string + offset += 4 + key = bigChr(text[offset:offset+keyLength]) + offset += keyLength + addField(key) + elif keyType == 0x4: #object + stringLength = intConv(text[offset:offset+4]) + offset += 4 + name = bigChr(text[offset:offset+stringLength]) + offset += stringLength + elif currentSection == 1: #intermediary section (whitespaces) + if (text[offset]) == 0x0a: + currentSection = 2 + offset+=1 + else: + offset+=1 + elif currentSection == 2: + getClass() + if not endFlag: + print("everything probably worked ok. to be honest, i'm not sure.") + return (classList, fieldList) \ No newline at end of file diff --git a/src/lib/__pycache__/atoms.cpython-36.pyc b/src/lib/__pycache__/atoms.cpython-36.pyc deleted file mode 100644 index 17da73d49570ffa733ee01df0c546514c7085f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17958 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 ZZM?b#f1}kgv?|q!Y8iiH=pCt6{|_r}QEdPK diff --git a/src/lib/__pycache__/fs.cpython-36.pyc b/src/lib/__pycache__/fs.cpython-36.pyc deleted file mode 100644 index 1e638988d74c67f2fcda671c9d8dc38caa60fd2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmbtS!EO^V5S{UE((NXJA`TT2LL7S83mhtOKvjhZCy*jRg+Qy7s!i;QO}E)-Y?@Zu zp3*zNz?Hw?JACEDFO&;2ONbH_aj7jo+vDBwoA%|AZzNX(5zz1u+JDY zXe=QG-PKA5*O;OXb?X{ZrQ3Ro=Rik#o99r+y2Eoz;}ImipZqTjMx488l5?9!pND

pyGjk2;BW+(Q^^pd19$!jA9zz82= z7n|q^CBjXFSPJlnH;#+c*c68~j`5%3)PO{@M3Ln5v9Lcbi;1xulDjAt5YB&~E2|!Z zglxzFLP8?9AdxB>E;uyx{O5AdqB6%}G0Exj?iz_ZLSo}n*yEF>5<88}ti~J>KCsCv zW~+h6*%jKI(W! z?=5ADJ@z3?UkU_hi=t0O(bob+{+OUoi@vol`WMuP_BTtBj)jKA&Ft>Y?##{nc4mIC zx*G5N=dZ1F)p7pieC@|Eeiu*qA&77U%bb=YxNtvrT1S`-jW0%nVVN+)#(#5E0HL#+x8G?$D5Waf_qt;()%MTRLHmv@ zk909???1U+*pjS*||YN zl0jrdNyK5C#VlZI1>Q95p75s>+cd9_R;9Dg5cN z<{svsR7^1NX5~*g#{Q3-DYI__l0JVs)J%jk_8B9Iw;^%9zEwFDuYBQeIKSbW&NPJg zAvcXGukTh7xqx(i>{K3N5j7Q|%><=}GY-$#wKMjsQ(8J>(@A|dKkjC!*uJ-SznOTZ zCiBris;-u%c6Z#9L!B16^}PwY!=cPYQZt^GW8DgKS!$fvS}Ao`=?(#P+;V$*Y{Fu{ zFMGN)EVYqtMOf(2F5_Z!G4NLou(t!Wb~1S^GmDYSFtGeSh{L?|e}hH%djJGKA4TUQ zT94QzJQgZj*tLWTMUQ}FqqmLk#wBwyc++x*DB{v(eBe%9=2WcjRW8M{@57@WqU(?U zU3rM?Kii1wG@M5CuY!vADOLwnC@vp`N?;yN15vBO=Mj4$ABlLz)F0@r zSP>11TE9k#W5%uY&`QUU{s$!1j(GVc_&Uw?N(D=R7EgVJm|xj+#0s8Ec!znvKEoZ% z-&$z<9aG*yAC1p7UcIOhJ6EwMJm3~BKLl1-e~mN&G0)8rgB%m>Sj~yy;1^YuPF+mS_hf%_BGYO;EX*yV{aybdXZjz zo5)KSKuo$Z6=)icCFO(%U z^*kBzDv{TSSe0{Qpw|RSmZMC!$f#7b0x(=B!#Woru3~I{6Hoa)5XZu`4#0ZsDvvP> zSPUMsExyHG#JJAt>|3nC?7k(GDG4nT(Px+}piH?>^BLfnA}x*YRZicXIRNb~q$79g z5v-}6RqhNhM{=Sh^ucn~o4H6R?vC?#Tl2FPtF zIVg^0XJ2)DM^a1CdDJZ*$r1&S-+1f))s3@wCreA+D+a?`Rt4z`oXH#CaMF#Ptmpy9 zw=h`jOG3kyG;vy{Ibf3a0CJJ`wDD6d2c>b#(Y~T=WIWoF_-Ydqb(6>qT6T}*iSZHp zk-Qjs+V&ovlF|}|K1SFZYz?CZ@)v<1#>^hS^w~3^{u%ZyLTx#+7J|oTs4A68)$+8LK_zwo}W^*Qm+1LlwP!S%OKsd&Qe{{D%ElOq$7yU`{XZ!`j; z-GR7ig3(Y=MF{52f(b-=h};jaXw~u_JlMShhuDkqW1Obm1!)B~Y)Vnuz2FhEMn`uJ zR57qM;UkEYb&&bJm?v^|7xSe%Tuhez(mp1OCIldYD{O*v)k_*>*A`6l0Q1jA$@De> zGvUJp!JpkJ$4;-}BHRRqiSN)^v=W`KL^~GsNv){}Nt0I>C9+W4d68d7;y_b@TDJYu zR6j`%w}m`Td-C*k2-{L?(_Z45;1Lp$RK^=f-8E6Kz^+`Eio&UOK@uNcMmMGi8H&<_ zqU&Lifc-1;gFEnjS8d=09B)-!^yigfSCzOj)|}2<=2OU*lyMy-mO6_(s*H87K}qF( ztS((koxswyWCOLKa2DTyV=#8fEgMhgaHpN4`@r=Nnu@SJ;c@)*y9|rbZc)(%`vurV zgE!Evrf54R7mOZ4cHV-y>OO6cZ5L^evQ3Dh#%%5`%Ba>;7Af|d?4GabqV8DP)-u`| a6k?RgTLdKQmWW4g6ySLQ|Me(}8vg?;p0a5G diff --git a/src/lib/atoms.py b/src/lib/atoms.py index aea31a4..7195c1f 100644 --- a/src/lib/atoms.py +++ b/src/lib/atoms.py @@ -2,9 +2,17 @@ from collections import OrderedDict from src.lib import util +from src.lib.luts import typeLists +import uuid +import struct idCount = 0 ## Serializes all device atoms + +def hexPad(data, pad = 8): #probably not good style to include this in the class itself + value = hex(data)[2:] + return (pad-len(value))*'0'+value + def serialize(obj, state = None): if state == None: state = [] @@ -47,12 +55,28 @@ def __init__(self, classNum = 0): def serialize(self): return {'object_ref': self.classNum} + + def encode(self): + output = bytearray(b'') + output += bytearray.fromhex(hexPad(self.classNum,8)) + return output class Color: def __init__(self, rd, gr, bl, al): self.fields = {'type': "color", 'data': [rd, gr, bl, al]} if (al == 1.0): self.fields['data'] = self.fields['data'][:-1] + + def encode(self): + output = bytearray(b'') + count = 0 + for item in self.fields["data"]: + flVal = struct.unpack('= -128: + output += bytearray.fromhex('01') + if value < 0: + #print(hex(0xFF + value + 1)[2:]) + output += bytearray.fromhex(hex(0xFF + value + 1)[2:]) + else: + output += bytearray.fromhex(hexPad(value, 2)) + elif value <= 32767 and value >= -32768: + output += bytearray.fromhex('02') + if value < 0: + #print(value) + #print(hex((value + (1 << 4)) % (1 << 4))) + output += bytearray.fromhex(hex(0xFFFF + value + 1)[2:]) + else: + output += bytearray.fromhex(hexPad(value, 4)) + elif value <= 2147483647 and value >= -2147483648: + output += bytearray.fromhex('03') + if value < 0: + output += bytearray.fromhex(hex(0xFFFFFFFF + value + 1)[2:]) + else: + output += bytearray.fromhex(hexPad(value, 8)) + elif typeLists.fieldList[fieldNum] == 0x05: + output += bytearray.fromhex('05') + output += bytearray.fromhex('01' if value else '00') + elif typeLists.fieldList[fieldNum] == 0x06: + flVal = struct.unpack('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 literal 0 HcmV?d00001 diff --git a/src/lib/luts/__pycache__/backupObjects.cpython-36.pyc b/src/lib/luts/__pycache__/backupObjects.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3afae9b78d7d2280a3b9c0ac076a496fca1d874 GIT binary patch literal 98027 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 literal 0 HcmV?d00001 diff --git a/src/lib/luts/__pycache__/tables.cpython-36.pyc b/src/lib/luts/__pycache__/tables.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..19f6a42809ce2b203845eed6f0bb040aa0f03a3a GIT binary patch literal 21701 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 KmeN1>w*Le?xLaTV literal 0 HcmV?d00001 diff --git a/src/lib/luts/__pycache__/typeLists.cpython-36.pyc b/src/lib/luts/__pycache__/typeLists.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7f749ffd0fd6b4be289ebc250651a9b3a4a3d7ef GIT binary patch literal 11248 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 literal 0 HcmV?d00001 diff --git a/src/lib/luts/backupFields.py b/src/lib/luts/backupFields.py new file mode 100644 index 0000000..bbb8b98 --- /dev/null +++ b/src/lib/luts/backupFields.py @@ -0,0 +1,6104 @@ +bparams = { +14: 'managed_object_ID', +15: 'UUID', +16: 'user_name', +17: 'x', +18: 'y', +19: 'color', +20: 'available_file_locations', +21: 'attached_file_locations', +22: 'checksum', +23: 'file_length', +24: 'local_state', +25: 'local_path', +26: 'add_available_file_location', +27: 'users', +29: 'object_id', +30: 'index_to_remove', +31: 'value', +32: 'value', +33: 'value', +34: 'value', +35: 'object_data', +36: 'integral_part', +37: 'fractional_part', +38: 'duration', +39: 'value', +40: 'value', +41: 'value', +42: 'value', +45: 'value', +46: 'device_chain_scroll_position', +47: 'device_selection', +48: 'object_data', +49: 'values', +50: 'data', +51: 'overload', +52: 'left', +53: 'right', +54: 'value', +55: 'get_expression_timeline_with_name', +56: 'machine_name', +58: 'user_name', +59: 'absolute_path', +60: 'value', +61: 'get_name', +62: 'is_pitched', +63: 'get_audible_end_time_offset', +64: 'get_audible_start_time_offset', +65: 'atom', +66: 'get_track', +67: 'refers_to_same_atom', +68: 'name', +69: 'creator', +70: 'comment', +71: 'is_modified', +72: 'keywords', +73: 'location', +74: 'project_name', +75: 'local_engine_state', +76: 'master_engine_state', +77: 'display_settings', +78: 'file_references', +79: 'value', +80: 'value', +81: 'operation_id', +82: 'MIDI_OMNI_source', +83: 'relationship_id', +84: 'value', +85: 'client_id_bit_count', +86: 'value', +87: 'changes_to_apply', +88: 'master_arrangement', +89: 'locks_to_obtain', +90: 'transfer_request_id', +91: 'user_id_to_transfer_to', +92: 'control_script_note_sources', +93: 'object_id', +94: 'machine_specific_hardware_audio_sources', +95: 'machine_specific_hardware_audio_destinations', +96: 'document_share_settings', +97: 'engine_connected', +98: 'lock_id', +99: 'ask_engine_to_render_for_test', +100: 'engine_finished_test_rendering', +101: 'engine_finished_test_rendering_signal', +102: 'undo', +103: 'redo', +105: 'create_effect_track', +108: 'delete_selected_scenes', +109: 'fill_selected_matrix_slots', +127: 'adjust_loop_duration_of_selected_clips', +135: 'device_presets', +148: 'sample_rate', +149: 'duration', +150: 'num_channels', +151: 'is_wav_file', +152: 'local_playback_path', +153: 'device_UUID', +154: 'device_name', +155: 'device_creator', +156: 'device_category', +157: 'device_type', +158: 'creator', +159: 'comment', +161: 'preset_category', +162: 'keywords', +163: 'enabled', +164: 'contents', +165: 'sends', +166: 'sample_time', +167: 'chat_messages', +168: 'add_chat_message', +169: 'hold_milliseconds', +170: 'state', +173: 'child_components', +177: 'proxy_in_ports', +178: 'proxy_out_ports', +179: 'polyphony', +181: 'device_editor_display_settings', +182: 'shared_resources', +183: 'create_and_add_child_component', +185: 'move_selected_components_on_desktop', +187: 'connect_components', +188: 'connections_changed', +192: 'insert_automation_event_with_time_and_normalized_value', +193: 'get_value_type', +194: 'value', +203: 'insert_audio_clip_event_at_time', +206: 'contains_audio_notes', +207: 'contains_instrument_notes', +208: 'audio_bus_type', +210: 'value', +212: 'apply_loop_region', +216: 'value_type', +222: 'note', +223: 'loop_iteration', +224: 'get_local_time', +225: 'get_local_end_time', +226: 'get_duration', +227: 'value', +228: 'in_ports', +229: 'out_ports', +232: 'is_automatable', +235: 'get_formatted_string', +236: 'outermost_device', +237: 'path_from_outermost_device', +238: 'key', +239: 'note_on_velocity', +240: 'note_off_velocity', +242: 'arm', +245: 'get_clip', +246: 'get_loop_region', +247: 'sections_changed', +248: 'source_component', +249: 'outport_index', +250: 'label', +251: 'value', +252: 'enabled', +253: 'shuffle_rate', +254: 'shuffle_amount', +256: 'accent_rate', +257: 'accent_amount', +258: 'accent_phase', +265: 'title', +266: 'is_queued_for_retriggering', +267: 'width', +269: 'audio_bus_type', +271: 'value', +289: 'get_all_track_timelines', +290: 'get_all_clip_event_timelines', +292: 'min', +293: 'max', +294: 'domain', +295: 'engine_domain', +296: 'unit', +297: 'decimal_digit_count', +298: 'edit_style', +299: 'value_to_normalized_value', +300: 'normalized_value_to_value', +301: 'port', +302: 'value', +303: 'value', +310: 'value', +312: 'slot_selection', +314: 'is_expanded', +322: 'numerator', +323: 'denominator', +324: 'devices', +329: 'create_audio_to_audio_device', +330: 'create_note_to_audio_device', +331: 'create_note_to_note_device', +336: 'get_sample_time_at_beat_time', +345: 'min', +346: 'max', +347: 'title', +349: 'timeline', +350: 'matrix_slots', +351: 'active_matrix_clip', +352: 'queued_matrix_action', +353: 'is_arrangement_active', +354: 'is_stopped', +355: 'is_stop_queued', +356: 'device_chain', +357: 'mixer', +360: 'display_settings', +361: 'input_summation_point', +363: 'stop_matrix', +364: 'return_to_arrangement', +365: 'launched_on_engine', +366: 'stopped_on_engine', +367: 'return_to_arrangement_on_engine', +369: 'get_document', +372: 'channel_count', +374: 'name', +380: 'start', +381: 'duration', +382: 'authorized_users', +383: 'add_authorized_user', +384: 'unauthorize_user', +385: 'device_UUID', +386: 'device_name', +387: 'creator', +388: 'comment', +389: 'keywords', +390: 'category', +391: 'device_type', +392: 'has_been_modified', +393: 'items', +394: 'edit_style', +395: 'value_to_normalized_value', +396: 'normalized_value_to_value', +397: 'configure_from_text_description', +398: 'get_normalized_value', +399: 'set_normalized_value', +400: 'transport', +401: 'metronome', +402: 'warp_event_timeline', +404: 'device_name', +405: 'enabled', +406: 'device_contents', +407: 'preset_to_serialize', +409: 'preset_name', +410: 'preset_category', +411: 'preset_creator', +413: 'last_loaded_preset_path', +414: 'load_preset', +416: 'user_name', +417: 'message', +420: 'volume', +421: 'pan', +422: 'mute', +423: 'vu_meter', +424: 'solo', +426: 'value_type', +433: 'pitch_grid_settings', +442: 'pattern_editor_height', +443: 'parameter_editor_height', +444: 'automation_editor_height', +445: 'pattern_scroll_position', +446: 'note_pattern_grouping', +454: 'metronome_enabled', +455: 'level', +456: 'play_ticks', +457: 'value', +458: 'value_item', +462: 'insert_note_with_params', +463: 'user_name', +477: 'value', +486: 'apply_settings', +496: 'value_to_normalized_value', +497: 'normalized_value_to_value', +498: 'name', +499: 'decorated_name', +500: 'is_inport', +507: 'crossfade', +509: 'time_format', +510: 'playback_position', +511: 'get_parent_timeline', +512: 'local_time_to_parent_time', +513: 'parent_time_to_local_time', +520: 'is_object_snapping_enabled', +521: 'is_absolute_grid_snapping_enabled', +522: 'is_relative_grid_snapping_enabled', +524: 'child_presets', +525: 'sample_reference_handle', +527: 'get_warp_event_timeline', +529: 'tempo', +530: 'time_signature', +531: 'groove', +532: 'tonal_space', +533: 'current_timeline', +534: 'playback_position', +536: 'is_playing', +537: 'play', +538: 'stop', +539: 'toggle_playback', +543: 'events', +545: 'is_editing_events', +547: 'get_track_timeline', +548: 'events_have_duration', +549: 'events_are_selectable', +550: 'events_are_interpolated', +551: 'is_polyphonic', +552: 'find_event_at_time', +553: 'delete_event', +554: 'insert_event_at_time', +555: 'insert_event', +557: 'get_event_index_at_time', +558: 'get_first_event', +559: 'get_last_event', +561: 'slots', +563: 'scroll_position_x', +564: 'scroll_position_y', +565: 'component_selection', +566: 'title', +568: 'clip_timeline', +569: 'automation_timelines', +570: 'track', +576: 'clip', +579: 'launch', +580: 'create_clip', +593: 'root_pitch', +594: 'root_frequency', +595: 'current_tuning', +596: 'get_normalized_pitch_classes', +597: 'get_pitch_class_names', +598: 'get_pitch_name', +599: 'get_pitch_class', +600: 'normalize_pitch', +601: 'denormalize_pitch', +602: 'cursor', +603: 'selected_items', +604: 'add_item_to_selection', +605: 'remove_item_from_selection', +606: 'clear_selection', +607: 'channel_count', +608: 'oversampling', +612: 'desktop_settings', +614: 'inport_connections', +615: 'is_polyphonic', +616: 'is_double_precision', +617: 'trigger_toggle', +618: 'click', +619: 'value_type', +627: 'value', +628: 'insert_event_at_time_with_duration', +629: 'change_event_start_and_duration', +634: 'track_scroll_position', +635: 'matrix_scroll_position', +637: 'is_matrix_section_visible', +638: 'is_io_section_visible', +639: 'is_sends_section_visible', +640: 'color', +641: 'shuffle', +642: 'get_loop_region', +643: 'is_loop_enabled', +644: 'set_is_loop_enabled', +645: 'get_play_start_time', +646: 'name', +648: 'owned_content_timeline', +650: 'id', +651: 'name', +653: 'channel_routing', +655: 'value', +656: 'name', +659: 'scenes', +668: 'stop_all', +669: 'return_to_arrangement', +675: 'atom_reference', +676: 'height', +677: 'is_expanded', +679: 'get_track', +683: 'insert_arrangement_automation_event', +686: 'channel_routing', +687: 'time', +688: 'get_end_time', +689: 'set_end_time', +690: 'get_parent_timeline', +691: 'is_first_event', +692: 'is_last_event', +697: 'identifier', +698: 'pitch_to_frequency', +699: 'frequency_to_pitch', +701: 'preset_identifier', +702: 'value_type', +704: 'has_track_automation', +705: 'get_normalized_value', +712: 'value', +718: 'rms_level', +719: 'peak_level', +720: 'constant_value', +721: 'mix_mode', +724: 'multiplier_pairs', +725: 'inputs', +726: 'cells', +727: 'source_domain', +728: 'destination_domain', +729: 'range', +730: 'range_in_decibels', +731: 'value', +732: 'mode', +733: 'buffer', +734: 'display_input_min', +735: 'display_input_max', +736: 'display_output_min', +737: 'display_output_max', +738: 'max_delay_time', +739: 'value', +740: 'max_delay_time', +741: 'comparison', +742: 'column_count', +743: 'row_count', +744: 'row_data', +745: 'min_value', +746: 'max_value', +747: 'wrap_mode', +748: 'update_table_on_engine', +749: 'event_value', +750: 'constant_value', +751: 'max_delay_time', +752: 'name', +753: 'buffer_length', +754: 'mode', +755: 'filter_type', +756: 'text', +757: 'label_type', +758: 'label_align', +813: 'is_expanded', +814: 'selected_child_chain', +816: 'value', +817: 'display_settings', +818: 'edit_style', +819: 'value_prefix', +820: 'value_postfix', +821: 'label', +823: 'tooltip_text', +824: 'columns', +825: 'display_settings', +827: 'find_events', +828: 'value', +829: 'clear_automation_events_in_time_range', +830: 'split_event', +831: 'is_timeline_section_visible', +832: 'set_start_time_keep_end_time', +833: 'invert', +834: 'device_chain', +835: 'name', +836: 'preset_identifier', +837: 'wants_audio_input', +838: 'wants_note_input', +839: 'wants_audio_output', +840: 'wants_note_output', +841: 'device_chain_preset', +842: 'comparison', +843: 'comparison_value', +844: 'multiplier', +845: 'offset', +846: 'smoothing', +852: 'interpolation_mode', +853: 'zone_name', +854: 'low_key', +855: 'high_key', +856: 'low_velocity', +857: 'high_velocity', +858: 'time_range_in_seconds', +863: 'active_document_service_id', +864: 'cpu_load', +866: 'is_engine_connected', +867: 'is_engine_active', +885: 'has_ancestor_timeline', +891: 'default_value', +892: 'set_to_default', +895: 'device_type', +906: 'ask_engine_to_show_plugin_window', +907: 'ask_engine_to_hide_plugin_window', +909: 'device_type', +911: 'plugin_host_executable_32', +912: 'plugin_host_executable_64', +918: 'ask_engine_to_load_plugin_preset', +919: 'ask_engine_to_save_plugin_state', +920: 'plugin_vendor', +921: 'plugin_category', +922: 'project_dir_path', +923: 'vst_device_id', +929: 'plugin_device_state', +930: 'engine_saved_plugin_state', +931: 'engine_failed_to_save_plugin_state', +932: 'selected_child_chain_index', +946: 'restore_automation_control', +948: 'move_cursor_to', +949: 'gui_value', +950: 'ask_engine_to_restore_automation_control', +951: 'ping', +953: 'gui_value', +955: 'gui_value', +957: 'gui_value', +964: 'keytrack', +966: 'observe_input_events', +967: 'event_played_on_engine', +969: 'event_played', +989: 'device_creator', +991: 'category', +992: 'bits_per_sample', +993: 'sample_length', +994: 'vst_device_id', +995: 'device_category', +996: 'device_name', +997: 'device_type_id', +998: 'device_manufacturer', +999: 'is_64_bit', +1000: 'creator', +1001: 'comment', +1002: 'tags', +1003: 'name', +1004: 'location', +1006: 'size', +1007: 'last_modified', +1008: 'vst_version', +1010: 'artist', +1011: 'album', +1012: 'title', +1013: 'year', +1014: 'track', +1015: 'bitrate', +1016: 'channels', +1017: 'sample_rate', +1018: 'track_length', +1019: 'device_id_string', +1020: 'device_category', +1021: 'device_name', +1022: 'device_type_id', +1023: 'mpeg_version', +1024: 'mpeg_layer', +1025: 'encoder', +1038: 'contains_note_clips', +1039: 'contains_instrument_note_clips', +1040: 'contains_only_instrument_note_clips', +1041: 'contains_audio_note_clips', +1042: 'contains_only_audio_note_clips', +1058: 'get_min_allowed_time', +1059: 'get_max_allowed_time', +1060: 'normalized_value_changed', +1074: 'find_event_at_time_greater_than', +1075: 'find_event_at_time_greater_than_or_equal_to', +1076: 'find_event_at_time_smaller_than', +1077: 'find_event_at_time_smaller_than_or_equal_to', +1078: 'get_event_insertion_index', +1079: 'get_index', +1080: 'set_note_transpose', +1081: 'start_instrument_note', +1082: 'end_instrument_note', +1083: 'start_recording', +1084: 'stop_recording', +1085: 'start_recording_instrument_clip', +1086: 'stop_recording_instrument_clip', +1087: 'track_recorder', +1088: 'record', +1089: 'start_recording_audio_clip', +1090: 'stop_recording_audio_clip', +1091: 'start_audio_note', +1092: 'end_audio_note', +1094: 'toggle_record', +1106: 'is_recording_queued', +1107: 'record_clip', +1109: 'time_per_pixel', +1121: 'is_editing_automation_in_arranger', +1122: 'arranger_automation_editor_height', +1136: 'change_time_and_value_of_selected_arranger_automation_events', +1137: 'change_time_and_value_of_selected_matrix_automation_events', +1146: 'insert_automation_event', +1147: 'init_automation', +1148: 'clear_automation', +1158: 'set_value_from_automation_playback', +1159: 'set_value_from_automation_playback', +1160: 'set_value_from_automation_playback', +1163: 'set_value_from_automation_playback', +1165: 'save_device_contents', +1166: 'automation_event_timeline', +1171: 'insert_automation_event', +1179: 'name', +1180: 'note_timeline', +1181: 'absolute_automation_timelines', +1182: 'contains_audio_notes', +1183: 'contains_instrument_notes', +1184: 'is_queued', +1185: 'is_playing', +1186: 'follow_action', +1187: 'follow_action_delay', +1189: 'launch', +1190: 'get_automation_timeline_for_atom_reference', +1193: 'get_min_content_time', +1194: 'get_max_content_time', +1195: 'get_note_timeline', +1198: 'get_track', +1200: 'warp_mode', +1204: 'sample_reference', +1206: 'is_enabled', +1207: 'edit_mode', +1210: 'automation_lanes', +1212: 'display_settings', +1213: 'is_favorite', +1214: 'arrangement_track_automation_timeline', +1218: 'add_automation_lane', +1220: 'get_automation_lane_for_value_atom', +1228: 'atom_reference', +1229: 'machine_id', +1230: 'get_value_type', +1232: 'get_automation_lane', +1234: 'get_clip_timeline', +1235: 'restore_automation_control', +1236: 'show_plugin_window', +1237: 'load_plugin_preset', +1239: 'export_arranger_time', +1240: 'render_on_engine_for_test', +1241: 'is_manual_override', +1242: 'hide_plugin_window', +1244: 'contains_events', +1245: 'track_group', +1246: 'main_tracks', +1247: 'effect_tracks', +1248: 'master_track', +1249: 'tracks', +1250: 'launch_matrix', +1253: 'about_to_be_created_automation_lane', +1254: 'joker_automation_lane', +1255: 'show_automation', +1256: 'show_automation', +1257: 'add_automation_lane_for_selected_parameter', +1260: 'is_enabled', +1270: 'hide_joker_lane_in_permanent_lanes', +1277: 'joker_lane_height', +1281: 'insert_note', +1283: 'logged_in_users', +1285: 'user_name', +1286: 'machine_id', +1287: 'port', +1288: 'machine_ip', +1289: 'get_logged_in_user_with_machine_id', +1292: 'logged_in_user', +1293: 'file_path', +1294: 'machine_name', +1295: 'amount_downloaded', +1298: 'name', +1299: 'checksum', +1301: 'maximized_track_group', +1303: 'get_track', +1304: 'get_track_slots', +1305: 'free_run', +1310: 'clip', +1311: 'slot', +1313: 'erase_note_time_range', +1316: 'start_recording_launcher_clip_on_arrangement', +1317: 'stop_recording_launcher_clip_on_arrangement', +1326: 'navigate_inside', +1327: 'navigate_back_to_previous_track_group', +1328: 'navigate_into_track_group', +1330: 'get_scene_index', +1331: 'get_parent_track_group', +1355: 'get_track_group', +1356: 'color', +1361: 'has_active_engine', +1364: 'preset_keywords', +1367: 'computer_keyboard_source', +1370: 'insert_arrangement_automation_events', +1371: 'insert_clip_automation_events', +1373: 'show_mixer_as_subtrack', +1374: 'subtrack_sends_count', +1380: 'destination', +1381: 'send_amount', +1384: 'is_optional', +1394: 'source', +1395: 'destination', +1396: 'send_amount', +1403: 'is_time_selection_active', +1404: 'timeline_selection_mode', +1408: 'is_automation_shown', +1738: 'get_octave', +1739: 'are_effect_tracks_shown', +1748: 'is_bipolar', +1749: 'is_bipolar', +1750: 'bipolar', +1762: 'duplicate_time_range', +1763: 'start_playing_note', +1764: 'stop_playing_note', +1765: 'update_note_transpose', +1766: 'update_note_amplitude', +1767: 'update_note_pan', +1768: 'update_note_timbre', +1769: 'preview_note_player', +1770: 'do_start_playing_note', +1771: 'do_stop_playing_note', +1772: 'do_update_note_transpose', +1773: 'do_update_note_amplitude', +1774: 'do_update_note_pan', +1775: 'do_update_note_timbre', +1776: 'play_note', +1793: 'max_content_time', +1795: 'intensity', +1798: 'get_lane', +1799: 'is_pitched', +1800: 'create_occurrence', +1802: 'get_audible_end_time_offset', +1803: 'get_audible_start_time_offset', +1804: 'get_root_timeline', +1815: 'preview_note_player', +1816: 'wake_up', +1817: 'do_wake_up', +1818: 'wake_up', +1819: 'play_from_nearest_quantized_point', +1820: 'started_adjusting', +1821: 'finished_adjusting', +1847: 'arranger_editor_selection', +1861: 'should_use_track_color', +1862: 'change_color_of_tracks', +1863: 'high_quality', +1864: 'sample_reference', +1865: 'resource', +1866: 'preset_identifier', +1868: 'resource', +1869: 'sample_reference_handle', +1870: 'local_playback_path', +1871: 'keytrack', +1872: 'root_key', +1873: 'sample_start', +1874: 'sample_end', +1875: 'loop_start', +1876: 'loop_end', +1877: 'loop_crossfade_length', +1879: 'reverse', +1880: 'fine_tune', +1883: 'keytrack', +1884: 'root_key', +1885: 'fine_tune', +1886: 'sample_start', +1887: 'sample_end', +1888: 'loop_start', +1889: 'loop_end', +1890: 'loop_crossfade_length', +1891: 'playback_mode', +1892: 'reverse', +1893: 'resource', +1894: 'low_key', +1895: 'high_key', +1896: 'low_velocity', +1897: 'high_velocity', +1898: 'zones', +1899: 'convert_to_multisample', +1901: 'zones', +1902: 'resource', +1903: 'low_key', +1904: 'high_key', +1905: 'low_velocity', +1906: 'high_velocity', +1908: 'undo_operation_name', +1909: 'redo_operation_name', +1910: 'can_undo', +1911: 'can_redo', +1912: 'multisample_editor_display_settings', +1913: 'get_global_time', +1914: 'get_arranger_time', +1915: 'get_clip_relative_time', +1916: 'get_global_end_time', +1917: 'get_arranger_end_time', +1918: 'get_clip_relative_end_time', +1919: 'is_ghost', +1920: 'is_arrangement_event', +1925: 'get_automation_lane_for_atom_reference', +1926: 'is_freq_exponential_pitch', +1932: 'grid', +1935: 'start_amount', +1936: 'end_amount', +1938: 'humanize', +1941: 'quantize_settings', +1943: 'high_quality', +1944: 'end_quantization', +1945: 'show_execution_order', +1946: 'create_empty_multisample', +1952: 'creator', +1953: 'format_version', +1954: 'creation_date', +1955: 'copyright', +1956: 'engineer', +1957: 'software', +1958: 'comment', +1959: 'get_all_clips', +1966: 'get_all_clips', +1975: 'should_be_updated_by_engine', +1977: 'sleep_level_threshold', +1978: 'sleep_level_timeout', +1981: 'start_observing', +1982: 'stop_observing', +1988: 'pixel_step_size', +1989: 'create_default_control_atoms_for_selected_components', +1990: 'add_slave_interested_in_updates', +1991: 'remove_slave_interested_in_updates', +1993: 'insert_warp_marker_at_time', +1994: 'insert_warp_marker', +2001: 'is_playing_clip_automation', +2002: 'value_atom', +2003: 'is_legacy_preset_with_index_as_value', +2004: 'engine_level_min', +2005: 'engine_level_max', +2007: 'add_sample_with_playmode', +2008: 'content_lock', +2009: 'track_list_lock', +2011: 'device_chain_lock', +2012: 'min_db', +2013: 'max_db', +2015: 'delete_lock', +2016: 'delete_lock', +2017: 'automation_lane_lock', +2018: 'delete_lock', +2019: 'create_audio_to_note_device', +2020: 'get_note', +2021: 'get_clip', +2022: 'user_name', +2023: 'machine_id', +2024: 'preferences_bus_uuid', +2027: 'vu_meter', +2028: 'note_trigger_led', +2030: 'input_meter', +2031: 'output_meter', +2033: 'project_dir_is_temporary', +2034: 'stretch_note_start', +2035: 'stretch_note_end', +2036: 'find_events_at_time_greater_than', +2037: 'find_events_at_time_smaller_than', +2046: 'insert_main_tracks_from_files', +2047: 'insert_effect_tracks_from_files', +2048: 'patches', +2049: 'begin_attribute_change', +2050: 'end_attribute_change', +2051: 'begin_attribute_change', +2052: 'end_attribute_change', +2055: 'prerequisite_tracks', +2057: 'description', +2058: 'device_description', +2059: 'insert_preview_main_tracks', +2071: 'length_in_samples_at_44khz', +2072: 'length_in_samples_at_44khz', +2073: 'length_in_samples_at_44khz', +2074: 'get_normalized_value_at_time', +2075: 'scale_style', +2076: 'show_mixer_at_end_of_chain', +2077: 'has_mute', +2079: 'has_volume_and_pan', +2080: 'mixer', +2081: 'volume', +2082: 'pan', +2083: 'mute', +2085: 'mixer_preset', +2087: 'clear_events', +2092: 'delete_all_events', +2093: 'flatten_arranger_automation_for_clip', +2094: 'flatten_arranger_automation', +2095: 'get_flattened_arranger_automation_for_clip', +2096: 'get_flattened_arranger_automation', +2097: 'get_normalized_value_for_value_type', +2098: 'set_normalized_value_with_value_type', +2101: 'punch_in', +2102: 'punch_out', +2107: 'has_note_input', +2108: 'has_note_output', +2109: 'has_audio_input', +2110: 'has_audio_output', +2111: 'get_automation_loop_region', +2112: 'is_loop_enabled', +2113: 'is_automation_loop_enabled', +2114: 'set_is_automation_loop_enabled', +2115: 'set_is_loop_enabled', +2132: 'erase_note_time_range', +2137: 'is_arranger_event', +2139: 'start_recording_instrument_slot', +2140: 'stop_recording_instrument_slot', +2141: 'start_recording_audio_slot', +2142: 'stop_recording_audio_slot', +2143: 'update_launcher_clip_duration', +2152: 'update_end_time_of_launcher_clip_being_recorded_on_arrangement', +2153: 'clear_arrangement_range', +2157: 'get_launcher_clips', +2162: 'selected_automation_parameter', +2170: 'add_automation_lane', +2171: 'automation_timelines_lock', +2172: 'visible_automation_lanes', +2176: 'set_note_length', +2179: 'get_all_descendant_tracks', +2180: 'delete', +2183: 'extend_recording_clip', +2184: 'displayed_title', +2187: 'displayed_title', +2188: 'display_title', +2189: 'insert_arrangement_automation_events', +2190: 'insert_automation_events', +2192: 'split', +2195: 'pre_fader_source', +2196: 'post_fader_source', +2197: 'sources', +2198: 'track_source', +2199: 'track_destination', +2202: 'source', +2203: 'destination', +2204: 'audio_source_to_pull', +2205: 'internal_oversampling', +2207: 'nonlinearity', +2208: 'value_atom', +2209: 'is_launcher_active', +2214: 'insert_devices', +2215: 'insert_selected_devices', +2216: 'delete_all_clip_automation', +2220: 'has_solo', +2223: 'sampler_data', +2224: 'root_key', +2225: 'fine_tune', +2226: 'gain_db', +2227: 'low_key', +2228: 'high_key', +2229: 'low_velocity', +2230: 'high_velocity', +2231: 'loop_enabled', +2232: 'loop_start', +2233: 'loop_end', +2234: 'insert_device', +2235: 'insert_main_tracks', +2236: 'insert_main_track', +2237: 'loop_enabled', +2238: 'loop_start', +2239: 'loop_end', +2240: 'root_key', +2241: 'fine_tune', +2242: 'insert_player_track_with_devices', +2247: 'delete_devices', +2248: 'delete', +2249: 'delete_all_devices', +2254: 'insert_arrangement_automation_event', +2257: 'insert_clip_automation_event', +2260: 'insert_clip_automation_event', +2261: 'insert_clip_automation_events', +2262: 'delete_lock', +2265: 'delete_tracks', +2267: 'svg_data', +2268: 'nested_device_chains', +2269: 'nested_device_chain', +2270: 'must_have_device_chain', +2271: 'name', +2272: 'nested_device_chain_presets', +2273: 'nested_device_chain_preset', +2274: 'add_new_chain', +2275: 'chain_list_lock', +2276: 'play_note', +2277: 'play_note', +2278: 'drum_device_chain', +2279: 'drum_pads', +2284: 'show', +2285: 'toggle_shown', +2286: 'scroll_position', +2287: 'scroll_position', +2289: 'replace_with_drum_device_chains', +2290: 'play_note', +2291: 'pole_count', +2292: 'layer_with_drum_device_chains', +2294: 'insert_devices', +2295: 'insert_device', +2298: 'insert_chain_from_files', +2299: 'insert_chain_with_devices', +2300: 'insert_chain_with_device', +2301: 'insert_nested_device_chain', +2304: 'insert_chain_with_selected_devices', +2305: 'insert_selected_devices', +2306: 'replace_from_file', +2307: 'replace_with_devices', +2308: 'replace_with_device', +2309: 'add_device_intelligently', +2310: 'add_devices_intelligently', +2311: 'add_selected_devices_intelligently', +2312: 'add_device_from_file_intelligently', +2313: 'insert_drum_device_with_drum_device_chains', +2315: 'tooltip_text', +2316: 'delete', +2317: 'delete_lock', +2318: 'delete_all_automation', +2319: 'insert_nested_device_chains', +2320: 'num_phases', +2321: 'get_automation_timeline_for_atom', +2322: 'get_automation_timeline_for_atom_reference', +2323: 'get_automation_timeline_for_atom', +2324: 'delete_all_clip_automation', +2325: 'delete', +2326: 'delete_lock', +2328: 'ungroup', +2329: 'insert_layer_device_with_layers', +2331: 'layer_devices_from_files', +2334: 'layer_selected_devices', +2335: 'layer_devices_in_new_chain', +2336: 'layer_device', +2339: 'selection', +2340: 'display_settings', +2342: 'replace_with_drum_device_chain', +2343: 'track_type', +2344: 'is_for_drums', +2345: 'delete_nested_device_chains', +2346: 'delete_selected_nested_device_chains', +2357: 'duplicate_layers', +2358: 'create_empty_chain', +2360: 'title', +2361: 'control_surface_class_id', +2368: 'accent', +2374: 'layer_from_file', +2375: 'layer_with_devices', +2376: 'layer_with_device', +2377: 'move_to', +2378: 'launch_mode', +2379: 'launch_quantization', +2385: 'device_chain', +2386: 'move_cursor_to_end_of_chain', +2389: 'note_pitch_filter', +2390: 'skip_backward', +2391: 'skip_forward', +2394: 'insert_main_tracks_with_launcher_clips_in_clip_launcher', +2397: 'add_nested_device_chains_intelligently', +2398: 'layer_with_nested_device_chains', +2399: 'replace_with_nested_device_chains', +2400: 'insert_player_track_with_nested_device_chains', +2401: 'insert_clip_in_scene', +2402: 'insert_launcher_clips_in_clip_launcher', +2404: 'contents_lock', +2405: 'scenes_lock', +2406: 'preview_clip', +2409: 'document', +2414: 'insert_arranger_clips_in_clip_launcher', +2418: 'note_played_signal', +2419: 'note_observer', +2420: 'insert_effect_track_with_devices', +2427: 'insert_main_tracks_with_clip_files_on_arranger', +2429: 'beat_length', +2431: 'note_observer', +2432: 'insert_clips_from_files_on_arranger', +2434: 'suggest_note_input_devices', +2435: 'suggest_audio_input_devices', +2439: 'control_surface_states', +2441: 'cue_marker_timeline', +2443: 'name', +2444: 'start_marker', +2445: 'stop_marker', +2447: 'cue_marker_timeline', +2448: 'launch_marker', +2449: 'is_loop_enabled', +2450: 'loop_region', +2454: 'clear_time_range', +2457: 'preview_events', +2460: 'insert_launcher_clips_on_arranger', +2464: 'preview_insert_clip_with_time_and_duration', +2469: 'insert_arranger_clips_on_arranger', +2471: 'insert_main_tracks_with_launcher_clips_on_arranger', +2472: 'gain_db', +2475: 'must_be_hybrid_track', +2476: 'can_be_instrument_track', +2477: 'can_be_audio_track', +2478: 'clear_preview', +2479: 'local_playback_path', +2488: 'get_lane', +2491: 'preview_events', +2492: 'reference_event', +2501: 'move_warp_markers', +2502: 'preview_move_warp_markers', +2503: 'preview_stretch_note_start', +2504: 'preview_stretch_note_end', +2516: 'begin_adjust_velocity', +2517: 'adjust_velocity', +2526: 'insert_notes', +2527: 'preview_insert_notes', +2528: 'preview_slots', +2529: 'preview_insert_note_occurrences', +2532: 'insert_note_occurrences', +2533: 'preview_scenes', +2534: 'gain_db', +2535: 'begin_adjust_loop_duration_of_selected_clips', +2536: 'finish_adjust_loop_duration_of_selected_clips', +2537: 'cancel_adjust_loop_duration_of_selected_clips', +2538: 'wigsola_settings', +2543: 'step_ms', +2544: 'fade_ms', +2546: 'onset_lookahead_offset_ms', +2550: 'solo_subband', +2552: 'get_track', +2554: 'finish_adjust_velocity', +2555: 'cancel_adjust_velocity', +2564: 'get_merged_preview_markers', +2565: 'find_events_at_time_greater_than_or_equal_to', +2566: 'find_events_at_time_smaller_than_or_equal_to', +2569: 'preview_onsets', +2571: 'stretch_to_original_length', +2572: 'is_revealed', +2573: 'get_track_group', +2574: 'get_track_or_track_group', +2575: 'is_revealed', +2576: 'get_selected_clips', +2577: 'get_selected_slots', +2578: 'get_slot_or_scene_at', +2579: 'get_revealed_track_or_track_groups', +2580: 'get_track_or_track_group', +2582: 'insert_empty_scene', +2583: 'reorder_scenes', +2584: 'clear', +2585: 'clear_slots', +2586: 'delete_scenes', +2610: 'delete', +2611: 'duplicate', +2612: 'cut', +2613: 'copy', +2614: 'paste', +2615: 'delete', +2616: 'duplicate', +2617: 'cut', +2618: 'copy', +2619: 'paste', +2621: 'clips', +2641: 'track_id', +2685: 'insert_main_tracks_with_arranger_clips_on_arranger', +2687: 'insert_main_tracks_with_arranger_clips_in_clip_launcher', +2689: 'insert_notes_from_file', +2695: 'copy_scenes', +2703: 'is_referenced_by_preview_event', +2704: 'original_event', +2705: 'is_preview_event', +2706: 'insert_sample_from_file', +2709: 'insert_preview_time', +2713: 'preview_insert_note_with_params', +2716: 'duration_in_seconds', +2721: 'record_on_scene_launch', +2723: 'preview_insert_devices', +2725: 'preview_layer_with_devices', +2726: 'monitor', +2727: 'auto_monitor', +2729: 'preview_replace_or_layer_with_devices', +2730: 'replace_or_layer_with_devices', +2731: 'owned_main_tracks', +2733: 'find_events_between', +2734: 'get_sub_timelines', +2735: 'insert_samples_from_files', +2736: 'preview_zones', +2737: 'preview_insert_samples_from_files', +2738: 'constant_value', +2739: 'send_amount', +2740: 'send_output', +2741: 'matrix_timeline_splitter_position', +2742: 'return_track_summation_point', +2745: 'cue_audio_destination', +2747: 'per_user_engine_settings', +2748: 'user_name', +2749: 'preview_track_group', +2750: 'user_id', +2751: 'user_preview_destinations', +2753: 'preview_in_tempo', +2754: 'auto_preview_on_selection', +2755: 'file_preview_players', +2756: 'file_location_to_preview', +2757: 'file_location_ready_to_be_previewed', +2760: 'pre_fader_result', +2761: 'is_active', +2762: 'is_playing', +2763: 'loaded_slot_or_scene', +2764: 'should_prefade_by_default', +2765: 'send_mode', +2766: 'main_track_structures', +2767: 'effect_track_structures', +2768: 'master_track_structure', +2769: 'title', +2770: 'track_group_structure', +2771: 'document_file_path', +2772: 'has_automation', +2773: 'output', +2775: 'modulated_value', +2779: 'preview_insert_automation_event_with_time_and_normalized_value', +2782: 'preview_insert_arrangement_automation_events', +2784: 'preview_insert_clip_automation_events', +2785: 'display_title', +2786: 'insert_sampler_resource_from_file', +2788: 'add_devices_to_pads_from_files', +2789: 'add_devices_to_pads', +2790: 'is_dropping_onto', +2791: 'layer_devices_in_new_chains', +2792: 'assigned_controllers', +2793: 'assign_controller', +2794: 'unassign_controller', +2795: 'assignment_id', +2796: 'index_in_group', +2797: 'assigned_controllers_changed', +2798: 'find_events_at_time', +2802: 'key', +2804: 'label', +2818: 'name', +2819: 'device_mappings', +2821: 'name', +2822: 'pages', +2824: 'index_in_group', +2827: 'create_page', +2828: 'index', +2829: 'delete_page', +2839: 'playback_start_time', +2840: 'save_file', +2841: 'path_to_atom', +2852: 'can_preview', +2854: 'preview_transport', +2858: 'use_document_transport', +2859: 'preview_audio_destination', +2861: 'has_source', +2865: 'joker_lane_is_in_visible_lanes', +2866: 'is_joker_lane_pinned', +2869: 'insert_note_time_range', +2870: 'preview_insert_note_time_range', +2873: 'io_read_load', +2874: 'io_cache_size', +2875: 'cpu_overload', +2876: 'io_read_underrun', +2877: 'mixer_device_chain_containers', +2879: 'is_expanded_in_mixer', +2882: 'has_mixer_device_chain_containers', +2883: 'get_nesting_level', +2887: 'channel_selection', +2888: 'get_channels_revealed_in_mixer', +2895: 'preview_drop_onto_pad', +2896: 'reorder_drum_chains', +2899: 'group_layers', +2900: 'group_tracks', +2901: 'preview_insert_player_track_with_nested_device_chains', +2902: 'selected_items_description', +2903: 'group', +2904: 'ungroup', +2907: 'track_group', +2909: 'item', +2910: 'cursor_position', +2911: 'device_chain', +2913: 'move_cursor_to_position', +2914: 'start_of_device_chain_cursor_position', +2916: 'start_of_main_tracks_cursor_position', +2919: 'ask_engine_to_hide_plugin_windows', +2921: 'ask_engine_to_show_plugin_windows', +2934: 'end_of_layers_cursor_position', +2935: 'device_contents_or_nested_contents_changed', +2936: 'report_application_has_become_active', +2937: 'application_has_become_active', +2938: 'report_application_will_become_inactive', +2939: 'application_will_become_inactive', +2943: 'plugin_name', +2945: 'begin_define_parameters', +2947: 'set_parameter_display', +2949: 'set_parameter_value', +2950: 'parameters', +2951: 'plugin_value', +2952: 'gui_value', +2953: 'modulated_value', +2954: 'display', +2955: 'unit', +2956: 'keywords', +2958: 'keywords', +2959: 'begin_parameter_edit', +2960: 'end_parameter_edit', +2961: 'send_groups', +2962: 'begin_track_automation_write', +2963: 'end_track_automation_write', +2964: 'write_track_automation_point', +2965: 'create_main_track', +2970: 'plugin_has_editor', +2971: 'can_be_automated', +2972: 'parameter_display_order', +2973: 'parameter_category', +2974: 'define_parameter', +2975: 'set_value_from_automation_playback', +2977: 'default_value', +2978: 'effect_channel_owner', +2980: 'thin_automation_events', +2982: 'curvature', +2983: 'preview_insert_player_track_with_devices', +2985: 'parameter_search_string', +2986: 'show_only_automated_parameters', +2987: 'parameter_list_column_count', +2988: 'additive_automation_timelines', +2989: 'multiplicative_automation_timelines', +2990: 'selected_clip_automation_type', +2991: 'automation_write_mode', +2992: 'get_automation_timelines_for_atom_reference', +2995: 'write_arranger_automation', +2997: 'notify_engine_started_adjusting', +2998: 'notify_engine_finished_adjusting', +2999: 'reorder_main_tracks', +3000: 'thin_automation_events_with_epsilon', +3001: 'reorder_effect_tracks', +3002: 'owned_effect_tracks', +3003: 'get_flattened_automation_events', +3005: 'selected_clip_automation_type', +3011: 'original_event', +3012: 'is_preview_event', +3014: 'value_origin', +3018: 'set_plugin_latency', +3020: 'total_processing_delay', +3021: 'has_stop_button', +3024: 'channel_to_send_to', +3025: 'has_sends', +3026: 'sends', +3031: 'needs_to_recalculate_parameter_display_filter', +3033: 'transport', +3034: 'transport', +3035: 'launch_quantization', +3036: 'should_follow_arranger_playhead', +3037: 'should_show_cursor_chain_contents', +3038: 'preview_insert_drum_chains', +3039: 'insert_drum_chains', +3041: 'use_loop_start_as_quantization_reference', +3043: 'plugin_state_file', +3044: 'effective_plugin_state_file', +3045: 'plugin_state_file', +3047: 'rows', +3048: 'columns', +3049: 'pad_width', +3050: 'pad_height', +3051: 'set_normalized_from_controller', +3052: 'increment_normalized_from_controller', +3059: 'transpose_clip', +3060: 'num_bands', +3064: 'midi_value_type', +3065: 'type_parameter', +3068: 'controllers', +3069: 'midi_parameter_container', +3070: 'convert_pitch_bend_to_pitch_expressions', +3071: 'preview_note_player', +3072: 'write_launcher_clip_automation_point', +3073: 'pitch_bend', +3074: 'channel_pressure', +3075: 'write_launcher_clip_automation_from_midi', +3076: 'content_start_time', +3077: 'sample_stop_time', +3078: 'edit_tempo', +3089: 'get_audio_expression_grid_settings', +3098: 'transpose_grid_settings', +3101: 'scroll_position', +3102: 'dips_per_value', +3106: 'name', +3107: 'index', +3108: 'programs', +3109: 'selected_program', +3110: 'begin_define_programs', +3111: 'set_program_name', +3112: 'set_current_program_from_engine', +3114: 'selected_program_index', +3115: 'has_selectable_programs', +3122: 'timbre_expression_timeline', +3123: 'transpose_expression_timeline', +3124: 'volume_expression_timeline', +3125: 'pan_expression_timeline', +3128: 'get_expression_timelines', +3129: 'get_expression_name', +3131: 'is_saving_plugin_state', +3132: 'save_plugin_states', +3133: 'preview_index', +3136: 'plugin_states_saved', +3137: 'reload_plugin', +3138: 'ask_engine_to_load_plugin', +3139: 'reload_all_plugins', +3140: 'preview_insert_devices', +3144: 'tempo', +3146: 'error_message', +3152: 'quantization_step_count', +3154: 'second_input_is_scalar', +3155: 'referenced_plugin_devices', +3156: 'vst_device_id', +3157: 'device_name', +3158: 'vendor', +3159: 'plugin_devices', +3160: 'device_version', +3161: 'min_content_time', +3162: 'previous_device_locations', +3163: 'file_locations', +3164: 'previous_device_locations', +3165: 'device_version', +3166: 'device_version', +3167: 'local_plugin_location', +3168: 'is_local_plugin_64_bit', +3170: 'is_missing', +3172: 'version_used_in_document', +3173: 'use_installed_version', +3174: 'latest_version_installed', +3175: 'version_conflicts', +3177: 'ignore_all_version_conflicts', +3178: 'ignore_version_conflict', +3213: 'num_plugin_version_conflicts', +3214: 'num_missing_plugins', +3215: 'preview_stretch_time_range', +3216: 'stretch_time_range', +3217: 'preview_loop_region', +3218: 'preview_update_loop_time_and_duration', +3219: 'update_loop_time_and_duration', +3220: 'has_version_conflicts', +3284: 'packaged_file_id_path', +3300: 'vst_device_id', +3305: 'clip', +3306: 'preview_events', +3309: 'get_display_track_automation_events', +3310: 'get_display_clip_automation_events', +3311: 'automation_type', +3312: 'preview_insert_arrangement_automation_events', +3314: 'get_clip_automation_preview_regions_for_clip', +3322: 'erase_preview_min_time', +3323: 'erase_preview_max_time', +3326: 'packaged_device_file_id', +3336: 'note', +3337: 'expression', +3338: 'get_displayed_events', +3355: 'output_alignment_compensation_delay', +3358: 'device_contents_delay', +3359: 'output_alignment_compensation_delay', +3360: 'get_selected_arranger_value_type', +3361: 'get_selected_clip_value_type', +3363: 'get_clip_display_type', +3368: 'plugin_processing_delay', +3370: 'automation_playback_time_alignment_delay', +3371: 'absolute_delay_relative_to_input', +3373: 'overdub_when_recording', +3374: 'start_launcher_clip_overdubbing', +3375: 'stop_launcher_clip_overdubbing', +3376: 'preview_clear_time_range', +3386: 'path_in_project', +3387: 'initial_file_location', +3388: 'media_manager', +3389: 'preview_media_manager', +3392: 'write_clip_launcher_automation', +3394: 'is_being_recorded', +3402: 'vst_device_id', +3403: 'plugin_name', +3404: 'x', +3405: 'y', +3406: 'width', +3407: 'height', +3408: 'is_full_screen', +3409: 'name', +3410: 'location', +3411: 'configured_audio_input_devices', +3412: 'configured_audio_output_devices', +3413: 'selected_audio_input_device', +3414: 'selected_audio_output_device', +3417: 'name', +3418: 'bus_type', +3419: 'channel_mapping', +3426: 'bookmarks', +3427: 'sample_rate', +3428: 'auto_arm_selected_instrument_tracks', +3429: 'start_transport_on_record', +3430: 'default_audio_playback_mode', +3431: 'name', +3434: 'name', +3435: 'vendor', +3436: 'control_surface_driver_id', +3438: 'midi_in_ports', +3439: 'midi_out_ports', +3440: 'selected_midi_in_ports', +3441: 'selected_midi_out_ports', +3442: 'label', +3443: 'library_location_path', +3444: 'should_update_automatically', +3452: 'is_activation_dialog_disabled', +3453: 'is_edition_chooser_enabled', +3454: 'single_monitor_profile_name', +3455: 'profile', +3456: 'locale', +3457: 'library_preferences', +3458: 'activation_preferences', +3460: 'widget_debugger_state', +3461: 'editing_preferences', +3462: 'audio_preferences', +3463: 'midi_preferences', +3464: 'file_browser_preferences', +3465: 'plugin_management_preferences', +3466: 'collaboration_preferences', +3467: 'float_window_states', +3468: 'recently_used_documents', +3469: 'last_export_directory', +3470: 'friends', +3471: 'input_count', +3472: 'output_count', +3478: 'document_path', +3479: 'control_surfaces', +3480: 'available_midi_input_devices', +3481: 'available_midi_output_devices', +3486: 'configured_audio_host_apis', +3487: 'selected_audio_host_api', +3495: 'add_audio_input_bus', +3497: 'delete_audio_input_bus', +3501: 'url', +3502: 'profile_name', +3503: 'window_states', +3504: 'plugin_management_mode', +3505: 'plugins_to_run_in_separate_process', +3506: 'user_name', +3507: 'full_name', +3508: 'color', +3509: 'is_online', +3510: 'configured_audio_devices', +3511: 'selected_audio_device', +3513: 'name', +3517: 'label', +3518: 'midi_port', +3547: 'track_automation_follows_clip_editing', +3548: 'automation_lane', +3551: 'clip', +3552: 'automation_type', +3570: 'get_interpolation_amount', +3571: 'sample_waveform_updated', +3573: 'sample_waveform_updated', +3576: 'is_automation_follow_enabled', +3577: 'is_being_recorded', +3580: 'is_locked', +3581: 'is_joker_lane_locked', +3582: 'preview_insert_clip_automation_event', +3583: 'erase_arranger_clip_automation_time_range', +3584: 'preview_erase_arranger_clip_automation_time_range', +3591: 'start_recording_audio_file', +3592: 'finished_writing_audio_file', +3593: 'insert_audio_warp_marker', +3594: 'drag_and_drop_media_manager', +3595: 'shared_memory_id', +3597: 'overdub_playing_launcher_clips', +3598: 'is_matrix_being_recorded', +3599: 'slot_record_on_engine', +3601: 'playback_state', +3602: 'engine_shared_memory_helper', +3603: 'engine_shared_memory_helper', +3604: 'engine_shared_memory_helper', +3605: 'engine_shared_memory_helper', +3608: 'is_double_row_track_height', +3611: 'amount', +3615: 'modulation_mappings', +3616: 'mappings', +3618: 'are_remote_controls_visible', +3619: 'currently_mapping_modulation_source', +3621: 'dummy_empty_track', +3628: 'about_to_remove_from_document', +3629: 'split_notes', +3630: 'set_modulation_mapping', +3631: 'clear_modulation_mapping', +3632: 'clear_modulation_mappings', +3634: 'amount', +3635: 'source', +3636: 'clip_timeline_edited', +3637: 'are_master_track_slots_shown_in_mixer', +3638: 'is_polyphonic', +3639: 'name', +3640: 'preset_identifier', +3643: 'insert_automation_from_clip_launcher_automation_lane', +3644: 'insert_automation_from_clip_on_arranger', +3645: 'destination_path', +3648: 'preview_insert_automation_from_clip_on_arranger', +3651: 'is_polyphonic', +3653: 'from_time', +3654: 'to_time', +3666: 'color', +3667: 'parameter_type', +3669: 'index', +3671: 'queue_play_from_position', +3674: 'queued_arranger_launch_marker', +3676: 'clip_level', +3678: 'are_arranger_cue_markers_visible', +3682: 'resonance_mode', +3683: 'queued_arranger_launch_position', +3684: 'engine_jumped_to_queued_position', +3685: 'min_start_time', +3686: 'max_end_time', +3687: 'insert_and_move_warp_markers', +3688: 'preview_insert_and_move_warp_markers', +3689: 'is_editing_allowed', +3690: 'is_interpolated', +3691: 'slide_events', +3692: 'set_time_range', +3693: 'set_event_time_range', +3696: 'time_selection', +3697: 'adjust_event_duration', +3698: 'double_event_duration', +3699: 'half_event_duration', +3700: 'num_operators', +3701: 'operator_matrix', +3702: 'operator_matrix', +3703: 'obliterated_events', +3704: 'current_edit_beat_time_delta', +3706: 'edit_events', +3707: 'additional_inputs_string', +3708: 'num_additional_inputs', +3709: 'set_matrix_value', +3710: 'automation_follow_settings', +3711: 'automation_follow_exceptions', +3712: 'path_to_parameter', +3715: 'automation_lanes', +3716: 'parameter_identifier', +3717: 'value_type', +3718: 'automation_event_timeline', +3719: 'device_uuid', +3720: 'path_within_device', +3721: 'track_UUID', +3722: 'duration', +3723: 'invert_y_axis', +3724: 'atom_reference', +3726: 'automation_type', +3727: 'event_timeline', +3728: 'automation_type', +3729: 'lanes', +3730: 'value_type', +3733: 'start_time', +3734: 'duration', +3735: 'regions', +3736: 'track_automation_preview_regions', +3737: 'delete_automation_lane', +3739: 'destination_reference', +3740: 'started_adjusting_modulation_mapping', +3741: 'finished_adjusting_modulation_mapping', +3742: 'clear_modulation_mapping_for_atom', +3744: 'preset_category_filter', +3745: 'preset_creator_filter', +3750: 'apply_track_to_clip_automation', +3751: 'envelope_mappings', +3752: 'common_parameter_mappings', +3753: 'modulation_sources', +3754: 'preview_clear_time_ranges', +3755: 'inc_modulation_mapping', +3756: 'modulation_changed', +3757: 'modulation_changed_signal', +3758: 'user_name', +3759: 'get_end_time', +3760: 'start_preview', +3761: 'stop_preview', +3762: 'has_modulation', +3763: 'has_additive_modulation', +3764: 'has_multiplicative_modulation', +3765: 'has_automation', +3767: 'clip_automation_preview_regions', +3768: 'note', +3769: 'expression', +3770: 'expression_preview_regions', +3771: 'preset_identifier', +3772: 'get_preview_regions_for_expression', +3776: 'regions', +3777: 'regions', +3778: 'begin_insert_and_adjust_event', +3779: 'continue_insert_and_adjust_event', +3780: 'finish_insert_and_adjust_event', +3782: 'cancel_insert_and_adjust_event', +3783: 'track_preview_regions_changed', +3784: 'clip_preview_regions_changed', +3785: 'replace_onsets', +3786: 'onset_extend_ms', +3787: 'replace_onsets_with_grid', +3788: 'preserve_transients_mode', +3792: 'begin_insert_and_move_onset', +3793: 'continue_insert_and_move_onset', +3794: 'finish_insert_and_move_onset', +3795: 'cancel_insert_and_move_onset', +3796: 'begin_insert_and_move_warp_marker', +3797: 'continue_insert_and_move_warp_marker', +3798: 'finish_insert_and_move_warp_marker', +3799: 'cancel_insert_and_move_warp_marker', +3800: 'get_insert_and_move_preview_events', +3806: 'get_track', +3808: 'instrument_note_lanes', +3809: 'is_audio_lane', +3812: 'container_item', +3814: 'track_or_track_group_selection', +3815: 'can_delete', +3816: 'can_copy', +3817: 'can_cut', +3818: 'can_paste', +3819: 'can_duplicate', +3820: 'can_group', +3821: 'can_ungroup', +3822: 'audio_note_lanes', +3824: 'position_in_seconds', +3826: 'modulations_to_ignore', +3827: 'split', +3828: 'loop_selection', +3829: 'clear_arrangement_track_automation', +3831: 'selection_properties', +3833: 'quantize', +3834: 'properties_description', +3837: 'get_drum_pads', +3840: 'is_note_selected', +3841: 'is_note_occurrence_selected', +3842: 'arranger_note_editor_selection', +3843: 'arranger_automation_editor_selection', +3844: 'arranger_clip_note_editor_selection', +3845: 'arranger_clip_automation_editor_selection', +3846: 'launcher_clip_note_editor_selection', +3847: 'launcher_clip_automation_editor_selection', +3849: 'is_item_selected', +3850: 'clip_cursor', +3851: 'track_cursor', +3945: 'duration', +3946: 'min_key', +3947: 'note_on_velocity', +3948: 'note_off_velocity', +3949: 'fade_in_time', +3950: 'fade_out_time', +3951: 'warp_mode', +3952: 'sample_name', +3954: 'preserve_transients_mode', +3955: 'preview_onsets', +3956: 'sample_time', +3957: 'tempo', +3958: 'event_selection', +3959: 'title', +3960: 'color', +3962: 'shuffle', +3963: 'accent', +3964: 'launch_mode', +3965: 'launch_quantization', +3966: 'follow_action', +3967: 'follow_action_delay', +3968: 'use_loop_start_as_quantization_reference', +3969: 'play_start', +3970: 'play_stop', +3971: 'loop_start', +3972: 'loop_duration', +3973: 'is_loop_enabled', +3974: 'time', +3975: 'can_quantize', +3976: 'begin_move', +3977: 'end_move', +3980: 'begin_adjusting_key_range', +3981: 'end_adjusting_key_range', +3982: 'block_size', +3987: 'engine_shared_memory_helper', +3988: 'note_pitch_filter', +3991: 'max_key', +3992: 'low_key_cf', +3993: 'high_key_cf', +3994: 'low_velocity_cf', +3995: 'high_velocity_cf', +3996: 'name', +3997: 'category', +3998: 'creator', +3999: 'creator', +4000: 'category', +4001: 'description', +4003: 'keywords', +4004: 'description', +4005: 'save_multisample', +4006: 'low_key_cf', +4007: 'high_key_cf', +4008: 'low_velocity_cf', +4009: 'high_velocity_cf', +4010: 'layers', +4011: 'name', +4012: 'layers', +4013: 'layer', +4014: 'name', +4015: 'layer', +4016: 'loop_enable', +4017: 'resource_category_filter', +4018: 'resource_creator_filter', +4019: 'name', +4020: 'category', +4021: 'creator', +4022: 'keywords', +4023: 'description', +4024: 'sub_path', +4026: 'local_playback_path_file_offset', +4028: 'get_automation_cue_marker_timeline', +4029: 'can_adjust_values', +4030: 'adjust_value_step_up', +4031: 'adjust_value_step_down', +4032: 'adjust_value_step_up', +4033: 'adjust_value_step_down', +4034: 'has_lanes', +4035: 'get_cursor_position_before', +4036: 'get_cursor_position_after', +4037: 'get_first_cursor_position', +4038: 'get_last_cursor_position', +4039: 'anchor_position', +4040: 'select_items_between', +4041: 'get_cursor_position_in_next_lane', +4042: 'get_cursor_position_in_first_lane', +4043: 'get_cursor_position_in_last_lane', +4044: 'get_cursor_position_in_previous_lane', +4045: 'clear_resource', +4046: 'local_playback_path', +4047: 'interleaved_block_ranges', +4048: 'prime_locations', +4057: 'begin_adjust_event_interpolation', +4058: 'finish_adjust_event_interpolation', +4059: 'cancel_adjust_event_interpolation', +4060: 'continue_adjust_event_interpolation', +4062: 'finish_adjust_events', +4063: 'cancel_adjust_events', +4064: 'continue_adjust_events', +4065: 'begin_adjust_events', +4068: 'track', +4069: 'start_time', +4070: 'duration', +4072: 'sub_tasks', +4073: 'start_beat_time', +4074: 'end_beat_time', +4075: 'bit_depth', +4076: 'dither', +4077: 'progress', +4079: 'source_object', +4080: 'output_file', +4084: 'output_index', +4085: 'queued_rendering_tasks', +4092: 'ask_engine_to_process_render_queue', +4122: 'is_processing_rendering_queue', +4123: 'is_rendering_possible', +4124: 'is_playback_possible', +4125: 'is_currently_rendering', +4129: 'position_of_first_instrument', +4130: 'pre_fx_audio_output_source', +4135: 'items', +4140: 'move_by_time_delta', +4141: 'quantize', +4144: 'can_reverse', +4146: 'begin_inspecting_automation', +4147: 'finish_inspecting_automation', +4148: 'normalized_value', +4151: 'pan', +4152: 'timbre', +4153: 'amplitude', +4162: 'transpose', +4163: 'can_scale_time', +4164: 'scale_time', +4172: 'apply_histogram_transform', +4181: 'is_color_mixed', +4187: 'toggle_item_at_cursor', +4188: 'select_single_item_at_cursor', +4189: 'select_all', +4190: 'get_item_after_cursor', +4191: 'get_item_before_cursor', +4192: 'value', +4193: 'multi_value_display_mode', +4194: 'value', +4195: 'is_mixed', +4196: 'begin_adjusting', +4197: 'end_adjusting', +4198: 'apply_delta', +4199: 'set_to_default', +4201: 'cancel_adjusting', +4202: 'note_content_properties', +4203: 'can_bounce', +4204: 'bounce', +4205: 'value', +4206: 'can_nudge_one_step_earlier', +4207: 'can_nudge_one_bar_earlier', +4208: 'can_nudge_one_step_later', +4209: 'can_nudge_one_bar_later', +4210: 'nudge_one_step_later', +4211: 'nudge_one_bar_later', +4212: 'nudge_one_step_earlier', +4213: 'nudge_one_bar_earlier', +4214: 'is_relevant', +4231: 'begin_adjust_event_start', +4232: 'finish_adjust_event_start', +4233: 'cancel_adjust_event_start', +4234: 'continue_adjust_event_start', +4235: 'begin_adjust_event_end', +4236: 'finish_adjust_event_end', +4237: 'cancel_adjust_event_end', +4238: 'continue_adjust_event_end', +4239: 'begin_slide_events', +4240: 'finish_slide_events', +4241: 'cancel_slide_events', +4242: 'continue_slide_events', +4243: 'begin_adjust_event_start', +4244: 'finish_adjust_event_start', +4245: 'cancel_adjust_event_start', +4246: 'continue_adjust_event_start', +4247: 'begin_adjust_event_end', +4248: 'finish_adjust_event_end', +4249: 'cancel_adjust_event_end', +4250: 'continue_adjust_event_end', +4251: 'begin_slide_events', +4252: 'finish_slide_events', +4253: 'cancel_slide_events', +4254: 'continue_slide_events', +4255: 'apply_random', +4256: 'apply_scale_around_mean', +4269: 'reverse', +4270: 'adjust_start_and_end', +4271: 'preview_adjust_start_and_end', +4272: 'preview_start_marker', +4273: 'preview_stop_marker', +4274: 'can_split_at_onsets', +4276: 'can_reverse_pattern', +4278: 'can_slide_to_previous_onset', +4279: 'can_slide_to_next_onset', +4282: 'start_at_warp_marker', +4285: 'grid_subdivision', +4287: 'swing', +4290: 'should_use_editor_grid', +4291: 'overlap_correction', +4294: 'control_surface_note_input_id', +4296: 'set_value_of_subset', +4302: 'get_items_between', +4303: 'get_all_items', +4308: 'key', +4309: 'name', +4311: 'named_keys', +4312: 'source', +4313: 'destination', +4320: 'preview_insert_arrangement_automation_event', +4321: 'source_to_pull', +4322: 'move_warp_markers', +4323: 'preview_move_warp_markers', +4324: 'export_document_graphs_as_dot_file', +4326: 'timelines', +4327: 'shared_onset_timelines', +4328: 'shared_timeline_info', +4329: 'timeline', +4330: 'onset_event_timeline_reference', +4331: 'document_state', +4332: 'drag_and_drop_preview_document_state', +4339: 'track_uuid', +4340: 'path_to_source_relative_to_track', +4341: 'preset_identifier', +4342: 'started_rendering', +4343: 'finished_rendering', +4344: 'is_muted', +4345: 'set_is_muted', +4346: 'is_muted', +4347: 'no_choice_label', +4350: 'destination', +4351: 'source', +4359: 'auto_arm_selected_audio_tracks', +4364: 'is_expression_section_visible', +4365: 'is_editing_audio', +4366: 'title', +4367: 'color', +4368: 'is_color_mixed', +4369: 'volume', +4370: 'pan', +4371: 'mute', +4372: 'solo', +4373: 'arm', +4376: 'visible_layers', +4377: 'editable_layers', +4378: 'instrument_layer_selection', +4379: 'clip', +4380: 'is_locked', +4383: 'can_slice_to_drum_track', +4386: 'clip_selection', +4389: 'slice_to_drum_track', +4390: 'slice_mode', +4391: 'slice_settings', +4392: 'get_source_item', +4393: 'should_select_tracks_when_selecting_clips_on_arranger', +4394: 'should_select_tracks_when_selecting_clips_in_clip_launcher', +4423: 'audio_layer_selection', +4426: 'is_instrument_layer', +4427: 'is_audio_layer', +4428: 'has_content', +4429: 'clip', +4430: 'automation_type', +4431: 'selected_parameter', +4433: 'parameter_smoothing', +4434: 'allow_automation_curves', +4438: 'is_insertion_layer_hybrid', +4439: 'editor_selection', +4440: 'editor_selection', +4441: 'has_visible_layers', +4442: 'should_show_all_automation_lanes', +4443: 'get_layer_for_item', +4444: 'engine_analysis_helper', +4445: 'absolute_delay_relative_to_input', +4446: 'unlock_all_layers', +4447: 'toggle_locking_of_cursor_layer', +4448: 'toggle_visibility_of_cursor_layer', +4449: 'displayed_title', +4451: 'containing_clip_properties', +4452: 'preview_document_state', +4455: 'audio_wallpaper_layer', +4463: 'should_insert_in_all_layers', +4471: 'hardware_or_device_destination', +4472: 'hardware_or_device_source', +4473: 'engine_hardware_audio_sources', +4474: 'engine_hardware_audio_destinations', +4475: 'engine_hardware_audio_destination', +4476: 'should_audition_notes', +4477: 'engine_destination', +4478: 'should_route_to_default_output_by_default', +4479: 'bus_role', +4480: 'is_editing_micro_pitch', +4481: 'selected_note_expression', +4482: 'selected_audio_expression', +4486: 'is_value_snapping_enabled', +4487: 'should_show_audio_event_handles', +4488: 'destination', +4489: 'monitoring_router', +4490: 'source_to_pull', +4493: 'bus_configurations', +4494: 'audio_bus_type', +4495: 'track_UUID', +4496: 'bus_configurations', +4497: 'audio_bus_type', +4498: 'engine_hardware_audio_source', +4499: 'track_UUID', +4501: 'engine_source', +4502: 'direct_midi_note_destinations', +4504: 'engine_hardware_note_destination', +4505: 'machine_specific_hardware_note_destinations', +4508: 'user_defined_audio_output_buses', +4513: 'api_name', +4514: 'device_name', +4515: 'bus_configurations', +4516: 'bus_configurations', +4517: 'user_name', +4518: 'machine_id', +4519: 'midi_bus_name', +4520: 'bus_configurations', +4522: 'engine_shared_memory_helper', +4524: 'should_be_used_for_cue_and_preview', +4526: 'bounced_track_source', +4531: 'title', +4532: 'original_artist', +4533: 'album', +4534: 'writer', +4535: 'producer', +4536: 'year', +4537: 'genre', +4538: 'copyright', +4539: 'artist', +4544: 'io_write_buffer_usage', +4545: 'io_write_overrun', +4546: 'can_bounce', +4547: 'bounce', +4548: 'has_selected_source', +4550: 'can_consolidate', +4551: 'consolidate', +4552: 'start_of_effect_tracks_cursor_position', +4553: 'should_show_insert_preview_time', +4554: 'can_double_content', +4555: 'double_content', +4560: 'can_make_one_step_shorter', +4561: 'can_make_one_bar_shorter', +4562: 'can_make_one_step_longer', +4563: 'can_make_one_bar_longer', +4564: 'make_one_step_shorter', +4565: 'make_one_bar_shorter', +4566: 'make_one_step_longer', +4567: 'make_one_bar_longer', +4568: 'should_show_controller_indication', +4569: 'start_showing_controller_indication', +4570: 'stop_showing_controller_indication', +4571: 'should_auto_resize_audio_note_lanes', +4573: 'has_selected_note_source', +4574: 'has_selected_audio_source', +4575: 'can_hold_audio_data', +4576: 'can_hold_note_data', +4577: 'sample_waveform_updated', +4578: 'sample_waveform_updated', +4579: 'continue_playback', +4580: 'play_from_start', +4581: 'continue_playback_or_stop', +4582: 'play_from_start_or_stop', +4583: 'can_resize_audio_note_lanes', +4584: 'insert_silence', +4585: 'alternate_delete', +4586: 'alternate_duplicate', +4587: 'alternate_cut', +4588: 'alternate_copy', +4589: 'alternate_paste', +4590: 'can_do_alternate_cut', +4591: 'can_do_alternate_copy', +4592: 'can_do_alternate_paste', +4593: 'can_do_alternate_duplicate', +4594: 'can_insert_silence', +4595: 'can_do_alternate_delete', +4596: 'insert_note_expression_events', +4597: 'preview_insert_note_expression_events', +4600: 'preview_insert_automation_events', +4602: 'pause', +4603: 'play_or_pause', +4604: 'snap_settings', +4605: 'grid_order', +4607: 'grid_subdivision', +4608: 'get_grid_step_length', +4611: 'is_adaptive', +4612: 'double_grid_size', +4613: 'half_grid_size', +4620: 'adaptive_grid_order', +4622: 'begin_matrix_value_change', +4623: 'end_matrix_value_change', +4625: 'audio_host_apis', +4628: 'user_defined_audio_input_buses', +4629: 'selected_audio_input_device', +4630: 'selected_audio_output_device', +4631: 'add_audio_output_bus', +4632: 'delete_audio_output_bus', +4636: 'can_monitor_selected_source', +4637: 'selected_block_size', +4638: 'is_selected_audio_input_device_missing', +4639: 'is_selected_audio_output_device_missing', +4640: 'is_selected_audio_host_api_missing', +4641: 'is_selected_audio_device_missing', +4642: 'needs_to_restart_audio_engine', +4643: 'layer_list_width', +4644: 'show_automation', +4645: 'about_to_be_created_automation_lane', +4646: 'shown_automation_lane', +4647: 'track', +4648: 'preview_clear_time_ranges_affect_notes_only', +4650: 'get_clip', +4653: 'get_parent_clip', +4654: 'get_parent_note', +4655: 'get_parent_clip_timeline', +4656: 'get_parent_clip_timeline', +4657: 'begin_track_automation_points_for_param', +4658: 'is_detail_editor_editing_multiple_layers', +4659: 'muted_by_solo_in_place', +4660: 'cue_and_preview_destination', +4661: 'solo_as_cue', +4662: 'mono_preview', +4663: 'use_for_monitoring', +4664: 'toggle_solo', +4665: 'stop_recording_audio_file', +4666: 'get_beat_time_at_sample_time', +4668: 'cue_and_monitor_destination', +4669: 'solo_as_cue', +4670: 'mono_preview', +4672: 'audio_destinations', +4673: 'make_legato', +4674: 'make_events_ones_step_long', +4675: 'make_legato', +4676: 'make_fixed_length', +4677: 'length_quantize_settings', +4683: 'display_color', +4693: 'shown_keys_in_current_editor_session', +4694: 'add_shown_key', +4695: 'remove_shown_key', +4696: 'timeline_scroll_position', +4697: 'fade_in_time', +4698: 'fade_out_time', +4699: 'add_anti_click_fades_on_split', +4700: 'apply_multiply', +4701: 'is_being_closed', +4702: 'is_being_saved', +4703: 'tempo', +4704: 'reset_to_project_tempo', +4709: 'reset_to_project_tempo', +4715: 'base_name', +4716: 'recording_number', +4717: 'recorded_file_name_providers', +4718: 'recorded_file_name_provider', +4719: 'is_recording_in_progress', +4720: 'playhead_follow_mode', +4723: 'value_origin', +4724: 'pixel_step_size', +4726: 'text_style', +4727: 'plugins', +4728: 'has_audio_input', +4729: 'has_note_input', +4730: 'has_audio_output', +4731: 'has_note_output', +4732: 'value', +4733: 'value_to_normalized_value', +4734: 'normalized_value_to_value', +4741: 'description', +4742: 'component', +4743: 'index', +4755: 'icon_name', +4756: 'value', +4757: 'value', +4761: 'value', +4762: 'value_type', +4763: 'inputs', +4764: 'file_item_references', +4765: 'file_item_reference', +4766: 'file_reference', +4767: 'name', +4769: 'edit', +4770: 'slice_source_mode', +4771: 'start_automation_write_on_record', +4772: 'bounce_point', +4775: 'num_slices_created', +4776: 'bounce_options', +4777: 'custom_bounce_point', +4778: 'slice_settings', +4779: 'show_slice_dialog', +4780: 'perform_slice', +4781: 'stretch_note', +4782: 'preview_stretch_note', +4783: 'selection', +4784: 'slice_to_multi_sampler_track', +4785: 'preview_insert_zone', +4786: 'max_slices_to_create', +4787: 'should_limit_number_of_slices_created', +4788: 'bounce_in_place', +4789: 'bounce_options', +4790: 'show_bounce_dialog', +4791: 'perform_bounce', +4792: 'is_being_prepared_for_playback', +4793: 'playback_error_message', +4794: 'num_samples_being_prepared_for_playback', +4795: 'is_preparing_samples_for_playback', +4797: 'crash_engine', +4803: 'pitch_bend_range_up', +4804: 'pitch_bend_range_down', +4805: 'clip_properties', +4806: 'title', +4807: 'has_multiple_items', +4808: 'insert_note_expression_events', +4809: 'preview_insert_note_expression_events', +4810: 'insert_note_expression_events', +4811: 'preview_insert_note_expression_events', +4817: 'is_effect_track', +4818: 'should_show_sends_list_in_effect_channel_device_chain', +4819: 'about_to_remove_launcher_clip', +4820: 'time_alignment_delay', +4821: 'peak_hold_value', +4822: 'reset_peak_hold_value', +4823: 'tell_engine_to_reset_peak_hold_value', +4824: 'beat_time', +4825: 'launch_from_beat_time', +4826: 'value_count', +4828: 'value', +4830: 'preset_name', +4831: 'channel', +4832: 'should_quantize', +4833: 'start_preview_from', +4834: 'is_effectively_muted', +4835: 'displayed_preset_name', +4836: 'begin_draw_velocity', +4837: 'draw_velocity', +4839: 'has_note_input', +4840: 'has_note_output', +4841: 'has_audio_input', +4842: 'has_audio_output', +4843: 'send_list_width_in_effect_channel_device_chain', +4844: 'output_meter', +4845: 'has_audio_output_devices', +4846: 'suggest_for_note_input', +4847: 'suggest_for_audio_input', +4848: 'suggest_for_note_input', +4849: 'suggest_for_audio_input', +4850: 'suggest_for_note_input', +4851: 'suggest_for_audio_input', +4852: 'has_audio_input', +4853: 'has_note_input', +4854: 'has_audio_output', +4855: 'has_note_output', +4856: 'crash_engine_audio_thread', +4858: 'set_has_editor', +4859: 'exclusive_mode', +4864: 'pre_roll_on_transport_start', +4865: 'buffer_size', +4866: 'buffer_type', +4867: 'cpu_load_buffer', +4868: 'position', +4873: 'start_undoable_recording', +4874: 'stop_undoable_recording', +4875: 'should_detect_engine_memory_leaks', +4876: 'min_free_space_on_disk', +4878: 'max_cache_size', +4879: 'decoding_cache_preferences', +4880: 'is_connected', +4881: 'control_surface_instance_index', +4883: 'control_surface_instance_index', +4884: 'cache_location', +4885: 'previous_cache_location', +4886: 'effective_cache_location', +4887: 'has_cache_location_changed', +4888: 'modulated_plugin_parameter_absolute_values', +4889: 'parameter_id', +4890: 'absolute_value', +4891: 'modulated_plugin_parameter_absolute_values', +4892: 'engine_loaded_preset', +4893: 'engine_failed_to_load_preset', +4896: 'solo_as_cue', +4898: 'finished_write_track_automation_for_param', +4900: 'begin_clip_automation_points_for_param', +4901: 'finished_write_clip_automation_for_param', +4902: 'arranger_region_automation_timelines', +4904: 'explicitly_chosen_cue_and_preview_destination', +4905: 'repaint_overview', +4906: 'set_note_gain', +4907: 'set_note_pan', +4908: 'set_note_timbre', +4913: 'innermost_owner', +4914: 'path_from_innermost_owner', +4915: 'value_type', +4916: 'destination_value_type', +4917: 'package_installation_directory', +4919: 'human_friendly_package_installation_location', +4920: 'set_key_names', +4921: 'get_start_time_for_tempo_calculations', +4922: 'atom_name', +4923: 'atom_location_in_track', +4924: 'is_atom_found', +4931: 'default_track_volume', +4932: 'meter_mode', +4937: 'get_local_beat_time', +4938: 'get_editor_beat_time', +4939: 'create_occurrence', +4940: 'is_onset_selected', +4941: 'compensate_latency_for_audio_recording', +4942: 'compensate_audio_recording_latency', +4943: 'plugin_window_closed', +4944: 'is_plugin_window_open', +4945: 'playback_start_time_in_seconds', +4946: 'has_been_modified', +4947: 'loop_start_time_in_seconds', +4949: 'output_latency', +4950: 'absolute_delay_for_recording_compensation', +4951: 'insert_note', +4952: 'preview_insert_note', +4953: 'transport_time_alignment_delay', +4954: 'was_device_window_open_last_time_track_was_shown', +4955: 'last_selected_parameter', +4956: 'end_define_parameters', +4957: 'end_define_programs', +4958: 'auto_hide_and_show_device_windows', +4959: 'contact_email_address', +4961: 'script_class', +4962: 'script_instance_index', +4963: 'user_name', +4964: 'machine_id', +4965: 'bus_configurations', +4966: 'machine_specific_hardware_note_sources', +4967: 'engine_hardware_note_source', +4970: 'port_index', +4971: 'name', +4972: 'script_class', +4973: 'script_instance_index', +4974: 'port_index', +4975: 'control_script_note_source_id', +4976: 'available_control_surface_note_inputs', +4977: 'play_note_event', +4978: 'stop_all_playing_notes', +4979: 'play_note_events', +4980: 'default_note_length', +4981: 'default_note_on_velocity', +4982: 'audio_in_channel_count', +4983: 'audio_out_channel_count', +4985: 'audio_sidechain_routing_component', +4986: 'sidechain_routing', +4987: 'output_chains', +4988: 'output_chains', +4990: 'active', +4991: 'active', +4992: 'active', +4993: 'active', +4994: 'can_activate', +4995: 'can_deactivate', +4996: 'activate', +4997: 'deactivate', +5002: 'is_beat_marker_selected', +5003: 'is_expression_event_selected', +5004: 'create_occurrence', +5005: 'create_expression_occurrence', +5006: 'plugin_device_view_mode', +5009: 'name', +5010: 'location_path', +5011: 'sub_folders', +5012: 'library_location', +5013: 'directory_path', +5014: 'file_name', +5015: 'search_string', +5019: 'content_library_locations', +5020: 'music_library_locations', +5021: 'plugin_library_locations', +5022: 'root_folder', +5024: 'folder_name', +5025: 'search_sessions', +5031: 'library_location', +5033: 'search_sessions', +5035: 'hit_count', +5036: 'packaged_content_root_path', +5037: 'packaged_samples_library_location', +5038: 'packaged_multi_samples_library_location', +5039: 'packaged_clips_library_location', +5040: 'reindex_all_library_locations', +5041: 'is_indexing', +5042: 'update_index', +5044: 'device_output_source', +5049: 'selected_folder', +5053: 'core_devices_library_location', +5054: 'device_id', +5055: 'packaged_presets_library_location', +5056: 'library_location', +5057: 'path_in_library_location', +5063: 'note_destination', +5064: 'note_source_to_pull', +5065: 'post_fx_note_source', +5066: 'content_locations', +5067: 'music_locations', +5068: 'plugin_locations', +5069: 'has_slots', +5070: 'has_drum_pads', +5071: 'has_layers', +5072: 'midi_channel', +5073: 'midi_note_destination', +5074: 'selected_destination_has_midi_channel', +5075: 'midi_channel', +5077: 'vst_device_id', +5079: 'patch_index', +5080: 'value', +5081: 'value', +5082: 'value', +5083: 'options', +5085: 'category', +5086: 'label', +5087: 'preference_categories', +5088: 'value', +5089: 'value', +5090: 'value', +5091: 'options', +5092: 'get_script_preference', +5093: 'should_reindex_on_startup', +5094: 'ping', +5095: 'get_signal_setting', +5096: 'get_number_setting', +5097: 'get_enum_setting', +5098: 'get_string_setting', +5100: 'ping', +5101: 'settings', +5102: 'label', +5103: 'remove_setting', +5104: 'find_setting', +5105: 'invert', +5106: 'are_deactivated_chains_shown', +5107: 'request_ping', +5108: 'should_monitor_for_changes', +5109: 'active', +5110: 'package_vendor', +5111: 'min_value', +5112: 'max_value', +5113: 'step_resolution', +5114: 'unit', +5115: 'min_value', +5116: 'max_value', +5117: 'step_resolution', +5118: 'unit', +5119: 'name', +5120: 'script_settings', +5121: 'find_script_setting', +5122: 'get_script_preference_category_with_name', +5123: 'get_signal_setting', +5124: 'get_number_setting', +5125: 'get_enum_setting', +5126: 'get_string_setting', +5127: 'device_type', +5130: 'request_ping', +5131: 'settings_categories', +5132: 'get_settings_category', +5133: 'name', +5134: 'my_library_location', +5135: 'my_library_effective_location', +5136: 'my_library_root_path', +5137: 'my_library_location', +5138: 'present_library_locations_changed', +5139: 'clear_all_buffers', +5140: 'ask_engine_to_clear_all_buffers', +5141: 'compensation_delay', +5143: 'notifications_enabled', +5144: 'is_64_bit', +5145: 'device_version', +5146: 'user_defined_name', +5149: 'has_note_input', +5150: 'has_note_output', +5151: 'audio_input_bus_count', +5152: 'audio_output_bus_count', +5153: 'preset', +5154: 'file_references', +5155: 'has_attached_files', +5156: 'warp_grain_size', +5157: 'warp_grain_size', +5158: 'pre_fader_audio_output_source', +5159: 'dither', +5160: 'pre_fader', +5161: 'sample_bit_depth', +5162: 'export_audio_preferences', +5163: 'export_audio_filename_pattern', +5164: 'open_containing_folder_when_completed', +5168: 'device_sort_mode', +5169: 'device_browser_preferences', +5170: 'is_selected_for_export', +5171: 'export_name', +5172: 'from_time', +5173: 'to_time', +5174: 'export_audio_settings', +5181: 'can_slice', +5182: 'cannot_slice_reason', +5186: 'engine_source', +5187: 'device_item_reference', +5188: 'engine_source', +5189: 'device_item_reference', +5190: 'path_to_source_in_device', +5192: 'engine_destination', +5193: 'device_item_reference', +5196: 'item', +5197: 'outermost_device', +5198: 'path_from_outermost_device', +5199: 'innermost_owner', +5200: 'path_from_innermost_owner', +5202: 'top_level_device', +5206: 'crossfade_mode', +5207: 'crossfade', +5211: 'post_fader_audio_output_source', +5243: 'set_raw_from_controller', +5244: 'increment_raw_from_controller', +5245: 'track_UUID', +5246: 'child_parameter_value_display_changed', +5247: 'child_parameter_normalized_value_changed', +5253: 'is_session_recording_in_progress', +5254: 'has_manual_automation_override', +5256: 'start_launcher_clip_automation_write', +5257: 'stop_launcher_clip_automation_write', +5258: 'is_detecting_control_surfaces', +5262: 'was_device_window_open_when_all_windows_were_hidden', +5265: 'action', +5266: 'action', +5267: 'preferences_shown', +5268: 'settings_shown', +5269: 'is_enabled', +5270: 'is_visible', +5271: 'is_enabled', +5272: 'is_visible', +5280: 'limitation_state', +5296: 'reset', +5304: 'update_state', +5316: 'output_smoothing', +5317: 'compensation_latency_in_samples', +5320: 'delay_at_input_relative_to_sequencer', +5321: 'processing_latency_in_samples_for_display', +5323: 'transport_time_alignment_delay', +5324: 'transport_time_alignment_delay', +5325: 'transport_time_alignment_delay', +5326: 'note_output_compensation_delay', +5327: 'recording_correction_offset', +5329: 'recording_correction_offset', +5330: 'delay_in_samples', +5331: 'delay_in_samples', +5332: 'max_delay_in_samples', +5333: 'placeholder_delay_unit', +5334: 'include_output_latency', +5335: 'min_delay_in_samples', +5336: 'delay_label', +5337: 'preset_identifier', +5338: 'relative_delay', +5339: 'limitations_changed', +5340: 'is_assigning_preset', +5341: 'update_value_from_plugin', +5342: 'is_assigning_plugin_preset', +5343: 'effective_active', +5344: 'name', +5345: 'output_indices', +5346: 'bus_type', +5347: 'output_indices', +5348: 'bus_type', +5349: 'is_chain_input_valid', +5350: 'begin_define_io', +5351: 'end_define_io', +5352: 'device_type', +5356: 'can_toggle_active', +5357: 'toggle_active', +5358: 'ask_engine_to_define_io', +5359: 'should_use_parent_color', +5360: 'display_color', +5361: 'should_devices_in_slot_determine_device_type', +5362: 'modulated_value', +5363: 'modulated_value', +5364: 'modulated_value', +5368: 'should_check_document_invariants', +5369: 'are_engine_assertions_enabled', +5370: 'output_fx_chain', +5371: 'output_fx_chain', +5372: 'source_vu_meter', +5373: 'should_show_meter_for_source', +5375: 'chain_input', +5376: 'audio_outputs', +5380: 'chain_input', +5381: 'color', +5383: 'pre_roll', +5384: 'always_play_metronome_during_pre_roll', +5385: 'always_play_metronome_during_pre_roll', +5386: 'has_attached_plugin_state_files', +5387: 'has_modulations', +5388: 'should_show_controller_indication', +5389: 'start_showing_controller_indication', +5390: 'stop_showing_controller_indication', +5395: 'filter_sections', +5396: 'available_results', +5398: 'name', +5399: 'selected_results', +5400: 'is_engine_processing', +5401: 'engine_shared_memory_helper', +5402: 'create_preset_search_session', +5403: 'category_filter_column', +5404: 'creator_filter_column', +5405: 'is_playing_relative_clip_automation', +5411: 'preset_type_column', +5412: 'get_display_value', +5413: 'tags_column', +5414: 'packaged_file_id', +5417: 'name', +5418: 'enabled', +5419: 'active', +5421: 'preset_name', +5422: 'preset_category', +5423: 'preset_creator', +5424: 'preset_keywords', +5425: 'create_music_search_session', +5426: 'create_clip_search_session', +5427: 'auto_suspend', +5428: 'auto_suspend', +5430: 'file_type_filter_column', +5431: 'file_type_filter_column', +5432: 'create_sample_search_session', +5433: 'file_type_filter_column', +5434: 'create_multi_sample_search_session', +5435: 'all_filter_column_result', +5436: 'widget_attached_to_display', +5437: 'widget_detached_from_display', +5438: 'modulation_sources', +5440: 'playback_devices', +5441: 'preview_playback_device', +5442: 'device_chain_preview_session', +5443: 'device_being_hot_swapped', +5444: 'begin_hot_swap', +5445: 'cancel_preview_session', +5446: 'commit_preview_session', +5447: 'selected_file_location', +5448: 'begin_insert_device_preview_session', +5449: 'insert_index', +5451: 'results_updated', +5452: 'display_settings', +5455: 'is_source_expanded_in_inspector', +5460: 'playback_resource', +5465: 'user_device_name', +5466: 'user_device_name', +5468: 'top_level_track_group', +5473: 'identifier', +5474: 'clear_arranger_time_range', +5475: 'split_arranger_clips', +5478: 'top_level_device_for_assigning_preset', +5479: 'get_descendant_tracks_with_clips', +5480: 'preferences', +5481: 'should_audition', +5482: 'audio_device', +5483: 'is_old_document_that_saved_plugin_states_in_project_dir', +5486: 'layers', +5488: 'get_layer_for_clip', +5493: 'name', +5495: 'is_selected', +5497: 'path_to_component', +5505: 'insertion_layer', +5507: 'device_sort_mode', +5508: 'is_active', +5510: 'recording_quantization_grid', +5511: 'quantize_note_length', +5512: 'devices_filter_section', +5513: 'location_filter_section', +5515: 'hit_count', +5518: 'is_selected', +5519: 'filter_column', +5521: 'is_being_hot_swapped', +5522: 'is_instrument_note_editor_layer', +5523: 'is_audio_note_editor_layer', +5524: 'make_empty_drum_device_chain', +5525: 'configure_layers_with_clips', +5527: 'create_scene_from_playing_launcher_clips', +5533: 'creator_field', +5535: 'search_sessions', +5536: 'current_search_session', +5537: 'current_search_session_index', +5538: 'selected_file_info', +5539: 'select_next_file', +5540: 'select_prev_file', +5541: 'select_first_file', +5542: 'select_last_file', +5543: 'location_field', +5546: 'cursor_file_result', +5548: 'track_selection_follows_layer_selection', +5549: 'insertion_layer_follows_cursor', +5550: 'context_insert_session', +5551: 'category_field', +5568: 'value', +5569: 'is_pinned', +5570: 'name', +5571: 'is_device_pinned', +5572: 'tags', +5573: 'tag', +5574: 'is_selected', +5575: 'tags_field', +5576: 'search_session', +5578: 'selected_file_result', +5579: 'last_loaded_file_path', +5580: 'category_filter_column', +5581: 'category_filter_column', +5582: 'device_type_column', +5583: 'create_device_search_session', +5584: 'device_type', +5585: 'vst_device_id', +5586: 'is_64_bit', +5587: 'device_id', +5588: 'preview_session', +5589: 'begin_preview_session', +5590: 'commit_preview_session', +5591: 'cancel_preview_session', +5595: 'should_audition', +5596: 'vst2_device_id', +5597: 'device_version', +5598: 'vst2_device_id', +5599: 'device_version', +5600: 'device_id', +5601: 'device_version', +5602: 'device_type', +5603: 'file_type_filter_column', +5605: 'file_type_filter_column', +5626: 'start_recording_track_automation_for_param', +5627: 'start_recording_clip_automation_for_param', +5628: 'page_count', +5629: 'current_page_number', +5634: 'onscreen_keyboard_source', +5635: 'has_multiple_pages_of_results', +5636: 'load_next_page', +5637: 'load_prev_page', +5638: 'track_header_width', +5639: 'meta_clip_timeline', +5642: 'name', +5643: 'identifier', +5644: 'selectable_audio_device_infos', +5645: 'ask_engine_to_list_selectable_devices', +5646: 'begin_adding_selectable_devices_from_engine', +5647: 'add_selectable_device_from_engine', +5648: 'selected_audio_device_info', +5649: 'update_device_metadata', +5650: 'selected_sample_rate', +5653: 'set_block_size_range', +5655: 'device_note_output_source', +5656: 'top_level_device', +5657: 'path_to_source_in_device', +5658: 'path_to_source_in_device', +5659: 'finish_adding_selectable_devices_from_engine', +5662: 'show_driver_configuration_panel', +5663: 'set_supported_block_sizes', +5664: 'set_supported_sample_rates', +5665: 'selectable_audio_input_device_infos', +5666: 'selected_audio_input_device_info', +5667: 'selectable_audio_output_device_infos', +5668: 'selected_audio_output_device_info', +5669: 'ask_engine_to_list_selectable_devices', +5670: 'begin_adding_selectable_devices_from_engine', +5671: 'add_selectable_input_device_from_engine', +5672: 'add_selectable_output_device_from_engine', +5673: 'finish_adding_selectable_devices_from_engine', +5674: 'get_tracks_with_clips_or_meta_clips', +5675: 'device_state', +5676: 'update_device_state', +5677: 'is_menu_command', +5678: 'modifier_mask', +5679: 'key_name', +5680: 'is_us_key', +5682: 'shortcut_mappings', +5683: 'action_type_id', +5684: 'shortcuts', +5685: 'primary_menu_shortcut', +5686: 'context_expression_string', +5687: 'kind_id', +5688: 'selected_mappings_name', +5689: 'shortcut_preferences_settings', +5690: 'shortcut_preferences', +5691: 'shortcut_mappings', +5692: 'selected_available_mappings', +5693: 'have_shortcut_mappings_been_edited', +5694: 'mappings_changed', +5695: 'suggested_name_for_saving_edited_mappings', +5698: 'operation_id_to_invoke', +5699: 'key_name', +5700: 'modifiers_mask', +5702: 'keyboard_mappings', +5703: 'is_menu_modifier_pressed', +5705: 'launch_and_start_transport', +5706: 'launch_and_start_transport', +5709: 'control_surface_class_id', +5710: 'control_surface_instance_index', +5711: 'note_id', +5712: 'control_surface_name', +5713: 'port_index', +5714: 'channel', +5715: 'mappings', +5717: 'port_index', +5718: 'channel', +5720: 'control_change', +5729: 'preview_meta_clips', +5732: 'ungroup', +5734: 'select', +5735: 'referenced_object', +5739: 'mappings', +5740: 'target_object_reference', +5741: 'mapping_action', +5742: 'control_change', +5743: 'noteId', +5744: 'attribute_id', +5745: 'value_type', +5746: 'min_value', +5747: 'max_value', +5748: 'attribute_id', +5749: 'value_type', +5750: 'value', +5751: 'bool_value_change', +5752: 'value', +5753: 'delete', +5755: 'control_id', +5756: 'midi_mappings_changed', +5761: 'active_input_latency', +5762: 'active_output_latency', +5763: 'is_jack_installed', +5764: 'mappings_changed', +5765: 'mappings_changed_for_control_id', +5766: 'human_friendly_name', +5767: 'relative_adjustment_scale', +5768: 'suggest_note_output_devices', +5769: 'suggest_audio_output_devices', +5770: 'select_next_value', +5771: 'select_prev_value', +5775: 'parent_device_name', +5776: 'parent_device_identifier', +5777: 'parent_device_vendor', +5789: 'begin_define_clients_and_ports', +5790: 'add_audio_output_port', +5791: 'end_define_clients_and_ports', +5793: 'audio_output_connections', +5794: 'channel', +5795: 'port_name', +5797: 'update_clients_and_ports', +5798: 'audio_input_connections', +5799: 'add_audio_input_port', +5800: 'connection_state', +5801: 'error_message', +5802: 'pressure_expression_timeline', +5803: 'pressure', +5804: 'set_note_pressure', +5805: 'update_note_pressure', +5806: 'do_update_note_pressure', +5807: 'request_transport_start', +5808: 'transport_starting', +5809: 'request_transport_stop', +5810: 'transport_stopped', +5811: 'transport_started', +5812: 'transport_ready_to_start', +5813: 'supports_mpe', +5815: 'clients_or_ports_changed', +5816: 'is_connected_to_jack', +5817: 'audio_backend_died', +5818: 'connectable_clients', +5819: 'name', +5820: 'audio_in_ports', +5821: 'audio_out_ports', +5822: 'name', +5823: 'client_name', +5824: 'has_error', +5825: 'should_be_transport_sync_master', +5826: 'connect_to_jack', +5827: 'is_being_processed', +5828: 'launch_next_slot_or_scene', +5829: 'launch_prev_slot_or_scene', +5830: 'has_nested_track_groups', +5831: 'note_pitch_filter', +5832: 'toggle_playhead_follow', +5833: 'toggle_automation_follow', +5834: 'is_expression_section_visible', +5836: 'selected_note_expression', +5837: 'selected_audio_expression', +5838: 'is_value_snapping_enabled', +5840: 'should_audition_notes', +5846: 'value', +5847: 'min_id', +5848: 'max_id', +5849: 'control_change_mapping_mode', +5850: 'host_api_failed_to_load', +5851: 'toggle_solo', +5852: 'toggle_solo_exclusive', +5853: 'toggle_arm', +5854: 'toggle_arm_exclusive', +5857: 'should_show_relative_knob_mapping_settings', +5858: 'is_control_change_mode_relative', +5859: 'additional_device_types_id_mask', +5860: 'additional_device_types_id_mask', +5861: 'device_category', +5862: 'device_category', +5863: 'additional_device_types_mask', +5864: 'additional_device_types_mask', +5867: 'name', +5871: 'favorites_collection', +5877: 'device_search_state', +5878: 'preset_search_state', +5879: 'clip_search_state', +5880: 'sample_search_state', +5881: 'multi_sample_search_state', +5882: 'named_filters', +5883: 'music_search_state', +5884: 'library', +5885: 'target_named_collection', +5886: 'icon_name', +5888: 'always_use_default_device', +5889: 'device_added', +5890: 'default_renderer_device_changed', +5891: 'default_capture_device_changed', +5893: 'named_filter', +5894: 'named_filters_filter_section', +5895: 'is_target_collection', +5896: 'is_maximized', +5897: 'BPM', +5898: 'BPM', +5899: 'has_creator', +5900: 'has_tags', +5901: 'has_device', +5902: 'has_category', +5903: 'icon_name', +5904: 'create_group_track', +5905: 'device_name', +5907: 'wants_power_of_two_block_size', +5908: 'is_expanded_in_mappings_browser', +5909: 'display_settings', +5910: 'human_friendly_location', +5911: 'clear_all_filters', +5913: 'popup_browser_media_manager', +5914: 'has_preset_been_chosen', +5915: 'supported_block_sizes_changed', +5917: 'preferred_block_size', +5918: 'is_toolbar_visible', +5920: 'should_highlight_in_mapping_browser', +5921: 'is_scrollbar_visible', +5922: 'selected_modulation_tab', +5924: 'duration', +5925: 'BPM', +5926: 'tags', +5927: 'is_previewing_clip_deletion', +5928: 'has_audioclient3_interface', +5931: 'buffer_period_jitter', +5932: 'create_effect_track', +5933: 'track_color_generator_seed', +5934: 'packaged_templates_library_location', +5935: 'normal_template_search_state', +5936: 'create_normal_template_search_session', +5938: 'use_template_for_new_projects', +5939: 'template_path', +5940: 'template_preferences', +5946: 'samples_a', +5947: 'select_previous_result', +5948: 'select_next_result', +5950: 'is_frozen', +5951: 'scale_a', +5954: 'data', +5955: 'data_updated', +5957: 'selected_audio_api_needs_manual_refresh_of_devices', +5958: 'samples_b', +5960: 'scale_b', +5961: 'create_track_group', +5968: 'device_stopped_responding', +5969: 'show_b', +5970: 'track_mixers_to_mute_from', +5974: 'trigger_index', +5975: 'a_color', +5976: 'b_color', +5977: 'queued_start_position', +5978: 'background_color', +5979: 'axis_color', +5980: 'queued_start_marker', +5982: 'a_domain', +5983: 'b_domain', +5985: 'trigger_color', +5986: 'trigger_level', +5987: 'svg_filename', +5989: 'num_samples', +5990: 'has_comment', +5991: 'comment', +5992: 'category', +5993: 'create_item_reference', +5995: 'is_filtering', +5996: 'filter_selection_changed', +5998: 'browser_settings', +6001: 'packaged_file_id', +6003: 'cursor', +6004: 'has_search_string', +6007: 'should_include_devices_that_match_user_search_string', +6008: 'remove_absolute_automation', +6012: 'reverse', +6013: 'reverse_pattern', +6026: 'end_move_sample_time', +6027: 'is_computer_keyboard_note_input_bound_to_caps_lock', +6029: 'delete_clip', +6030: 'last_undo_id', +6031: 'output_is_aggregate_device', +6046: 'file_results_changed', +6047: 'color', +6048: 'named_keys_changed', +6049: 'last_cursor_file_result', +6050: 'selected_file_results', +6051: 'track_cursor_slot', +6052: 'selected_file_metadata_changed', +6053: 'browsing_session_state', +6054: 'browsing_session_state', +6055: 'browsing_session_state', +6066: 'widget_attached_to_display', +6067: 'widget_detached_from_display', +6068: 'clips_or_preview_clips_in_scene_changed', +6069: 'tracks_or_nested_tracks_changed', +6070: 'is_moving_launcher_clips_within_track', +6071: 'quantize_touch_note_pitch_start', +6072: 'quantize_touch_note_pitch_update', +6073: 'quantize_pen_note_pitch_start', +6074: 'quantize_pen_note_pitch_update', +6075: 'convert_touch_contact_area_to_pressure', +6076: 'min_contact_area', +6077: 'max_contact_area', +6078: 'should_retrigger_on_slide', +6079: 'onscreen_keyboard_preferences', +6088: 'is_settings_menu_shown', +6089: 'value', +6090: 'parent_folder', +6091: 'selected_file_metadata', +6092: 'browsing_session_state', +6093: 'browsing_session_state', +6094: 'browsing_session_state', +6095: 'range_defines_on_state', +6096: 'min_value', +6097: 'max_value', +6098: 'mime_type', +6099: 'last_pad_browsing_session_state', +6100: 'last_pad_browsing_session_state', +6101: 'has_url', +6102: 'url', +6103: 'url', +6107: 'device_id', +6108: 'vst_device_id', +6109: 'screen_index', +6110: 'width_in_pixels', +6111: 'height_in_pixels', +6112: 'pixels_per_inch', +6113: 'should_use_automatic_scaling_factor', +6114: 'custom_scaling_factor', +6117: 'monitor_configurations', +6118: 'monitor_preferences', +6119: 'x', +6120: 'y', +6121: 'connected_monitor_configurations', +6122: 'scaling_factor', +6124: 'is_in_touch_mode', +6125: 'max_scaling_factor', +6126: 'monitor_name', +6127: 'dual_monitor_profile_name', +6128: 'triple_monitor_profile_name', +6129: 'single_monitor_profile', +6130: 'dual_monitor_profile', +6131: 'triple_monitor_profile', +6132: 'last_cursor_track_or_track_group', +6133: 'screen_index', +6134: 'num_connected_monitors', +6135: 'can_decrease_scaling_factor', +6136: 'can_increase_scaling_factor', +6139: 'mouse_scaling_factor', +6140: 'touch_scaling_factor', +6141: 'suggested_scaling_factor', +6142: 'ask_application_to_activate', +6148: 'note_play_state_changed', +6149: 'supported_sample_rates_changed', +6150: 'automatic_sample_rate', +6151: 'automatic_block_size', +6152: 'force_mpe', +6153: 'force_mpe', +6154: 'displayed_name', +6155: 'displayed_name', +6159: 'clip_launcher_post_recording_action_time', +6160: 'clip_launcher_post_recording_action', +6162: 'chokes', +6163: 'chokes', +6164: 'src_key', +6165: 'dst_key', +6166: 'add_choke', +6167: 'remove_chokes_by_src', +6168: 'remove_chokes_by_dst', +6169: 'remove_choke', +6174: 'create_demo_template_search_session', +6175: 'create_tutorial_template_search_session', +6176: 'demo_template_search_state', +6177: 'tutorial_template_search_state', +6178: 'has_choke', +6180: 'is_selected', +6181: 'location_filter_section', +6182: 'folders', +6183: 'location_filter_section', +6184: 'folder_to_select', +6185: 'folder_name', +6186: 'file_result', +6187: 'device_version', +6192: 'add_every_chokes_by_src', +6193: 'add_every_chokes_by_dst', +6194: 'settings', +6195: 'audio_proxy_in_port', +6196: 'audio_proxy_out_port', +6197: 'note_proxy_in_port', +6198: 'note_proxy_out_port', +6199: 'components_to_execute', +6202: 'preset_identifier', +6203: 'name', +6204: 'processable_source_component', +6205: 'can_bounce_to_audio', +6206: 'define_audio_input_bus', +6207: 'define_audio_output_bus', +6208: 'is_polyphonic', +6209: 'is_horizontal', +6210: 'horizontal_alignment', +6211: 'name', +6212: 'root_item', +6213: 'panels', +6215: 'x', +6216: 'y', +6217: 'width', +6218: 'height', +6219: 'text', +6220: 'data_model', +6221: 'items', +6223: 'knob_size', +6224: 'no_selected_file_message', +6225: 'vertical_alignment', +6226: 'layout_settings', +6228: 'border_style', +6232: 'width', +6233: 'height', +6234: 'recreate_widget_hierarchy', +6235: 'layout_settings_changed_for_item', +6236: 'recreate_widget_for_item', +6237: 'preset_comment', +6238: 'panel_item_selection', +6239: 'icon_name', +6240: 'style', +6241: 'title', +6242: 'title', +6243: 'show_title', +6244: 'is_horizontal', +6245: 'brightness', +6247: 'folder_path', +6248: 'selected_file_location', +6249: 'will_be_played_in_arrangement_loop_iteration', +6250: 'missing_file_references', +6251: 'has_missing_file_references', +6253: 'vst3_device_id', +6254: 'supports_vst3_note_expressions', +6255: 'is_horizontal', +6256: 'break_count', +6257: 'label_style', +6258: 'filename', +6259: 'svg_data', +6260: 'show_grid', +6261: 'only_select_leafs', +6262: 'label_style', +6263: 'style', +6264: 'code', +6265: 'is_downward', +6266: 'style', +6267: 'label_style', +6268: 'add_new_panel', +6269: 'delete_panel', +6270: 'panel_to_show', +6271: 'panel_editor_display_settings', +6272: 'scroll_position_x', +6273: 'scroll_position_y', +6274: 'expression', +6275: 'panel_item', +6277: 'expressions', +6280: 'device_name', +6281: 'category', +6282: 'replace_onsets', +6283: 'replace_onsets_with_grid', +6286: 'creator', +6288: 'content_timeline', +6297: 'post_fader_source_with_delay', +6298: 'post_fx_note_source_with_delay', +6302: 'get_content_start_beat_time', +6303: 'get_content_stop_beat_time', +6306: 'are_takes_visible', +6309: 'is_visible', +6310: 'is_enabled', +6314: 'compiler_cache_entry_path', +6315: 'llvm_ir_ready', +6316: 'attribute_id', +6320: 'save_device_contents', +6321: 'nudge_up', +6322: 'nudge_down', +6323: 'nudge_left', +6324: 'nudge_right', +6325: 'nudge_up_coarse', +6326: 'nudge_down_coarse', +6327: 'nudge_left_coarse', +6328: 'nudge_right_coarse', +6331: 'decrease_width', +6332: 'increase_width', +6333: 'decrease_height', +6334: 'increase_height', +6338: 'key', +6341: 'audio_lane_height', +6342: 'device_UUID', +6343: 'contents', +6345: 'display_name', +6346: 'name', +6347: 'timelines', +6348: 'playback_position', +6349: 'find_events_at_time', +6350: 'find_events', +6351: 'find_events_at_time_greater_than', +6352: 'find_events_at_time_greater_than_or_equal_to', +6353: 'find_events_at_time_smaller_than', +6354: 'find_events_at_time_smaller_than_or_equal_to', +6355: 'find_event_at_time_greater_than', +6356: 'find_event_at_time_greater_than_or_equal_to', +6357: 'find_event_at_time_smaller_than', +6358: 'find_event_at_time_smaller_than_or_equal_to', +6359: 'sample_waveform_updated', +6360: 'find_event_at_time', +6361: 'preview_timelines', +6364: 'device_id_string', +6365: 'device_category', +6366: 'device_name', +6367: 'device_description', +6368: 'device_category', +6369: 'device_UUID', +6370: 'device_name', +6371: 'description', +6372: 'creator', +6373: 'comment', +6374: 'keywords', +6375: 'category', +6376: 'has_been_modified', +6379: 'preview_timeline', +6381: 'insert_timeline', +6382: 'inport_connection_changed', +6384: 'color_tint', +6386: 'value', +6387: 'preset_identifier', +6389: 'modulator_grid', +6390: 'value', +6391: 'value', +6393: 'value', +6396: 'show_advanced_device_chain', +6397: 'engine_outport_index', +6399: 'compensation_delay', +6400: 'horizontal_alignment', +6401: 'vertical_alignment', +6402: 'multiline', +6403: 'polyphonic', +6405: 'polyphonic', +6406: 'bipolar', +6407: 'loopIteration', +6408: 'note_content_timeline', +6409: 'is_arranger_event', +6410: 'event', +6411: 'bipolar_panel_value', +6412: 'get_preview_regions_for_expression', +6413: 'insert_note_expression_events', +6414: 'preview_insert_note_expression_events', +6417: 'header_area_panel', +6420: 'modulator_search_state', +6421: 'create_modulator_search_session', +6422: 'core_modulators_library_location', +6423: 'visible_device_chain_changed', +6424: 'visible_device_chain_changed', +6428: 'auxiliary_devices', +6429: 'selection', +6430: 'lane_selection', +6431: 'key', +6432: 'name', +6433: 'can_duplicate', +6434: 'duplicate', +6435: 'include_input_latency', +6441: 'get_fade_in_beats_relative_to_note_start', +6442: 'get_fade_out_beats_relative_to_note_start', +6443: 'unconnected_value', +6444: 'get_previous_event_for_crossfade', +6445: 'get_next_event_for_crossfade', +6455: 'location_type_id', +6456: 'location_path', +6457: 'explicitly_remove_standard_library_locations', +6458: 'folder_icon_name', +6459: 'engine_object', +6460: 'port_index', +6461: 'engine_shared_memory_helper', +6462: 'observed_value', +6463: 'observed_value', +6464: 'had_event_this_block', +6465: 'port_observers', +6466: 'intensity', +6467: 'path_before', +6468: 'path_after', +6469: 'device_preset_identifier_path_conversions', +6470: 'post_fader_audio_output_source_with_compensation_delay', +6471: 'fade_in_time', +6472: 'fade_out_time', +6473: 'fade_in_time', +6474: 'fade_out_time', +6475: 'adjust_fade_in_time', +6476: 'preview_adjust_fade_in_time', +6477: 'adjust_fade_out_time', +6478: 'preview_adjust_fade_out_time', +6479: 'get_previous_event_for_crossfade', +6480: 'get_next_event_for_crossfade', +6483: 'widget_shown', +6484: 'widget_hidden', +6485: 'widget_shown', +6486: 'widget_hidden', +6496: 'label', +6497: 'offset', +6498: 'is_horizontal', +6499: 'is_interactive', +6500: 'offset_x', +6501: 'offset_y', +6503: 'component', +6504: 'x_min', +6505: 'x_max', +6506: 'x_domain', +6507: 'x_unit', +6508: 'y_min', +6509: 'y_max', +6510: 'y_domain', +6511: 'y_unit', +6512: 'component_x', +6513: 'component_y', +6514: 'data_type', +6515: 'component', +6516: 'show_x_axis_label', +6517: 'show_y_axis_label', +6518: 'color', +6520: 'color', +6521: 'color', +6522: 'title_color', +6523: 'compile', +6524: 'has_code_changed_since_compile', +6526: 'has_compiler_errors', +6528: 'note_lane_header_width', +6529: 'component_name', +6530: 'component_icon', +6531: 'component_description', +6532: 'show_nitro_ide', +6533: 'dimensions', +6534: 'engine_analysis_helper', +6536: 'data_changed', +6537: 'color', +6538: 'event_data_size', +6539: 'plugin_root_generic_module', +6540: 'style', +6541: 'vst_device_id', +6542: 'vst_device_id', +6543: 'device_version', +6544: 'vst_device_id', +6546: 'vst_device_id', +6547: 'device_version', +6548: 'vst_device_id', +6549: 'vst_device_id', +6550: 'absolute_delay', +6551: 'file_metadata', +6552: 'invert_value', +6553: 'numeric_domain_x', +6554: 'numeric_domain_y', +6555: 'numeric_domain_z', +6556: 'preview_insert_timelines', +6557: 'insert_timelines', +6558: 'device_type', +6559: 'send_amount', +6560: 'send_mode', +6561: 'should_keep_lane', +6562: 'insert_audio_note_lane', +6563: 'name', +6564: 'fft_order', +6565: 'display_name', +6566: 'fft_order', +6567: 'fft_order', +6569: 'window_function', +6570: 'overlap', +6571: 'overlap', +6572: 'fft_order', +6573: 'window_function', +6574: 'analyzer_component', +6575: 'spectrum', +6577: 'color', +6578: 'data_changed', +6579: 'component_q', +6580: 'component_type', +6581: 'show_value_bar', +6582: 'scale_with_frequency', +6583: 'connected_monitor_infos', +6584: 'x', +6585: 'y', +6586: 'width', +6587: 'height', +6593: 'set_automation_free_run', +6594: 'clip', +6595: 'note', +6596: 'insert_audio_note_lanes', +6597: 'fixed_type', +6598: 'hit_count_text', +6599: 'has_hits', +6600: 'VST2_device_id', +6601: 'category', +6602: 'creator', +6603: 'VST2_device_id', +6604: 'device_type_id', +6607: 'create_automation_occurrence', +6608: 'is_automation_event_selected', +6609: 'data', +6610: 'data', +6613: 'data_size', +6614: 'preset_identifier', +6615: 'component', +6616: 'is_horizontal', +6617: 'highlight_component', +6618: 'highlight_color', +6619: 'data_changed', +6620: 'steps_to_show', +6621: 'step_offset', +6622: 'has_description', +6623: 'description', +6626: 'grid_x', +6627: 'preview_session', +6628: 'preview_device', +6629: 'should_audition', +6630: 'begin_insert_preview_session', +6631: 'cancel_insert_preview_session', +6632: 'commit_insert_preview_session', +6633: 'playback_auxiliary_devices', +6634: 'device_being_hot_swapped', +6635: 'begin_hot_swap', +6636: 'plugin_states_save_helper', +6637: 'plugin_states_save_helper', +6639: 'engine_playback_events', +6640: 'engine_shared_memory_helper', +6641: 'engine_lookup_id', +6642: 'engine_lookup_id', +6643: 'local_playback_path', +6644: 'engine_audio_file_references', +6647: 'fade_in_center_gain', +6648: 'fade_out_center_gain', +6649: 'fade_in_shape', +6650: 'fade_out_shape', +6653: 'fade_in_center_gain', +6654: 'fade_out_center_gain', +6655: 'fade_in_shape', +6656: 'fade_out_shape', +6659: 'fade_in_center_gain', +6660: 'fade_out_center_gain', +6661: 'fade_in_shape', +6662: 'fade_out_shape', +6665: 'fade_in_center_gain', +6666: 'fade_out_center_gain', +6667: 'fade_in_shape', +6668: 'fade_out_shape', +6669: 'engine_clip_fade_events', +6670: 'visit_fade_segments', +6671: 'visit_fade_segments', +6672: 'is_polyphonic_mode', +6673: 'is_effectively_polyphonic', +6679: 'grid_x', +6680: 'grid_y', +6681: 'is_polyphonic_mode', +6682: 'grid_x', +6683: 'grid_y', +6684: 'horizontal_alignment', +6685: 'style', +6686: 'get_normalized_fade_in_center_gain', +6687: 'get_normalized_fade_out_center_gain', +6688: 'get_normalized_fade_in_center_gain', +6689: 'get_normalized_fade_out_center_gain', +6690: 'grid_y', +6694: 'style', +6695: 'detail_panel', +6696: 'duplicate_panel', +6698: 'adjust_fade_in_curve', +6699: 'preview_adjust_fade_in_curve', +6700: 'adjust_fade_out_curve', +6701: 'preview_adjust_fade_out_curve', +6707: 'can_be_polyphonic', +6710: 'fade_in_curve_exponent', +6711: 'fade_out_curve_exponent', +6712: 'fade_in_curve_exponent', +6713: 'fade_out_curve_exponent', +6714: 'show_info_on_hover', +6715: 'scope_mode', +6716: 'grid_x', +6717: 'grid_y', +6718: 'grid', +6719: 'is_selected', +6720: 'auxiliary_device', +6721: 'grid_x', +6722: 'grid_y', +6723: 'preview_insert_auxiliary_devices', +6724: 'should_be_polyphonic_by_default', +6725: 'should_enable_perform_mode_by_default', +6726: 'auxiliary_devices', +6727: 'modulator_grid', +6728: 'display_settings', +6729: 'has_auxiliary_devices', +6730: 'show_modulated_value', +6731: 'show_modulated_value', +6732: 'queued_matrix_clip', +6733: 'queued_on_engine', +6734: 'add_empty_device', +6736: 'show_labels', +6737: 'use_meter_mode', +6738: 'meter_style', +6739: 'meter_origin', +6740: 'min_bound', +6741: 'max_bound', +6742: 'data_model', +6743: 'value_offset', +6744: 'move_cursor_to_cell', +6745: 'selected_tool', +6746: 'tool_settings', +6747: 'tool_settings_changed', +6753: 'selected_tool', +6754: 'selected_tool', +6755: 'is_return_to_arrangement_queued', +6756: 'queued_stop_on_engine', +6757: 'queued_return_to_arrangement_on_engine', +6758: 'save_device_contents', +6759: 'device_id', +6761: 'category_filter_column', +6762: 'core_modules_library_location', +6763: 'create_module_search_session', +6764: 'module_search_state', +6765: 'preset_identifier', +6767: 'scale', +6768: 'opacity', +6771: 'load_default_preset', +6772: 'save_as_default_preset', +6773: 'is_playing', +6774: 'is_queued', +6775: 'has_content', +6776: 'is_recording', +6778: 'remote_controls', +6779: 'name', +6780: 'destination_path', +6781: 'destination_value_type', +6782: 'pages', +6783: 'name', +6784: 'remote_controls', +6785: 'remote_controls', +6787: 'name', +6788: 'atom_reference', +6789: 'remote_controls_preset_pages', +6791: 'slot_index', +6792: 'slot_index', +6796: 'is_expanded', +6797: 'are_remote_controls_visible', +6798: 'default_is_expanded_display_setting', +6799: 'default_are_remote_controls_visible_display_setting', +6803: 'select_next_remote_controls_page', +6804: 'select_previous_remote_controls_page', +6805: 'show_arranger_automation_write_on_toolbar', +6806: 'show_arranger_overdub_on_toolbar', +6807: 'show_clip_launcher_automation_write_on_toolbar', +6808: 'show_clip_launcher_overdub_on_toolbar', +6809: 'show_groove_on_toolbar', +6815: 'is_frozen', +6816: 'is_frozen', +6817: 'freeze', +6819: 'unfreeze', +6820: 'expand_edit_menu_on_toolbar', +6821: 'frozen_audio', +6822: 'is_frozen', +6823: 'clip_lane_height', +6824: 'reset_fades', +6825: 'are_modulators_visible', +6826: 'default_are_modulators_visible_display_setting', +6827: 'are_modulators_visible', +6828: 'auto_fade', +6829: 'fade_clips_in_selected_time_range', +6830: 'fade_notes_in_selected_time_range', +6831: 'was_extracted_during_document_conversion', +6832: 'can_reset_fades', +6833: 'can_auto_fade', +6834: 'context_menu_panel', +6835: 'data_model', +6836: 'title', +6837: 'invert_value', +6838: 'is_selected', +6839: 'title', +6840: 'icon_name', +6841: 'name_panel_value', +6842: 'name_panel_value', +6844: 'move_crossfade', +6845: 'preview_move_crossfade', +6846: 'associated_modulation_source', +6847: 'toggle_fade_shape', +6848: 'reset_fade_in_time', +6849: 'reset_fade_out_time', +6850: 'reset_fade_in_curve', +6851: 'reset_fade_out_curve', +6852: 'toggle_fade_in_shape', +6853: 'toggle_fade_out_shape', +6855: 'pages_changed', +6856: 'from_time', +6857: 'to_time', +6858: 'pinned_actions_changed', +6859: 'selection_kind_changed', +6862: 'audio_in_bus_count', +6863: 'audio_out_bus_count', +6865: 'pinned_action_ids', +6867: 'tooltip_text', +6868: 'pinned_actions_states', +6869: 'id', +6870: 'pinned_actions_preferences', +6871: 'is_time_range_relevant', +6872: 'should_include_legacy_content', +6874: 'anti_click_fade_length', +6878: 'create_project_search_session', +6879: 'my_projects_location', +6880: 'project_search_state', +6881: 'my_projects_root_path', +6882: 'can_enter_group', +6884: 'enter_group', +6885: 'exit_group', +6886: 'is_primary', +6887: 'is_detail_panel_expanded', +6888: 'show_x_axis', +6889: 'show_y_axis', +6890: 'clip_x_axis_lines', +6891: 'clip_y_axis_lines', +6893: 'interpolation', +6894: 'interpolation_parameter', +6895: 'draw_x_line', +6896: 'draw_y_line', +6897: 'dot_size', +6898: 'loop_selection', +6899: 'can_split_at_onsets', +6900: 'can_slide_to_previous_onset', +6901: 'can_slide_to_next_onset', +6902: 'split_at_onsets', +6903: 'slide_to_previous_onset', +6904: 'slide_to_next_onset', +6905: 'unstretch', +6907: 'method', +6908: 'midi_in_port', +6909: 'transport_synchronization_preferences', +6910: 'show_loop_region_in_transport', +6911: 'synchronize_to_host', +6912: 'synchronize_to_midi_clock_beat', +6913: 'request_synchronize_to_host', +6914: 'request_synchronize_to_midi_clock_beat', +6915: 'can_save', +6916: 'save', +6917: 'convert_to_instrument_track', +6918: 'convert_to_audio_track', +6919: 'convert_to_hybrid_track', +6920: 'can_convert_to_instrument_track', +6921: 'can_convert_to_audio_track', +6922: 'can_convert_to_hybrid_track', +6923: 'save_name', +6924: 'quantize_notes', +6927: 'has_stop_button', +6928: 'value_item_index', +6929: 'can_double_content', +6930: 'double_content', +6931: 'can_transpose_octave_up', +6932: 'can_transpose_octave_down', +6933: 'can_transpose_semitone_up', +6934: 'can_transpose_semitone_down', +6935: 'transpose_octave_up', +6936: 'transpose_octave_down', +6937: 'transpose_semitone_up', +6938: 'transpose_semitone_down', +6941: 'name', +6944: 'currently_mapping_remote_controls_page', +6945: 'currently_mapping_remote_control_slot_index', +6946: 'startup_action', +6947: 'engine_loaded_plugin', +6948: 'engine_failed_to_load_plugin', +6949: 'plugin_host_crashed', +6950: 'has_missing_plugins', +6951: 'has_plugin_version_conflicts', +6952: 'upgrade_to_dual_outport', +6953: 'my_projects_location', +6954: 'my_projects_effective_location', +6955: 'absolute_mouse_mode', +6956: 'default_value', +6957: 'default_value', +6958: 'default_value', +6959: 'source_to_pull', +6960: 'selected_engine_destination', +6961: 'use_local_solo_for_device_channels', +6962: 'midi_clock_master_components', +6963: 'midi_timecode_component', +6964: 'source_to_pull', +6965: 'selected_engine_destinations', +6969: 'browsing_session_state', +6970: 'insert_device_in_empty_instrument_track_browsing_session_state', +6971: 'insert_device_in_empty_audio_track_browsing_session_state', +6972: 'new_device_browsing_session_states', +6973: 'device_types_mask', +6974: 'initial_browsing_session_state_preferences', +6977: 'active', +6978: 'effective_active', +6980: 'insert_device_in_new_track_browsing_session_state', +6981: 'midi_output_device_settings', +6982: 'name', +6983: 'enable_midi_clock', +6984: 'enable_midi_timecode', +6985: 'insert_device_in_new_instrument_layer_browsing_session_state', +6986: 'insert_device_in_new_audio_layer_browsing_session_state', +6987: 'insert_device_in_drum_pad_browsing_session_state', +6988: 'insert_modulator_browsing_session_state', +6989: 'insert_sampler_resource_browsing_session_state', +6990: 'insert_in_slot_browsing_session_state', +6991: 'gain_x', +6992: 'gain_y', +6993: 'midi_timecode_rate', +6994: 'midi_timecode_rate', +6997: 'set_midi_timecode_rate', +6998: 'duplicate_clip_content', +6999: 'duplicate_content', +7000: 'duplicate_clip_content', +7001: 'increase_scaling_factor', +7002: 'decrease_scaling_factor', +7004: 'preset_pages', +7005: 'device_pages', +7007: 'pages', +7008: 'device_pages', +7009: 'remote_controls_editor_selection', +7015: 'active', +7016: 'has_edited_device_pages', +7017: 'name', +7021: 'remote_controls', +7022: 'device_id_string', +7023: 'is_value_port', +7024: 'playback_observer', +7025: 'has_ever_edited_device_pages', +7026: 'page_name', +7027: 'page_index', +7028: 'is_preset_page', +7029: 'selected_remote_controls_page', +7030: 'default_selected_remote_controls_page', +7031: 'remote_controls_page_selector', +7032: 'adjust_arranger_clip_lane_height_for_all_child_tracks', +7033: 'tags', +7034: 'tags', +7035: 'filter_expression', +7036: 'selected_page', +7037: 'additional_remote_controls_page_selectors', +7038: 'per_voice', +7041: 'is_note_occurrence_cursor', +7042: 'shown_note_editor_keys', +7043: 'is_visible_in_note_editor', +7044: 'is_locked_in_note_editor', +7045: 'is_expanded_in_note_editor', +7046: 'send_midi', +7047: 'do_send_midi', +7048: 'is_visible_in_device_chain', +7049: 'is_previewed_in_device_chain', +7050: 'device_category', +7051: 'midi_clock_slave_component', +7052: 'selected_engine_source', +7055: 'knob_style', +7056: 'label_color', +7057: 'pie_color', +7058: 'icon_name', +7059: 'midi_device_index', +7060: 'driver_definition', +7092: 'direct_midi_note_sources', +7094: 'recording_bit_depth', +7095: 'bounce_bit_depth', +7096: 'real_time', +7097: 'real_time', +7098: 'engine_analysis_helper', +7099: 'data_changed', +7100: 'label', +7101: 'component', +7102: 'numeric_domain_x', +7103: 'numeric_domain_y', +7104: 'numeric_domain_z', +7105: 'draw_x_line', +7106: 'draw_y_line', +7107: 'dot_size', +7108: 'samples', +7109: 'my_controller_scripts_location', +7110: 'my_controller_scripts_effective_location', +7111: 'is_running', +7112: 'real_time', +7113: 'bit_depth', +7114: 'dither', +7117: 'add_proxy_audio_port', +7118: 'add_proxy_note_port', +7119: 'send_groups_changed', +7122: 'about_to_delete_from_document', +7123: 'name', +7124: 'preset_identifier', +7125: 'source', +7128: 'port_color', +7130: 'midi_clock_slave_tempo', +7131: 'enable_song_position_pointer', +7132: 'enable_midi_song_position_pointer', +7133: 'ableton_link_component', +7134: 'synchronize_to_ableton_link', +7135: 'request_synchronize_to_ableton_link', +7136: 'ableton_link_tempo', +7137: 'request_set_tempo', +7138: 'quantum', +7140: 'set_tempo', +7141: 'track_cursors', +7142: 'name', +7143: 'cursor', +7144: 'is_pinned', +7145: 'has_next', +7146: 'has_previous', +7147: 'select_next', +7148: 'select_previous', +7149: 'select_first', +7150: 'select_last', +7151: 'device_cursors', +7152: 'cursor_name', +7153: 'is_active', +7154: 'follow_mode', +7155: 'pinned_devices', +7156: 'should_follow_selection', +7157: 'pinned_track', +7158: 'include_block_size', +7159: 'set_latency_from_engine', +7160: 'should_compensate_delay', +7161: 'should_compensate_delay', +7162: 'id', +7169: 'select_parent', +7170: 'select_first_child', +7171: 'select', +7173: 'select_parent', +7174: 'exclude_from_graph', +7176: 'sample_stop_time', +7178: 'sample_stop_fade_time', +7179: 'content_start_time', +7180: 'preview_adjust_sample_stop_time', +7181: 'adjust_sample_stop_time', +7182: 'get_global_play_end_time', +7183: 'get_local_play_end_time', +7184: 'sample_stop_fade', +7188: 'font', +7189: 'note_output_trigger_led', +7190: 'has_selected_destination', +7191: 'has_selected_note_destination', +7192: 'has_selected_audio_destination', +7193: 'unconnected_value', +7224: 'compensation_delay', +7225: 'compensation_delay', +7230: 'absolute_delay_for_recording_compensation', +7234: 'default_value', +7235: 'gate_is_audio', +7237: 'offset_in_milliseconds', +7238: 'midi_clock_offset_in_milliseconds', +7239: 'offset_in_milliseconds', +7240: 'offset_ms', +7242: 'source_path', +7243: 'line_width', +7248: 'is_64_bit', +7254: 'author', +7255: 'model', +7256: 'restart_engine', +7262: 'use_external_transport', +7280: 'num_peers', +7287: 'controller_take_over_mode', +7291: 'is_test_document', +7292: 'should_emulate_take_over', +7293: 'value', +7294: 'component', +7301: 'append_empty_instrument_track_command', +7303: 'has_clip_queued_on_clip_launcher', +7307: 'is_time_signature_section_visible', +7308: 'set_value', +7309: 'numerator', +7310: 'denominator', +7311: 'smoothness', +7312: 'midi_clock_smoothness', +7314: 'beat_grid_changed', +7317: 'streamed_data_receiver_id', +7318: 'get_active_event_at_time', +7319: 'measure', +7320: 'get_active_event_at_bar', +7331: 'start_time', +7332: 'start_measure', +7334: 'get_active_event_at_time', +7335: 'get_active_event_at_bar', +7340: 'insert_time_signature_event_on_arranger', +7345: 'index_value_preset', +7347: 'indexed_value_atom', +7349: 'insert_note_command', +7350: 'insert_instrument_clip_on_arranger_command', +7352: 'find_track_with_name_command', +7353: 'has_dedicated_note_input', +7354: 'invalidate_value_type', +7355: 'insert_chains_with_devices', +7358: 'value', +7359: 'gui_value', +7361: 'transport_phase', +7362: 'numerator', +7363: 'denominator', +7364: 'tick_rate', +7366: 'get_measure_duration_in_beats', +7367: 'numerator', +7368: 'denominator', +7369: 'tick_rate', +7371: 'sub_numerator_1', +7372: 'sub_numerator_2', +7373: 'sub_numerator_3', +7374: 'sub_numerator_4', +7375: 'set_numerators', +7376: 'display_value', +7377: 'find_track_group_with_name_command', +7384: 'is_engine_loading_plugins', +7385: 'formant_expression_timeline', +7386: 'formant', +7389: 'append_empty_audio_track_command', +7390: 'insert_audio_clip_on_arranger_command', +7391: 'insert_audio_command', +7392: 'save_as_command', +7395: 'auto_preview_samples', +7396: 'sync_preview_samples', +7397: 'set_value_from_automation_playback', +7398: 'default_value', +7399: 'value_to_normalized_value', +7400: 'normalized_value_to_value', +7401: 'tick_rate', +7403: 'engine_shared_memory_name', +7405: 'engine_shared_memory_block_size', +7406: 'engine_shared_memory_num_initial_blocks', +7410: 'plugin_window_title', +7411: 'plugin_window_moved', +7412: 'is_device_window_position_known', +7413: 'device_window_x', +7414: 'device_window_y', +7415: 'device_window_width', +7416: 'device_window_height', +7417: 'ask_engine_to_set_plugin_window_position', +7425: 'get_color_setting', +7428: 'audio_device_not_connected', +7430: 'audio_device_available', +7434: 'needs_to_configure_audio_device', +7435: 'native_parent_window_handle', +7436: 'script_name', +7437: 'color', +7438: 'color', +7439: 'midi_device_name', +7441: 'midi_device_name', +7442: 'midi_device_index', +7445: 'device_id', +7446: 'is_local_plugin_dpi_aware_on_windows', +7447: 'is_editing_bus_configurations', +7448: 'preferences_bus_name', +7449: 'midi_in_port_name', +7450: 'is_dpi_aware_on_windows', +7451: 'get_color_setting', +7452: 'is_editing_bus_configurations', +7453: 'is_editing_bus_configurations', +7454: 'is_editing_bus_configurations', +7457: 'cancel_rendering_audio_command', +7462: 'preserve_formants', +7463: 'formant_envelope_resolution', +7467: 'insert_decimal_automation_point_command', +7468: 'clear_automation_command', +7469: 'set_value_command', +7470: 'set_audio_source_command', +7471: 'find_first_sidechain_source_command', +7478: 'insert_bool_automation_point_command', +7479: 'set_time_signature_command', +7481: 'set_value_command_with_unit', +7482: 'find_first_macro_with_name_command', +7483: 'insert_midi_automation_point_command', +7484: 'get_channel_controller_command', +7485: 'preserve_formants', +7486: 'formant_envelope_resolution', +7487: 'value', +7488: 'tempo', +7489: 'allow_automation', +7490: 'allow_modulation', +7491: 'should_include_demo_content', +7492: 'is_demo_content', +7493: 'add_warp_marker', +7494: 'is_demo_content', +7496: 'should_show_demo_content', +7497: 'ticks', +7498: 'start_ticks', +7499: 'time_signature', +7500: 'numerator', +7501: 'denominator', +7502: 'tick_rate', +7503: 'time_signature_description', +7510: 'loop_fade_time', +7511: 'loop_fade_time', +7515: 'display_settings', +7516: 'pitch_grid_settings', +7517: 'transpose_grid_settings', +7518: 'time_per_pixel', +7519: 'timeline_scroll_position', +7520: 'snap_settings', +7521: 'has_been_initialized', +7522: 'is_editing_template', +7525: 'color', +7526: 'color', +7527: 'color', +7528: 'color', +7529: 'color', +7530: 'font', +7531: 'label', +7532: 'color', +7533: 'is_color_mixed', +7535: 'target_object', +7536: 'track_sequencer', +7537: 'track_sequencer_delay', +7538: 'target_value_changed', +7539: 'history', +7541: 'uhd_filterlen', +7542: 'uhd_release', +7543: 'uhd_transient_boost', +7544: 'uhd_weight', +7545: 'uhd_enable_amplifier', +7546: 'uhd_fade_time', +7547: 'uhd_megabands', +7548: 'button_style', +7549: 'maximized_panel', +7552: 'expand_width', +7553: 'expand_height', +7554: 'data', +7555: 'is_horizontal', +7556: 'begin', +7557: 'end', +7558: 'samples', +7559: 'num_samples', +7560: 'data_updated', +7561: 'component', +7563: 'gain', +7564: 'color', +7565: 'offset', +7566: 'domain', +7567: 'line_width', +7568: 'frozen', +7571: 'default_stretch_mode_long', +7572: 'default_stretch_mode_short', +7573: 'default_stretch_mode_internal', +7575: 'is_expression_relevant', +7576: 'has_osc_server', +7580: 'should_show_detail_multisample_editor', +7582: 'human_friendly_path', +7583: 'pinned_actions_state', +7584: 'pinnable_action_groups', +7585: 'pinned_actions', +7586: 'focus_sub_panel_to_left_action', +7587: 'focus_sub_panel_to_right_action', +7588: 'focus_sub_panel_above_action', +7589: 'focus_sub_panel_below_action', +7590: 'focus_next_sub_panel_action', +7591: 'focus_prev_sub_panel_action', +7592: 'focus_sub_panel_to_left', +7593: 'focus_sub_panel_to_right', +7594: 'focus_sub_panel_above', +7595: 'focus_sub_panel_below', +7596: 'focus_next_sub_panel', +7597: 'focus_prev_sub_panel', +7598: 'parent_widget', +7599: 'child_widgets', +7600: 'is_visible', +7601: 'is_shown', +7602: 'is_enabled', +7603: 'focus_state', +7604: 'opacity', +7605: 'background_color', +7606: 'is_background_painting_optimization_enabled', +7607: 'tooltip_text', +7608: 'keyboard_shortcut', +7609: 'font_style', +7610: 'text_color', +7611: 'is_selected', +7612: 'unselected_menu_item_text', +7613: 'selected_menu_item_text', +7614: 'start_x', +7615: 'start_y', +7616: 'end_x', +7617: 'end_y', +7618: 'connection_color', +7619: 'is_double_buffer_enabled', +7620: 'left_margin', +7621: 'right_margin', +7622: 'top_margin', +7623: 'bottom_margin', +7624: 'ignore_border_margins', +7625: 'should_fill_completely_with_image', +7626: 'image_horiz_alignment', +7627: 'image_vert_alignment', +7628: 'owns_image', +7629: 'action', +7630: 'is_pinned', +7631: 'icon_name', +7632: 'icon_color_style', +7633: 'icon_frame_color_style', +7634: 'icon_color', +7635: 'icon_frame_color', +7636: 'icon_scale', +7637: 'icon_name', +7638: 'icon_color', +7639: 'icon_frame_color', +7640: 'icon_position', +7641: 'icon_alignment', +7642: 'gap', +7643: 'can_block_events', +7644: 'monitor_configuration', +7645: 'normal_scaling_factor', +7646: 'touch_scaling_factor', +7647: 'is_in_touch_mode', +7648: 'layout_scaling_factor', +7649: 'should_monitor_paint_interval', +7650: 'user_interaction_mode_is_touch', +7651: 'layout_changed', +7652: 'message', +7653: 'is_enabled', +7654: 'is_applicable', +7655: 'menu_item_text', +7656: 'menu_item_text_suffix', +7657: 'icon_name', +7658: 'short_name', +7659: 'invoke', +7660: 'invoked', +7661: 'child_widget', +7662: 'rename_on_doubleclick', +7663: 'rename_on_click', +7664: 'renamed_text', +7665: 'is_vertical', +7666: 'show_rename_popup', +7667: 'is_selected', +7668: 'location', +7669: 'unloaded_preferred_dip_width', +7670: 'unloaded_preferred_dip_height', +7671: 'is_loaded', +7672: 'should_load_content_when_attached_to_display', +7673: 'reload_when_show_if_content_older_than_time_in_ms', +7674: 'reload', +7675: 'top_to_bottom', +7676: 'title', +7677: 'pinnable_actions', +7678: 'text_truncation_mode', +7679: 'min_visible_chars', +7680: 'is_horiz_clippable', +7681: 'is_vert_clippable', +7682: 'svg_data', +7683: 'icon_color', +7684: 'text', +7685: 'font_style', +7686: 'text_color_style', +7687: 'text_color', +7688: 'action', +7689: 'default_action', +7690: 'title', +7691: 'title_icon_name', +7692: 'is_title_visible', +7693: 'should_block_input_in_other_windows', +7694: 'close_dialog', +7695: 'dialog_closed', +7696: 'title', +7697: 'is_horiz_expandable', +7698: 'is_vert_expandable', +7699: 'title', +7700: 'owner', +7701: 'should_hide_when_close_requested', +7702: 'should_dispose_when_closed', +7703: 'is_full_screen', +7704: 'is_activated', +7705: 'is_portrait_mode', +7706: 'minimize_action', +7707: 'maximize_action', +7708: 'restore_window_action', +7709: 'activate', +7710: 'request_close', +7711: 'close_requested', +7712: 'minimize', +7713: 'maximize', +7714: 'restore_window', +7715: 'bring_to_front', +7716: 'focused_widget', +7717: 'default_focused_widget', +7718: 'deepest_focused_widget', +7719: 'selection_owner', +7720: 'selection', +7721: 'is_selection_focused', +7722: 'style', +7723: 'can_focus_window', +7724: 'should_focus_when_shown', +7725: 'is_horiz_expansion_useful', +7726: 'is_vert_expansion_useful', +7727: 'should_transform', +7728: 'has_ok_button', +7729: 'has_cancel_button', +7730: 'has_yes_button', +7731: 'has_no_button', +7732: 'has_apply_button', +7733: 'has_hide_button', +7734: 'has_close_button', +7735: 'has_continue_button', +7736: 'length', +7737: 'color', +7738: 'is_selected', +7739: 'data_model', +7740: 'null_data_model_widget', +7741: 'left_or_top_controls_widget', +7742: 'title_widget', +7743: 'right_or_bottom_controls_widget', +7744: 'is_horizontal', +7745: 'should_title_always_be_centered', +7746: 'active_child_index', +7747: 'active_child', +7748: 'show_next_card', +7749: 'show_previous_card', +7750: 'show_first_card', +7751: 'show_last_card', +7752: 'is_selected', +7753: 'closeable', +7754: 'style', +7755: 'close_tab', +7756: 'is_horizontal', +7757: 'child_gap', +7758: 'line_gap', +7759: 'weight', +7760: 'alignment', +7761: 'default_weight', +7762: 'should_keep_same_length', +7763: 'min_length', +7764: 'max_length', +7765: 'is_useful', +7766: 'gap', +7767: 'should_keep_same_length', +7768: 'slaves', +7769: 'is_horizontal', +7770: 'resize_handle_width', +7771: 'user_defined_pixel_width', +7772: 'user_defined_dip_width', +7773: 'user_defined_pixel_height', +7774: 'user_defined_dip_height', +7775: 'is_horiz_resizing_enabled', +7776: 'should_enable_horiz_resizing_when_user_resizes', +7777: 'should_use_resized_width_when_resizing_disabled', +7778: 'is_vert_resizing_enabled', +7779: 'should_enable_vert_resizing_when_user_resizes', +7780: 'should_use_resized_height_when_resizing_disabled', +7781: 'vertical_resize_mode', +7782: 'horizontal_resize_mode', +7783: 'should_quantize_width', +7784: 'should_quantize_height', +7785: 'should_clip_horizontally', +7786: 'should_clip_vertically', +7787: 'tab_selector_style', +7788: 'selected_tab_index', +7789: 'selected_tab', +7790: 'tab_bar', +7791: 'tabs', +7792: 'reserve_space_for_all_tabs', +7793: 'is_open', +7794: 'animation_duration', +7795: 'selector_widget', +7796: 'content_widget', +7797: 'request_close', +7798: 'close_requested', +7799: 'can_expand_to_maximum_child_size', +7800: 'tab_selectors', +7801: 'selected_tab_index', +7802: 'data_model', +7803: 'widgets_to_hide', +7804: 'is_open', +7805: 'destination_widget', +7806: 'should_reserve_space_for_invisible_widgets', +7807: 'vertical_gap', +7808: 'horizontal_gap', +7809: 'top_widget', +7810: 'bottom_widget', +7811: 'left_widget', +7812: 'right_widget', +7813: 'center_widget', +7814: 'data_model', +7815: 'data_model', +7816: 'tab_bar_position', +7817: 'tab_bar_alignment', +7818: 'reserve_space_for_all_tabs', +7819: 'is_horizontal', +7820: 'is_horizontal', +7821: 'gap', +7822: 'default_weight', +7823: 'default_secondary_axis_alignment', +7824: 'secondary_axis_expands_to_maximum', +7825: 'should_keep_same_length', +7826: 'inner_children_have_hard_corners', +7827: 'gap_color', +7828: 'rows', +7829: 'columns', +7830: 'inner_children_have_hard_corners', +7831: 'should_hide', +7832: 'left', +7833: 'right', +7834: 'top', +7835: 'bottom', +7836: 'bar_color', +7837: 'background_color', +7838: 'is_waiting_background_color', +7839: 'is_waiting_line_color', +7840: 'is_waiting_line_separation', +7841: 'is_waiting_animation_speed', +7842: 'is_waiting_line_width', +7843: 'height', +7844: 'default_dialog_style', +7845: 'message_dialog_style', +7846: 'puristic_overlay_style', +7847: 'background_color', +7848: 'border', +7849: 'handle_style', +7850: 'scroll_button_style', +7851: 'delete_button_style', +7852: 'tree_style', +7853: 'shortcut_pill_style', +7854: 'add_shortcut_button_style', +7855: 'delete_button_style', +7856: 'title_style', +7857: 'button_style', +7858: 'gap', +7859: 'should_try_to_keep_buttons_same_length', +7860: 'should_inner_buttons_have_hard_corners', +7861: 'show_label', +7862: 'show_icon', +7863: 'button_size', +7864: 'height', +7865: 'gap', +7866: 'on_icon_name', +7867: 'off_icon_name', +7868: 'text_color', +7869: 'background_color', +7870: 'vu_meter_color', +7871: 'vu_meter_muted_color', +7872: 'vu_meter_overloaded_color', +7873: 'cpu_meter_color', +7874: 'cpu_overloaded_color', +7875: 'left_margin', +7876: 'right_margin', +7877: 'top_margin', +7878: 'bottom_margin', +7879: 'font_for_empty_text', +7880: 'text_color_for_empty_text', +7881: 'dialog_title_font', +7882: 'content_area', +7883: 'title_area', +7884: 'button_area', +7885: 'button_size', +7886: 'height', +7887: 'default_text_color', +7888: 'text_color', +7889: 'background_color', +7890: 'gradient_amount', +7891: 'icon_color', +7892: 'icon_frame_color', +7893: 'border', +7894: 'text', +7895: 'icon_name', +7896: 'separator_color', +7897: 'separator_width', +7898: 'mode', +7899: 'absolute_color', +7900: 'reference_color', +7901: 'relative_hue', +7902: 'relative_saturation', +7903: 'relative_lightness', +7904: 'stroke_color', +7905: 'fill_color', +7906: 'dot_color', +7907: 'emboss_highlight_color', +7908: 'emboss_shadow_color', +7909: 'value_background_color', +7910: 'value_color', +7911: 'gradient_amount', +7912: 'popup_style', +7913: 'transport_style', +7914: 'console_input_style', +7915: 'stroke_color', +7916: 'emboss_highlight_color', +7917: 'emboss_shadow_color', +7918: 'on_color', +7919: 'off_color', +7920: 'modulated_on_state', +7921: 'modulated_off_state', +7922: 'bar_color', +7923: 'left_margin', +7924: 'right_margin', +7925: 'text_field_style', +7926: 'button_size', +7927: 'height', +7928: 'gap', +7929: 'text_color', +7930: 'background_color', +7931: 'font_style', +7932: 'border', +7933: 'left_margin', +7934: 'right_margin', +7935: 'top_margin', +7936: 'bottom_margin', +7937: 'separator_color', +7938: 'separator_thickness', +7939: 'separator_height', +7940: 'item_height', +7941: 'selected_menu_item_style', +7942: 'unselected_menu_item_style', +7943: 'styles', +7944: 'name', +7945: 'background_color', +7946: 'text_color', +7947: 'border', +7948: 'name', +7949: 'border_type', +7950: 'shape', +7951: 'outline_color', +7952: 'highlight_color', +7953: 'shadow_color', +7954: 'round_top_left_corner', +7955: 'round_top_right_corner', +7956: 'round_bottom_left_corner', +7957: 'round_bottom_right_corner', +7958: 'rounded_corner_radius', +7959: 'outline_width', +7960: 'font_style', +7961: 'text_color', +7962: 'background_color', +7963: 'progress_bar_style', +7964: 'should_have_expand_button', +7965: 'background_color', +7966: 'selected_background_color', +7967: 'standby_selected_background_color', +7968: 'text_color', +7969: 'selected_text_color', +7970: 'cursor_frame_color', +7971: 'cursor_standby_frame_color', +7972: 'separator_color', +7973: 'drop_indicator_color', +7974: 'child_indentation', +7975: 'should_highlight_cursor', +7976: 'row_height', +7977: 'background_color', +7978: 'selected_background_color', +7979: 'text_color', +7980: 'selected_text_color', +7981: 'left_margin', +7982: 'right_margin', +7983: 'top_margin', +7984: 'bottom_margin', +7985: 'close_button_gap', +7986: 'close_button_style', +7987: 'selected_and_active_state', +7988: 'unselected_and_active_state', +7989: 'background_color', +7990: 'button_style', +7991: 'push_button_style', +7992: 'left_margin', +7993: 'right_margin', +7994: 'top_margin', +7995: 'bottom_margin', +7996: 'gap', +7997: 'narrow_style', +7998: 'display_style', +7999: 'inside_display_style', +8000: 'inside_hitech_display_style', +8001: 'transport_style', +8002: 'small_transport_style', +8003: 'border_styles', +8004: 'get_border_by_name', +8005: 'inner_radius', +8006: 'arc_radius', +8007: 'arc_width', +8008: 'center_area_radius', +8009: 'knob_width', +8010: 'knob_height', +8011: 'text_distance', +8012: 'automation_indicator_distance_from_center_x', +8013: 'automation_indicator_distance_from_center_y', +8014: 'automation_indicator_size', +8015: 'default_style', +8016: 'start_alpha', +8017: 'end_alpha', +8018: 'inner_radius_proportion', +8019: 'num_lines', +8020: 'size', +8021: 'selected_state', +8022: 'unselected_state', +8023: 'unselected_tag_pill_style', +8024: 'selected_tag_pill_style', +8025: 'normal_font', +8026: 'section_title_font', +8027: 'focused_background_color', +8028: 'focused_border', +8029: 'sub_panel_border', +8030: 'sub_panel_background_color', +8031: 'tree_style', +8032: 'push_button_style', +8033: 'push_toggle_button_style', +8034: 'text_style', +8035: 'normal_state', +8036: 'mouseover_state', +8037: 'pressed_state', +8038: 'preferred_height', +8039: 'font_styles', +8040: 'default_font_style', +8041: 'get_font_by_name', +8042: 'line_spacing', +8043: 'name', +8044: 'font_name', +8045: 'font_size', +8046: 'name_style', +8047: 'status_message_style', +8048: 'cancel_button_gap', +8049: 'status_message_indent', +8050: 'cancel_button_style', +8051: 'background_color', +8052: 'text_color', +8053: 'background_color', +8054: 'cursor_color', +8055: 'selected_text_background_color', +8056: 'not_focused_selected_text_background_color', +8057: 'text_color', +8058: 'selected_text_color', +8059: 'font', +8060: 'border', +8061: 'margins', +8062: 'menu_style', +8063: 'activity_indicator_style', +8064: 'background_color', +8065: 'text_color', +8066: 'border', +8067: 'margins', +8068: 'background_color', +8069: 'slider_width', +8070: 'handle_length', +8071: 'border', +8072: 'handle_style', +8073: 'console_text_style', +8074: 'error_text_style', +8075: 'description_text_style', +8076: 'user_input_style', +8077: 'title_text_style', +8078: 'color_styles', +8079: 'font_theme', +8080: 'border_theme', +8081: 'push_button_styles', +8082: 'push_toggle_button_styles', +8083: 'modulatable_push_toggle_button_styles', +8084: 'progress_bar_styles', +8085: 'popup_chooser_styles', +8086: 'tree_styles', +8087: 'accordion_styles', +8088: 'transparent_color', +8089: 'window_style', +8090: 'framed_window_style', +8091: 'tooltip_style', +8092: 'status_bar_style', +8093: 'main_panel_style', +8094: 'menu_style', +8095: 'menu_panel_style', +8096: 'main_menu_bar_style', +8097: 'switch_button_style', +8098: 'checkbox_style', +8099: 'checkbox_in_bright_context_style', +8100: 'fold_button_style', +8101: 'radio_button_style', +8102: 'push_toggle_indicator_button_style', +8103: 'icon_toggle_button_style', +8104: 'button_group_chooser_styles', +8105: 'color_button_style', +8106: 'toolbar_style', +8107: 'classic_scrollbar_style', +8108: 'modern_scrollbar_style', +8109: 'modern_dark_scrollbar_style', +8110: 'slider_style', +8111: 'knob_styles', +8112: 'knob_size_styles', +8113: 'text_field_styles', +8114: 'tag_entry_styles', +8115: 'text_editor_styles', +8116: 'console_input_style', +8117: 'number_field_styles', +8118: 'led_style', +8119: 'tab_selector_style', +8120: 'within_panel_tab_selector_style', +8121: 'preferences_tab_selector_style', +8122: 'popup_insert_tab_selector_style', +8123: 'meter_style', +8124: 'activity_indicator_style', +8125: 'big_activity_indicator_style', +8126: 'background_tasks_indicator_style', +8127: 'background_task_list_style', +8128: 'background_task_style', +8129: 'popup_color_chooser_style', +8130: 'shortcut_mappings_editor_style', +8131: 'dialog_styles', +8132: 'min_char_width', +8133: 'preferred_char_width', +8134: 'max_char_width', +8135: 'text_to_show_when_empty', +8136: 'text_entered', +8137: 'should_word_wrap', +8138: 'min_char_width', +8139: 'preferred_char_width', +8140: 'max_char_width', +8141: 'horiz_text_alignemnt', +8142: 'move_cursor_up', +8143: 'move_cursor_down', +8144: 'move_cursor_and_extend_selection_up', +8145: 'move_cursor_and_extend_selection_down', +8146: 'text_to_show_when_empty', +8147: 'text_entered', +8148: 'text_document', +8149: 'text', +8150: 'should_update_text_on_the_fly', +8151: 'min_char_width', +8152: 'preferred_char_width', +8153: 'max_char_width', +8154: 'style', +8155: 'text_entered', +8156: 'text_document', +8157: 'is_read_only', +8158: 'can_be_selected_when_read_only', +8159: 'style', +8160: 'left_margin', +8161: 'right_margin', +8162: 'cursor_position', +8163: 'cursor_line', +8164: 'cursor_column', +8165: 'has_selection', +8166: 'selection_anchor', +8167: 'delete_prev_char', +8168: 'delete', +8169: 'enter', +8170: 'cut', +8171: 'copy', +8172: 'paste', +8173: 'move_cursor_left', +8174: 'move_cursor_right', +8175: 'move_cursor_to_start_of_document', +8176: 'move_cursor_to_end_of_document', +8177: 'move_cursor_to_start_of_line', +8178: 'move_cursor_to_end_of_line', +8179: 'move_cursor_word_left', +8180: 'move_cursor_word_right', +8181: 'move_cursor_and_extend_selection_left', +8182: 'move_cursor_and_extend_selection_right', +8183: 'move_cursor_and_extend_selection_to_start_of_document', +8184: 'move_cursor_and_extend_selection_to_end_of_document', +8185: 'move_cursor_and_extend_selection_to_start_of_line', +8186: 'move_cursor_and_extend_selection_to_end_of_line', +8187: 'move_cursor_and_extend_selection_word_left', +8188: 'move_cursor_and_extend_selection_word_right', +8189: 'select_word', +8190: 'select_line', +8191: 'select_all', +8192: 'clear_selection', +8193: 'undo', +8194: 'redo', +8195: 'filterable', +8196: 'is_activity_happening', +8197: 'style', +8198: 'value', +8199: 'is_on', +8200: 'style', +8201: 'style', +8202: 'progress', +8203: 'is_waiting', +8204: 'link_location', +8205: 'constraints', +8206: 'is_selected', +8207: 'is_selection_mixed', +8208: 'style', +8209: 'text', +8210: 'icon_name', +8211: 'icon_color_style', +8212: 'icon_frame_color_style', +8213: 'text_color_style', +8214: 'font_style', +8215: 'button_state', +8216: 'action', +8217: 'click_action', +8218: 'can_be_clicked_when_disabled', +8219: 'should_perform_click_on_drag_and_hover', +8220: 'click', +8221: 'clicked', +8222: 'is_indicator_active', +8223: 'modulated_value', +8224: 'should_draw_modulated_value', +8225: 'has_modulations', +8226: 'selected_icon_name', +8227: 'unselected_icon_name', +8228: 'style', +8229: 'handle_state', +8230: 'preferred_length', +8231: 'is_horizontal', +8232: 'value_text', +8233: 'is_ranged', +8234: 'can_adjust_value_with_mouse', +8235: 'min_digits', +8236: 'preferred_digits', +8237: 'is_editing_value', +8238: 'should_show_bar', +8239: 'button_state', +8240: 'horiz_text_alignment', +8241: 'style', +8242: 'size_style', +8243: 'label', +8244: 'is_adjusting', +8245: 'value', +8246: 'is_integer_value', +8247: 'pixel_step_size', +8248: 'should_update_tooltip_from_value_provider', +8249: 'started_adjusting', +8250: 'finished_adjusting', +8251: 'set_to_default_value', +8252: 'handle_state', +8253: 'preferred_length', +8254: 'is_horizontal', +8255: 'modulated_value', +8256: 'normalized_modulated_value', +8257: 'should_draw_modulated_value', +8258: 'is_bipolar', +8259: 'min_value', +8260: 'max_value', +8261: 'normalized_value', +8262: 'allow_text_edit', +8263: 'min_x', +8264: 'max_x', +8265: 'min_y', +8266: 'max_y', +8267: 'text', +8268: 'description', +8269: 'is_highlighted', +8270: 'icon_name', +8271: 'action', +8272: 'icon_color', +8273: 'icon_frame_color', +8274: 'keyboard_shortcut', +8275: 'layout_type', +8276: 'invoke', +8277: 'invoked', +8278: 'is_popup_menu_shown', +8279: 'should_close_when_menu_item_chosen', +8280: 'style', +8281: 'should_perform_click_on_drag_and_hover', +8282: 'name', +8283: 'sub_menu', +8284: 'should_close_popup_menu_when_menu_item_chosen', +8285: 'is_popup_menu_shown', +8286: 'should_recreate_menu_on_click', +8287: 'menu', +8288: 'is_highlighted', +8289: 'is_selected', +8290: 'is_mixed', +8291: 'selected_choice', +8292: 'choices', +8293: 'text', +8294: 'is_chooser_shown', +8295: 'button_state', +8296: 'style', +8297: 'selected_choice', +8298: 'choices', +8299: 'icon_text_mode', +8300: 'allow_no_choice', +8301: 'no_choice_name', +8302: 'style', +8303: 'is_horizontal', +8304: 'style', +8305: 'select_choice_on_drag_and_hover', +8306: 'data_model', +8307: 'title', +8308: 'file_path', +8309: 'displayed_file_path', +8310: 'no_files_selected_text', +8311: 'should_select_directories', +8312: 'can_type_file_path', +8313: 'show_full_path', +8314: 'toolbar', +8315: 'content_widget', +8316: 'color', +8317: 'is_mixed', +8318: 'x_min', +8319: 'x_max', +8320: 'y_min', +8321: 'y_max', +8322: 'dip_margin', +8323: 'color', +8324: 'color', +8325: 'red', +8326: 'green', +8327: 'blue', +8328: 'alpha', +8329: 'hue', +8330: 'saturation', +8331: 'brightness', +8332: 'hex', +8333: 'color', +8334: 'is_horiz_scrollable', +8335: 'is_vert_scrollable', +8336: 'vert_scrollbar_on_left', +8337: 'horiz_scrollbar_on_top', +8338: 'horiz_scrollbar_mode', +8339: 'vert_scrollbar_mode', +8340: 'show_shadow_below_scrollbar', +8341: 'is_horiz_scrollable', +8342: 'is_vert_scrollable', +8343: 'horiz_scrollbar_model', +8344: 'vert_scrollbar_model', +8345: 'can_pan_without_modifiers', +8346: 'should_show_shadows', +8347: 'should_show_shadow_under_scrollbar', +8348: 'minimum_viewport_width', +8349: 'minimum_viewport_height', +8350: 'zoom_in', +8351: 'zoom_out', +8352: 'zoom_to_fit', +8353: 'state', +8354: 'scroll_forwards', +8355: 'scrollbar_model', +8356: 'auto_hide', +8357: 'handle_position', +8358: 'is_user_adjusting', +8359: 'is_horizontal', +8360: 'position', +8361: 'center_position', +8362: 'total_length', +8363: 'visible_length', +8364: 'can_scroll', +8365: 'can_scroll_up_or_left', +8366: 'can_scroll_down_or_right', +8367: 'update_lengths', +8368: 'user_interacted_with_scrollbar', +8369: 'lengths_changed', +8370: 'should_show_horiz_scrollbar_as_overlay', +8371: 'should_show_vert_scrollbar_as_overlay', +8372: 'style', +8373: 'style', +8374: 'is_horizontal', +8375: 'first_widget', +8376: 'second_widget', +8377: 'splitter_width', +8378: 'hidden_splitter_width', +8379: 'resize_mode', +8380: 'quantization_mode', +8381: 'splitter_position', +8382: 'actual_splitter_position', +8383: 'is_first_widget_auto_hideable', +8384: 'is_second_widget_auto_hideable', +8385: 'is_first_widget_hidden', +8386: 'is_second_widget_hidden', +8387: 'started_adjusting', +8388: 'finished_adjusting', +8389: 'columns', +8390: 'column_widgets', +8391: 'tree_style', +8392: 'show_root', +8393: 'row_height', +8394: 'data_model', +8395: 'is_selection_focused', +8396: 'is_vert_expandable', +8397: 'resize_column_widths_to_fit_content', +8398: 'item_selected', +8399: 'item_activated', +8400: 'activate_item_at_cursor', +8401: 'tree_column', +8402: 'tree_column_headers', +8403: 'name', +8404: 'width', +8405: 'weight', +8406: 'minimum_width', +8407: 'preferred_width', +8408: 'maximum_width', +8409: 'index', +8410: 'sort_ascending', +8411: 'header_label_widget', +8412: 'is_visible', +8413: 'alignment', +8414: 'left_margin', +8415: 'right_margin', +8416: 'show_tree', +8417: 'style', +8418: 'expanded_section', +8419: 'title', +8420: 'is_expanded', +8421: 'style', +8422: 'background_task', +8423: 'background_tasks', +8424: 'style', +8425: 'background_task', +8426: 'style', +8427: 'background_tasks', +8428: 'is_task_list_popup_shown', +8429: 'style', +8430: 'show_is_visible_column', +8431: 'show_is_enabled_column', +8432: 'show_focus_state_column', +8433: 'show_data_model_column', +8434: 'show_background_color_column', +8435: 'show_hash_column', +8436: 'show_position_column', +8437: 'show_size_column', +8438: 'show_min_size_column', +8439: 'show_max_size_column', +8440: 'show_preferred_size_column', +8441: 'show_effective_min_size_column', +8442: 'show_effective_max_size_column', +8443: 'show_effective_preferred_size_column', +8444: 'show_width_resize_policy_column', +8445: 'show_height_resize_policy_column', +8446: 'data_model', +8447: 'widget_to_debug', +8448: 'pick_widget_with_mouse_interaction', +8449: 'widget_debugger_state', +8450: 'root_object', +8451: 'settings', +8452: 'value', +8453: 'value', +8454: 'value', +8455: 'value', +8456: 'value', +8457: 'name', +8469: 'is_selected', +8470: 'selected_tag_pill', +8471: 'monitor_preferences', +8472: 'selected_monitor_configuration', +8473: 'current_shortcut', +8474: 'conflicting_shortcut', +8475: 'shortcut_mapping', +8476: 'key_and_modifiers', +8477: 'scaling_factor', +8478: 'monitor_configuration', +8479: 'is_selected', +8480: 'shortcut_preferences_settings', +8481: 'shortcut', +8482: 'text_to_show_when_empty', +8483: 'shortcut_changed', +8484: 'is_showing_notifications', +8485: 'has_notifications', +8486: 'has_active_background_task', +8487: 'has_errors', +8488: 'notification_count', +8489: 'has_been_run', +8490: 'passed', +8491: 'running', +8492: 'is_test_running', +8530: 'audio_port_index', +8531: 'block', +8532: 'is_compressed', +8533: 'channel_count', +8534: 'data', +8535: 'key', +8536: 'src', +8537: 'llvm_ir', +8538: 'constructor_symbol', +8539: 'destructor_symbol', +8540: 'start_symbol', +8541: 'stop_symbol', +8542: 'sizeof_symbol', +8543: 'process_symbol', +8544: 'sample_rate', +8545: 'block_size', +8546: 'fft_order', +8547: 'parent_channel_count', +8548: 'audio_inputs', +8549: 'audio_outputs', +8550: 'event_inputs', +8551: 'event_outputs', +8552: 'description', +8553: 'icon', +8554: 'name', +8555: 'label', +8556: 'is_polyphonic', +8557: 'name', +8558: 'desc', +8559: 'channel_count', +8560: 'index', +8561: 'kind', +8562: 'is_input', +8563: 'is_compressed_mask', +8564: 'is_compressable', +8565: 'event_size', +8566: 'event_type', +8567: 'name', +8568: 'compiler_cache_entry', +8569: 'num_blocks', +8570: 'audio_in', +8571: 'audio_out', +8572: 'event_in', +8573: 'event_out', +8574: 'ev_port_index', +8575: 'block', +8576: 'data', +8577: 'event_size', +8578: 'events_count', +8579: 'sources', +8580: 'selected_source', +8581: 'available_packages', +8582: 'available_package_collections', +8583: 'installed_packages', +8584: 'updatable_packages', +8585: 'is_installing_or_updating_packs', +8586: 'can_install_or_update_packs', +8587: 'cant_install_or_update_packs_message', +8588: 'package_state', +8589: 'package_activity_state', +8590: 'progress', +8591: 'required_packages', +8592: 'name', +8593: 'profile_name', +8594: 'selected_mode_name', +8595: 'selected_mode_index', +8596: 'selected_mode', +8597: 'last_non_temporary_mode', +8598: 'mode_settings', +8599: 'panel_layout_settings', +8600: 'select_next_mode', +8601: 'select_previous_mode', +8602: 'profile_settings', +8603: 'validated_profile_settings', +8604: 'is_arranger_automation_always_shown', +8605: 'is_temporary', +8606: 'mode_layouts', +8607: 'allow_clip_launcher_and_arrangement_split', +8608: 'name', +8609: 'description', +8610: 'icon_name', +8611: 'tooltip', +8612: 'name', +8613: 'description', +8614: 'screen_layouts', +8615: 'modes', +8616: 'temporary_modes', +8617: 'non_temporary_modes', +8618: 'default_mode', +8619: 'can_show_clip_launcher', +8620: 'can_show_big_meters', +8621: 'is_meters_section_shown_by_default', +8622: 'is_io_section_shown_by_default', +8623: 'is_sends_section_shown_by_default', +8624: 'is_clip_launcher_shown_by_default', +8625: 'is_device_chain_shown_by_default', +8626: 'is_clip_launcher_big_height', +8627: 'can_show_empty_panel_area', +8628: 'is_automation_section_visible', +8629: 'includes_automation_section', +8630: 'automation_section_height', +8631: 'panel_layout', +8632: 'applicable_modes', +8633: 'panel_layout', +8634: 'tablet_mode', +8635: 'is_horizontal', +8636: 'first_panel_layout', +8637: 'second_panel_layout', +8638: 'resize_mode', +8639: 'splitter_width', +8640: 'default_splitter_position', +8641: 'contents_mode', +8642: 'source_domain', +8643: 'arranger_source_domain', +8644: 'choices', +8645: 'default_choice_index', +8646: 'is_choice_remembered_separately_for_each_mode', +8647: 'can_be_hidden', +8648: 'is_shown_by_default', +8649: 'should_show_toggle_button_on_left_side', +8650: 'should_show_toggle_as_separate_section', +8651: 'can_be_hidden_due_to_window_size', +8652: 'show_only_cursor_track', +8653: 'temporary_main_panel', +8654: 'document', +8655: 'style', +8656: 'filter_type', +8657: 'selected_file_or_file_item_reference', +8658: 'selected_file_reference', +8659: 'chain', +8660: 'are_meters_visible', +8661: 'automation_type', +8662: 'absolute_icon_name', +8663: 'additive_icon_name', +8664: 'multiplicative_icon_name', +8665: 'has_absolute_automation', +8666: 'has_additive_automation', +8667: 'has_multiplicative_automation', +8668: 'automation_sequence', +8669: 'remote_controls_page', +8670: 'slot_count', +8671: 'remote_controls', +8672: 'is_editing', +8673: 'document', +8674: 'file_preview_player', +8675: 'buffer', +8676: 'scenes', +8677: 'drum_pads', +8678: 'scroll_position', +8679: 'visible_columns', +8680: 'visible_rows', +8681: 'filter_column', +8682: 'is_previewing_clip_deletion', +8683: 'should_save_devices', +8684: 'note_sequence', +8685: 'select_next_tab', +8686: 'select_previous_tab', +8687: 'restart_script', +8688: 'channel', +8689: 'action', +8690: 'is_selected', +8691: 'timeline', +8692: 'modulation_mapping', +8693: 'window_group', +8694: 'screen_index', +8695: 'new_document_action', +8696: 'new_document_from_template_action', +8697: 'open_action', +8698: 'connect_to_remote_document_action', +8699: 'close_action', +8700: 'quit_action', +8701: 'preferences_action', +8702: 'control_script_console_action', +8703: 'show_package_manger_action', +8704: 'show_dsp_performance_graph_action', +8705: 'show_control_surface_guide_action', +8706: 'show_control_surface_api_reference_action', +8707: 'show_online_support_action', +8708: 'show_questions_and_answers_action', +8709: 'open_upgrade_url_action', +8710: 'new_document', +8711: 'open', +8712: 'close', +8713: 'connect_to_remote_document', +8714: 'quit', +8715: 'show_preferences', +8716: 'show_control_script_console', +8717: 'toggle_fullscreen', +8718: 'show_package_manger', +8719: 'show_dsp_performance_graph', +8720: 'show_control_surface_guide', +8721: 'show_control_surface_api_reference', +8722: 'show_online_support', +8723: 'show_questions_and_answers', +8724: 'open_upgrade_url', +8725: 'note_sequence', +8726: 'scene', +8727: 'top_level_automation_sequence', +8728: 'device', +8729: 'is_selected', +8730: 'is_cursor', +8731: 'is_device_enabled', +8732: 'is_device_active', +8733: 'is_being_hot_swapped', +8734: 'device_selection_has_focus', +8735: 'count', +8736: 'color', +8737: 'is_selected', +8738: 'device_chain_meter', +8739: 'is_playing', +8740: 'audio_bus', +8741: 'value', +8742: 'offset', +8743: 'min_bound', +8744: 'max_bound', +8745: 'track', +8746: 'bounce_options', +8747: 'display_component', +8748: 'selected_file_result', +8749: 'port', +8750: 'modulator', +8751: 'label_component', +8752: 'panel', +8753: 'width_in_grid_units', +8754: 'height_in_grid_units', +8755: 'is_beyond_limits', +8756: 'control_surface', +8757: 'control_surface_settings', +8758: 'driver_definition', +8759: 'value', +8760: 'modulated_value', +8761: 'has_modulations', +8762: 'navigate_back', +8763: 'audio_device_configuration', +8764: 'hide_clip_headers_except_cursor', +8765: 'serial', +8766: 'clip_timeline', +8767: 'module', +8768: 'panel', +8769: 'remote_control', +8770: 'atom', +8771: 'oscillator_atom', +8772: 'panel', +8773: 'filter_section', +8774: 'note_lane_height', +8775: 'component', +8776: 'automation_lane', +8777: 'is_editing_enabled', +8778: 'editor_height', +8779: 'resize_handle_size', +8780: 'should_clip', +8781: 'zone', +8782: 'is_selection_focused', +8783: 'note_sequence', +8784: 'document_to_save', +8785: 'should_embed_project_files', +8786: 'should_embed_external_files', +8787: 'should_embed_packaged_files', +8788: 'automation_sequence', +8789: 'is_right_side', +8790: 'show_values', +8791: 'note_sequence', +8792: 'document', +8793: 'export_audio_settings', +8794: 'effect_channel', +8795: 'audio_io_device', +8796: 'multisample_resource', +8797: 'eula_text', +8798: 'device', +8799: 'save', +8800: 'track_group', +8801: 'track_scroll_position', +8802: 'show_only_cursor_track', +8803: 'atom', +8804: 'display_input_min', +8805: 'display_input_max', +8806: 'display_output_min', +8807: 'display_output_max', +8808: 'engine_level_min', +8809: 'engine_level_max', +8810: 'available_package', +8811: 'track_group', +8812: 'left_stroke_width', +8813: 'right_stroke_width', +8814: 'top_stroke_width', +8815: 'bottom_stroke_width', +8816: 'nested_device_chain', +8817: 'is_selected', +8818: 'is_selection_focused', +8819: 'is_cursor', +8820: 'document', +8821: 'track_group', +8822: 'editor_selection', +8823: 'should_show_overview', +8824: 'drum_pad', +8825: 'drum_device_chain', +8826: 'is_showing_chain_contents', +8827: 'is_cursor', +8828: 'is_selected', +8829: 'is_dropping_onto', +8830: 'key_name', +8831: 'color', +8832: 'grid', +8833: 'device', +8834: 'preview_device', +8835: 'document', +8836: 'filter_type', +8837: 'browsing_session', +8838: 'is_browser_minimized', +8839: 'is_browser_maximized', +8840: 'file_preview_player', +8841: 'can_current_file_be_previewed', +8842: 'programming_language', +8843: 'driver_name', +8844: 'driver_vendor', +8845: 'driver_version', +8846: 'driver_author', +8847: 'num_midi_in_ports', +8848: 'num_midi_out_ports', +8849: 'java_class_name', +8850: 'java_package_name', +8851: 'maven_group_id', +8852: 'maven_artifact_id', +8853: 'is_java_driver', +8854: 'field', +8855: 'term', +8856: 'device', +8857: 'is_selected', +8858: 'is_cursor', +8859: 'is_device_enabled', +8860: 'is_device_active', +8861: 'device_selection_has_focus', +8862: 'selected_parameter', +8863: 'file_metadata', +8864: 'clip_properties', +8865: 'sample_resource', +8866: 'slot_or_scene', +8867: 'is_selected', +8868: 'is_cursor', +8869: 'slot_selection_has_focus', +8870: 'layer_selection', +8871: 'source_cursor', +8872: 'top_level_sequence', +8873: 'is_selection_focused', +8874: 'is_selected', +8875: 'is_cursor', +8876: 'selection_has_focus', +8877: 'is_settings_menu_shown', +8878: 'onscreen_keyboard_mode', +8879: 'root_key', +8880: 'value_type', +8881: 'control_atom', +8882: 'slice_operation', +8883: 'nested_device_chain_container', +8884: 'should_follow_arranger_playhead', +8885: 'available_package', +8886: 'onscreen_keyboard_mode', +8887: 'root_key', +8888: 'quantize_press', +8889: 'quantize_update', +8890: 'pixels_per_key', +8891: 'note_observer_atom', +8892: 'track_to_monitor', +8893: 'is_selection_focused', +8894: 'top_level_sequence', +8895: 'snap_time', +8896: 'clip_timeline', +8897: 'sampler_resource_component', +8898: 'polyphonic_observer', +8899: 'document_wrapper', +8900: 'beat_grid', +8901: 'top_level_sequence', +8902: 'note_sequence', +8903: 'time_per_DIP', +8904: 'time_per_pixel', +8905: 'timeline_scroll_position', +8906: 'playhead_position', +8907: 'search_session', +8908: 'track_group', +8909: 'editor_selection', +8910: 'top_level_sequence', +8911: 'is_queued', +8912: 'is_active', +8913: 'source', +8914: 'should_show_title', +8915: 'nested_device_chain', +8916: 'is_selected', +8917: 'has_content', +8918: 'label', +8919: 'container_item', +8920: 'channel', +8921: 'document_wrapper', +8922: 'dips_per_value', +8923: 'pixels_per_value', +8924: 'scroll_position', +8925: 'is_bipolar', +8926: 'track_group', +8927: 'is_selection_focused', +8928: 'selected_file_path', +8929: 'automation_sequence', +8930: 'track', +8931: 'is_relevant', +8932: 'note_sequence', +8933: 'window_widget', +8934: 'item', +8936: 'scene', +8937: 'editor_selection', +8938: 'panel', +8939: 'cursor', +8940: 'filter_column', +8941: 'editor_selection', +8942: 'vu_meter_atom', +8943: 'text', +8944: 'selection', +8945: 'track', +8946: 'atom_reference', +8947: 'root_folder_result', +8948: 'selected_folder_result', +8949: 'is_showing_arranger_time', +8950: 'top_level_sequence', +8951: 'transport', +8952: 'beat_grid', +8953: 'time_per_DIP', +8954: 'time_per_pixel', +8955: 'min_content_time', +8956: 'max_content_time', +8957: 'pixel_margin', +8958: 'is_grid_shown', +8959: 'cue_marker_timeline', +8960: 'is_selection_focused', +8961: 'should_show_insert_preview_time', +8962: 'insert_preview_time', +8963: 'profile', +8964: 'screen_index', +8965: 'document_wrapper', +8966: 'active_selection', +8967: 'inspector_selection', +8968: 'active_editor_selection', +8969: 'active_selection_kind', +8970: 'currently_mapping_modulation_source', +8971: 'currently_mapping_remote_controls_page', +8972: 'currently_mapping_remote_control_slot_index', +8973: 'save_action', +8974: 'collect_and_save_action', +8975: 'save_as_action', +8976: 'save_as_template_action', +8977: 'undo_action', +8978: 'redo_action', +8979: 'create_instrument_track_action', +8980: 'create_audio_track_action', +8981: 'create_effect_track_action', +8982: 'create_group_track_action', +8983: 'create_scene_action', +8984: 'toggle_transport_action', +8985: 'export_audio_action', +8986: 'export_midi_action', +8987: 'next_mode_action', +8988: 'previous_mode_action', +8989: 'toggle_arranger_cue_marker_visibility_action', +8990: 'toggle_time_signature_marker_visibility_action', +8991: 'are_effect_tracks_shown', +8992: 'save_as', +8993: 'save', +8994: 'collect_and_save', +8995: 'save_as_template', +8996: 'undo', +8997: 'redo', +8998: 'create_instrument_track', +8999: 'create_audio_track', +9000: 'create_effect_track', +9001: 'create_group_track', +9002: 'create_scene', +9003: 'play_transport', +9004: 'toggle_transport', +9005: 'export_audio', +9006: 'export_midi', +9007: 'select_next_mode', +9008: 'select_previous_mode', +9009: 'select_next_sub_panel', +9010: 'select_prev_sub_panel', +9011: 'select_next_track', +9012: 'select_prev_track', +9013: 'focus_track_header_area', +9014: 'toggle_arranger_cue_marker_visibility', +9015: 'toggle_time_signature_marker_visibility', +9016: 'window_group', +9017: 'buffer', +9018: 'plugin_management_preferences', +9019: 'items', +9020: 'should_all_plugins_be_run_in_separate_process', +9021: 'limitation_state', +9022: 'value', +9023: 'template_name', +9024: 'template_description', +9025: 'template_author', +9026: 'template_url', +9027: 'template_creation_date', +9028: 'should_show_onsets', +9029: 'is_editing_multiple_layers', +9030: 'navigate_back', +9031: 'continue', +9032: 'index_in_group', +9033: 'are_meters_visible', +9034: 'includes_automation_section', +9035: 'is_automation_section_visible', +9036: 'automation_section_height', +9037: 'track', +9038: 'dips_per_pitch', +9039: 'pixels_per_pitch', +9040: 'search_session', +9041: 'selected_file', +9042: 'multisample_resource', +9043: 'selected_monitor_configuration', +9044: 'num_connected_monitors', +9045: 'is_in_touch_mode', +9046: 'device', +9047: 'text', +9048: 'is_clip_launcher_big_height', +9049: 'device', +9050: 'value', +9051: 'offset', +9052: 'min', +9053: 'max', +9054: 'default', +9055: 'multisample', +9056: 'top_level_sequence', +9057: 'track', +9058: 'is_showing_arranger_time', +9059: 'top_level_sequence', +9060: 'is_selection_focused', +9061: 'pitch_grid_settings', +9062: 'tonal_space', +9063: 'is_micro_pitch_editing_in_piano_roll_enabled', +9064: 'top_level_automation_sequence', +9065: 'audio_lane_scroll_position', +9066: 'is_selection_focused', +9067: 'nested_device_chain', +9068: 'atom', +9069: 'selector', +9070: 'is_selection_focused', +9071: 'value', +9072: 'error_message', +9073: 'navigate_back', +9074: 'authenticated', +9075: 'grid', +9076: 'num_columns', +9077: 'is_selection_focused', +9078: 'track_group', +9079: 'clip', +9080: 'is_preview', +9081: 'navigate_back', +9082: 'continue', +9083: 'lookup_table_atom', +9084: 'tonal_space', +9085: 'document_wrapper', +9086: 'style', +9087: 'window_group', +9088: 'is_selected', +9089: 'is_editing_mappings', +9090: 'documents_to_recover', +9091: 'filter_section', +9092: 'window_widget', +9093: 'device', +9094: 'panel', +9095: 'track_group', +9096: 'is_automation_editor', +9097: 'label', +9098: 'value_x', +9099: 'value_y', +9100: 'offset_x', +9101: 'offset_y', +9102: 'gain_x', +9103: 'gain_y', +9104: 'min_x', +9105: 'max_x', +9106: 'min_y', +9107: 'max_y', +9108: 'default_x', +9109: 'default_y', +9110: 'modulated_x', +9111: 'modulated_y', +9112: 'modulated_offset_x', +9113: 'modulated_offset_y', +9114: 'modulated_gain_x', +9115: 'modulated_gain_y', +9116: 'interpolation_parameter', +9117: 'plugin_exceptions_list', +9118: 'page', +9119: 'slot_index', +9120: 'choice_index', +9121: 'tab_bar_position', +9122: 'tab_bar_alignment', +9123: 'show_note_off_velocity', +9124: 'is_playing', +9125: 'clip', +9126: 'timeline', +9127: 'playback_position', +9129: 'track_group', +9130: 'is_master_track_editing_enabled', +9131: 'is_meta_clip_editing_enabled', +9132: 'drum_pads', +9133: 'rows', +9134: 'columns', +9135: 'pad_width', +9136: 'pad_height', +9137: 'first_pad_play_note', +9138: 'is_selection_focused', +9139: 'bounce_options', +9140: 'chain_list', +9141: 'is_selection_focused', +9142: 'document_wrapper', +9143: 'panel', +9144: 'track', +9145: 'selected_audio_expression', +9146: 'pixels_per_value', +9147: 'device_chain', +9148: 'is_selection_focused', +9149: 'device', +9150: 'document_wrapper', +9151: 'source_domain_index', +9152: 'source_domain', +9153: 'arranger_source_domain', +9154: 'toggle_track_vs_clip_content_editing_action', +9155: 'toggle_track_vs_clip_content_editing', +9156: 'component', +9157: 'program', +9158: 'is_selected', +9159: 'nested_device_chain', +9160: 'is_selection_focused', +9161: 'document', +9162: 'selected_file_location', +9163: 'file_activated', +9164: 'track', +9165: 'resource', +9166: 'is_horizontal', +9167: 'login', +9168: 'activate_offline', +9169: 'run_demo', +9170: 'quit', +9171: 'send_channel', +9172: 'is_pre_fader', +9173: 'document', +9174: 'view_settings', +9175: 'packages_to_install_for_missing_files', +9176: 'has_packages_to_install_for_missing_files', +9177: 'selected_file', +9178: 'send_group', +9179: 'note_sequence', +9180: 'device', +9181: 'page', +9182: 'is_selected', +9183: 'should_show_ninth_slot', +9184: 'selected_file_info', +9185: 'hide_clip_headers_except_cursor', +9186: 'steps_to_show', +9187: 'file_metadata', +9188: 'style', +9189: 'is_expanded', +9190: 'value', +9191: 'modulated_value', +9192: 'has_modulations', +9193: 'top_level_sequence', +9194: 'layer_item', +9195: 'title', +9196: 'color', +9197: 'is_editable', +9198: 'insertion_layer', +9199: 'is_selected', +9200: 'is_insertion_layer', +9201: 'resource', +9202: 'is_selection_focused', +9203: 'is_editable', +9204: 'grid', +9205: 'control_surface_input', +9206: 'send', +9207: 'document_share_settings', +9208: 'device', +9209: 'track', +9210: 'frame_color', +9211: 'is_selected', +9212: 'is_cursor', +9213: 'selection_has_focus', +9214: 'selection_properties', +9215: 'time_signature', +9216: 'device_contents', +9217: 'is_editing_active', +9218: 'is_selection_focused', +9219: 'is_automated', +9220: 'is_playing_clip_automation', +9221: 'is_manual_override', +9222: 'label', +9223: 'is_mapping_modulation', +9224: 'automation_lane_resize_handle_size', +9225: 'should_clip_automation_lanes', +9226: 'hit_count', +9227: 'is_searching', +9228: 'channel', +9229: 'track_or_track_group', +9230: 'is_effective', +9231: 'peak_value', +9232: 'bar_value', +9233: 'overload', +9234: 'muted', +9235: 'current_package', +9236: 'search_string', +9237: 'should_collect_external_files', +9238: 'should_collect_packaged_files', +9239: 'port', +9240: 'port_color_style', +9241: 'remote_control', +9242: 'is_edit_mode', +9243: 'is_editing_remote_control', +9244: 'automation_lane', +9245: 'is_recording', +9246: 'sample_reference', +9247: 'document_name', +9248: 'project_dir_path', +9249: 'should_recover', +9250: 'bounce_operation', +9251: 'is_being_mapped', +9252: 'note_sequence', +9253: 'zone', +9254: 'is_cursor', +9255: 'is_selected', +9256: 'zone_selection_has_focus', +9257: 'module_rack', +9258: 'is_selection_focused', +9259: 'modulation_source', +9260: 'note_led_atom', +9261: 'title', +9262: 'show_title', +9263: 'is_showing_detail_panel', +9264: 'automation_sequence', +9265: 'metadata_field', +9266: 'inspected_selection', +9267: 'inspected_properties', +9268: 'should_run_in_separate_process', +9269: 'plugin_name', +9270: 'columns', +9271: 'parameters', +9272: 'remote_controls', +9273: 'remote_controls_page', +9274: 'is_clip_launcher_big_height', +9275: 'document_wrapper', +9276: 'note_sequence', +9277: 'has_note_output', +9278: 'has_audio_output', +9279: 'profile', +9280: 'current_document_wrapper', +9281: 'windows', +9282: 'is_shown', +9283: 'next_document_action', +9284: 'previous_document_action', +9285: 'select_next_document', +9286: 'select_previous_document', +9287: 'has_queued_start_position', +9288: 'module', +9289: 'metadata_field', +9290: 'nitro_atom', +9291: 'note_sequence', +9292: 'track', +9293: 'is_editing_active', +9294: 'page_group', +9295: 'is_selection_focused', +9296: 'value_q', +9297: 'modulated_q', +9298: 'filter_type', +9299: 'preferences', +9300: 'file_reference', +9301: 'is_selected', +9302: 'playback_position', +9303: 'is_input', +9304: 'device_contents', +9305: 'package_manager', +9306: 'vu_meter_atom', +9307: 'is_muted', +9308: 'channel_area_thickness', +9309: 'channel_gap', +9310: 'has_border_around_individual_meters', +9311: 'should_show_meter_for_track_source', +9312: 'is_output', +9313: 'filter_section', +9314: 'upper_text', +9315: 'lower_text', +9316: 'center_text', +9317: 'upper_icon_name', +9318: 'lower_icon_name', +9319: 'show_ticks', +9320: 'x_min', +9321: 'x_max', +9322: 'y_min', +9323: 'y_max', +9324: 'are_meters_visible', +9325: 'note_sequence', +9326: 'is_piano_roll_section_visible', +9327: 'is_drum_section_visible', +9328: 'is_audio_section_visible', +9329: 'is_parameter_section_visible', +9330: 'track_group', +9331: 'is_queued', +9332: 'snap_settings', +9333: 'is_adaptive', +9334: 'snap_to_objects', +9335: 'snap_absolute', +9336: 'snap_relative', +9337: 'fixed_grid_order', +9338: 'adaptive_grid_order', +9339: 'effective_grid_order', +9340: 'grid_subdivision_id', +9341: 'audio_io_device', +9342: 'connection', +9343: 'arrangement_timeline', +9344: 'example_panel_item', +9345: 'filter_column_result', +9346: 'document', +9347: 'has_missing_files', +9348: 'is_clip_launcher_shown', +9349: 'is_arranger_overview_shown', +9350: 'module', +9351: 'document', +9352: 'file_metadata', +9353: 'document', +9354: 'selected_file_location', +9355: 'clip', +9356: 'is_preview', +9357: 'is_recording', +9358: 'oscilloscope_atom', +9359: 'automation_lane', +9360: 'parameter', +9361: 'channel', +9362: 'drum_device_chain', +9363: 'midi_io_device', +9364: 'preview_loop_region', +9365: 'remote_controls', +9366: 'scene_scroll_position', +9367: 'are_meters_visible', +9368: 'has_space_to_show_meters', +9369: 'is_clip_launcher_visible', +9370: 'has_space_to_show_clip_launcher', +9371: 'is_sends_section_visible', +9372: 'has_space_to_show_sends', +9373: 'has_space_to_show_crossfades', +9374: 'is_io_section_visible', +9375: 'has_space_to_show_io', +9376: 'is_device_chain_section_visible', +9377: 'has_space_to_show_devices', +9378: 'is_crossfade_section_visible', +9379: 'control_section_height', +9380: 'is_clip_launcher_big_height', +9381: 'slot_or_scene', +9382: 'device', +9383: 'generic_module', +9384: 'nitro_atom', +9385: 'search_session', +9386: 'used_plugin', +9387: 'playback_position', +9388: 'paint_bottom_border', +9389: 'time', +9390: 'time_per_pixel', +9391: 'is_upper_region_boundary', +9392: 'handle_width', +9393: 'device_contents', +9394: 'device_contents', +9395: 'search_session', +9396: 'modulation_mapping', +9397: 'background_color', +9398: 'object_color', +9399: 'polyphonic_object_color', +9400: 'port_color', +9401: 'audio_connection_color', +9402: 'event_connection_color', +9403: 'desktop_object_border', +9404: 'content_style', +9405: 'header_style', +9406: 'background_color', +9407: 'border_style', +9408: 'arm_button_style', +9409: 'mute_button_style', +9410: 'solo_button_style', +9411: 'track_group_fold_button_style', +9412: 'input_chooser_style', +9413: 'output_chooser_style', +9414: 'automation_lane_style', +9415: 'activation_dialog_style', +9416: 'about_dialog_style', +9417: 'package_manager_dialog_style', +9418: 'preferences_dialog_style', +9419: 'multi_sample_editor_dialog_style', +9420: 'popup_browser_dialog_style', +9421: 'device_mapping_editor_dialog_style', +9422: 'device_editor_dialog_style', +9423: 'preferences_tab_selector_text_style', +9424: 'main_panel_close_button_style', +9425: 'preferences_tab_content_style', +9426: 'preferences_section_style', +9427: 'tree_style', +9428: 'widget_theme', +9429: 'play_button_style', +9430: 'play_button_size', +9431: 'search_field_style', +9432: 'background_color', +9433: 'inactive_background_color', +9434: 'text_color', +9435: 'category_text_color', +9436: 'sected_action_frame_color', +9437: 'action_name_font', +9438: 'category_name_font', +9439: 'shortcut_font', +9440: 'action_row_height', +9441: 'opacity', +9442: 'text_color', +9443: 'automation_chooser_style', +9444: 'device_name_font_style', +9445: 'parameter_name_font_style', +9446: 'show_all_lanes_style', +9447: 'show_favorites_only_style', +9448: 'favorite_style', +9449: 'locked_style', +9450: 'pin_lane_style', +9451: 'add_lane_style', +9452: 'delete_automation_style', +9453: 'filled_automation_selector_style', +9454: 'empty_automation_selector_style', +9455: 'track_automation_color', +9456: 'clip_automation_color', +9457: 'add_modulation_color', +9458: 'multiply_modulation_color', +9459: 'snap_color', +9460: 'toggle_button_style', +9461: 'popup_button_style', +9462: 'adaptive_grid_field_style', +9463: 'fixed_grid_field_style', +9464: 'adaptive_subdivision_grid_field_style', +9465: 'fixed_subdivision_grid_field_style', +9466: 'preview_button_style', +9467: 'play_in_tempo_button_style', +9468: 'normal_track_style', +9469: 'selected_track_style', +9470: 'standby_selected_track_style', +9471: 'show_automation_button_style', +9472: 'normal_cue_marker_style', +9473: 'selected_cue_marker_style', +9474: 'top_level_background_color', +9475: 'light_background_color', +9476: 'light_irrelevant_background_color', +9477: 'dark_background_color', +9478: 'tooltip_background_color', +9479: 'tooltip_text_color', +9480: 'tooltip_border', +9481: 'background_pattern_color', +9482: 'irrelevant_overlay_color', +9483: 'grid_color', +9484: 'sub_grid_color', +9485: 'cue_marker_color', +9486: 'text_color', +9487: 'insert_preview_time_color', +9488: 'time_selection_cursor_stroke_color', +9489: 'time_selection_standby_cursor_stroke_color', +9490: 'time_selection_fill_color', +9491: 'time_selection_standby_fill_color', +9492: 'time_selection_across_all_lanes_fill_color', +9493: 'time_selection_border_color', +9494: 'time_selection_standby_border_color', +9495: 'time_selection_across_all_lanes_border_color', +9496: 'selected_time_selection_style', +9497: 'implicitly_selected_time_selection_style', +9498: 'not_selected_time_selection_style', +9499: 'inactive_time_selection_style', +9500: 'standby_time_selection_style', +9501: 'loop_region_background_color', +9502: 'border_style', +9503: 'control_panel_style', +9504: 'background_color', +9505: 'text_color', +9506: 'border_style', +9507: 'margins', +9508: 'fold_button_style', +9509: 'stroke_color', +9510: 'fill_color', +9511: 'background_color', +9512: 'text_color', +9513: 'separator_line_color', +9514: 'missing_icon_color', +9515: 'version_conflict_icon_color', +9516: 'ok_icon_color', +9517: 'filter_chooser_style', +9518: 'replace_button_style', +9519: 'background_color', +9520: 'text_color', +9521: 'close_button_style', +9522: 'package_title_text_style', +9523: 'package_title_text_color', +9524: 'package_info_text_style', +9525: 'package_info_text_color', +9526: 'list_style', +9527: 'row_height', +9528: 'install_button_style', +9529: 'installed_button_style', +9530: 'update_button_style', +9531: 'pause_button_style', +9532: 'resume_button_style', +9533: 'description_text_style', +9534: 'close_button_style', +9535: 'refresh_button_style', +9536: 'tab_selector_style', +9537: 'list_border_style', +9538: 'details_border_style', +9539: 'downloading_progress_bar_style', +9540: 'installing_progress_bar_style', +9541: 'package_link_button_style', +9542: 'package_vendor_link_button_style', +9543: 'stroke_color', +9544: 'fill_color', +9545: 'line_width', +9546: 'normal_loop_region_style', +9547: 'selected_loop_region_style', +9548: 'in_project_dir_state_style', +9549: 'external_state_style', +9550: 'missing_state_style', +9551: 'mute_button_style', +9552: 'solo_button_style', +9553: 'material_chooser_style', +9554: 'background_color', +9555: 'border_style', +9556: 'fill_color', +9557: 'stroke_color', +9558: 'should_use_hls_fill_operator', +9559: 'background_color', +9560: 'title_font', +9561: 'title_text_color', +9562: 'normal_audio_note_lane_style', +9563: 'selected_audio_note_lane_style', +9564: 'standby_selected_audio_note_lane_style', +9565: 'layers_tree_style', +9566: 'normal_layer_style', +9567: 'selected_layer_style', +9568: 'standby_selected_layer_style', +9569: 'settings_background_color', +9570: 'settings_border', +9571: 'cursor_text_color', +9572: 'cursor_font_style', +9573: 'expression_color', +9574: 'expression_button_group_chooser_style', +9575: 'expression_button_style', +9576: 'expression_chooser_style', +9577: 'hybrid_chooser_style', +9578: 'normal_point_style', +9579: 'selected_point_style', +9580: 'edit_point_style', +9581: 'preview_point_style', +9582: 'tiny_point_style', +9583: 'normal_curve_style', +9584: 'edit_curve_style', +9585: 'text_color', +9586: 'background_color', +9587: 'border', +9588: 'gradient_amount', +9589: 'gradient_scale', +9590: 'gradient_curveness', +9591: 'lock_checkbox_style', +9592: 'visibility_checkbox_style', +9593: 'insertion_checkbox_style', +9594: 'timeline_styles', +9595: 'value_event_timeline_styles', +9596: 'arranger_panel_style', +9597: 'mixer_panel_style', +9598: 'browser_style', +9599: 'used_plugins_style', +9600: 'detail_editor_style', +9601: 'main_tool_bar_style', +9602: 'inspector_style', +9603: 'matrix_cell_style', +9604: 'float_document_selector_style', +9605: 'float_device_editor_style', +9606: 'media_manager_style', +9607: 'file_info_area_style', +9608: 'file_preview_player_style', +9609: 'package_manager_style', +9610: 'arranger_cue_marker_timeline_style', +9611: 'invoke_action_style', +9612: 'snap_settings_style', +9613: 'limitations_exceeded_menu_style', +9614: 'track_group_master_slots_toggle_button_style', +9615: 'pre_send_knob_style', +9616: 'post_send_knob_style', +9617: 'nested_pre_send_knob_style', +9618: 'nested_post_send_knob_style', +9619: 'stroke_color', +9620: 'fill_color', +9621: 'size', +9622: 'status_icon_name', +9623: 'status_icon_color', +9624: 'text_color', +9625: 'background_color', +9626: 'border_style', +9627: 'push_button_style', +9628: 'push_toggle_button_style', +9629: 'current_atom_value_style', +9630: 'track_automation_style', +9631: 'clip_automation_style', +9632: 'clip_modulation_style', +9633: 'note_expression_style', +9634: 'list_style', +9635: 'filter_chooser_style', +9636: 'unselected_file_reference_style', +9637: 'selected_file_reference_style', +9638: 'find_file_button_style', +9639: 'replace_button_style', +9640: 'files_to_transfer', +9641: 'num_files_being_transferred', +9642: 'max_number_of_simultaneous_transfers', +9643: 'host', +9644: 'port', +9645: 'remote_URL', +9646: 'name', +9647: 'is_being_transferred', +9648: 'amount_transferred', +9649: 'file_length', +9650: 'start_transfer', +9651: 'engine_lookup_id', +9652: 'is_compiling_nitro', +9653: 'cycle_next_value', +9654: 'cycle_prev_value', +9655: 'get_parent_clip', +9656: 'get_parent_note', +9657: 'is_maximized_panel_shown', +9663: 'transient_rate', +9664: 'transient_rate', +9665: 'should_auto_select_finished_tests', +9666: 'is_device_window_size_known', +9667: 'device_id_to_select_when_found_string', +9668: 'is_audio_device_open', +9669: 'engine_opened_audio_device', +9670: 'engine_failed_to_open_audio_device', +9671: 'currently_displayed_modulation_source', +9672: 'currently_displayed_modulation_source', +9673: 'engine_closed_audio_device', +9674: 'is_displaying_modulation', +9675: 'warp_tail_mode', +9676: 'warp_tail_mode', +9677: 'should_debug_engine', +9678: 'is_device_window_pinned', +9679: 'dips_per_value', +9681: 'playback_stop_after_duration', +9682: 'has_device_window_been_undocked', +9684: 'can_be_docked', +9685: 'is_device_enabled', +9686: 'is_device_active', +9687: 'device_window_screen_index', +9689: 'parallel_voice_processing', +9694: 'simulate_error_on_recording_audio', +9695: 'error_writing_audio_file', +9698: 'reverse_zoom_direction', +9699: 'error_simulation_mode', +9700: 'error_writing_audio_file', +9701: 'should_update_play_start_marker_from_clip_and_time_selection', +9703: 'loaded_file_tempo', +9704: 'owned_file_preview_players', +9705: 'sample_rate', +9719: 'elastique_track_count', +9720: 'elastique_eco_track_count', +9721: 'elastique_pro_track_count', +9722: 'elastique_solo_track_count', +9800: 'set_document_value_from_engine', +9801: 'set_document_value_from_engine', +9802: 'set_document_value_from_engine', +9803: 'set_document_value_from_engine', +10000: 'is_input_device', +} \ No newline at end of file diff --git a/src/lib/luts/backupObjects.py b/src/lib/luts/backupObjects.py new file mode 100644 index 0000000..7638cf8 --- /dev/null +++ b/src/lib/luts/backupObjects.py @@ -0,0 +1,2908 @@ +bobjs = { + + + + + + + + +10: 'object', + + + + +15: 'UUID', +16: 'track_audio_destination', +17: 'desktop_settings', +18: 'sync_int32_value_change_request', +19: 'file_reference', +20: 'protocol_value', +21: 'enum_value_protocol_value', +22: 'clip_event_timeline', +23: 'error_value', +24: 'time', +25: 'enduring_event', +26: 'media_port', +27: 'sync_string_value_change_request', +28: 'engine_object', +29: 'remove_item_change_request', +30: 'void_protocol_value', +31: 'double_array_protocol_value', +32: 'UUID_protocol_value', +33: 'numeric_value_type', +34: 'sync_bool_value_change_request', +35: 'bool_value_change_request', +36: 'equal_tempered_tuning', +37: 'biquad_port', +38: 'insert_item_with_id_change_request', +39: 'device_chain_display_settings', +40: 'vu_meter_atom', +41: 'instrument_note_content_timeline', +42: 'machine_specific_file_location', +43: 'int64_value_change_request', +44: 'note_event', +45: 'atom_reference', +46: 'float_document', +47: 'int64_array_value_change_request', +48: 'int64_protocol_value', +49: 'source_io_bus', +50: 'GrahpicsOutput', +51: 'device_chain_preset', +52: 'list_protocol_value', +53: 'sync_enum_value_change_request', +54: 'parameter_timelines', +55: 'byte_array_value_change_request', +56: 'sync_int64_array_value_change_request', +57: 'trigger_port', +58: 'double_array_value_change_request', +59: 'note_destination', + +61: 'note_port', +62: 'set_pointer_value_from_data_change_request', +63: 'attribute_value_change_request', +64: 'native_device_preset', + +66: 'instrument_note_event_timeline', +67: 'warp_event', +68: 'conversation', +69: 'bool_array_value_change_request', +70: 'trigger_led_atom', +71: 'instrument_note_clip_event', +72: 'generic_module', +73: 'int32_value_change_request', + +75: 'automation_event_timeline', +76: 'note_clip_content_timeline', +77: 'integer_value', +78: 'sync_int16_array_value_change_request', +79: 'media_ref_value_type', +80: 'sound_port', +81: 'pointer_protocol_value', +82: 'note_clip_event_timeline', +83: 'audio_source', +84: 'insert_item_from_JSON_data_change_request', +85: 'sync_set_pointer_value_to_null_change_request', +86: 'insert_item_change_request', +87: 'boolean_value_atom', +88: 'loop_region', +89: 'sync_string_array_value_change_request', +90: 'sync_invoke_operation_request', +91: 'int16_array_protocol_value', +92: 'continuous_parameter_port', +93: 'sync_byte_array_value_change_request', +94: 'sync_int32_array_value_change_request', +95: ' Unselected Lock/Visibility Button Icon Color in Cursor Layer', +96: 'time_signature_event', +97: 'component', +98: 'boolean_port', +99: 'queued_matrix_action', +100: 'numeric_value', +101: 'device_atom_reference', +102: 'instrument_note_event', +103: 'server_side_request', +104: 'clip_content_timeline', +105: 'inport_connection', +106: 'indexed_value_event', +107: 'sync_UUID_value_change_request', +108: 'UUID_value_change_request', +109: 'matrix_scene', +110: 'float_automation_event_timeline', +111: 'apply_client_side_changes_request', +112: 'obtain_locks_request', +113: 'numeric_port', +114: 'lock_ownership_changed_event', +115: 'lock_transfer_completed_response', +116: 'device_selection', +117: 'document_version', +118: 'delete_item_change_request', +119: 'string_value', + +121: 'arrangement_timeline', +122: 'indexed_port', +123: 'decimal_value_type', +124: 'proxy_port_component', +125: 'bool_value_event', +126: 'enum_automation_event_timeline', +127: 'boolean_value_atom_preset', + +129: 'numeric_value_atom', + + + +133: 'decimal_value_atom_preset', + + +136: 'track_display_settings', +137: 'fraction', +138: 'device_chain', +139: 'warp_event_timeline', + + + +143: 'integer_value_type', +144: 'track', + +146: 'signal_port', +147: 'control_atom', +148: 'time_range', +149: 'document_share_settings', +150: 'Unselected Filled Automation Type Icon', +151: 'device_contents', + + +154: 'proxy_in_port_component', +155: 'indexed_value_type', +156: 'value_event', +157: 'device_type', + +159: 'audio_note_content_timeline', + + + +163: 'native_device', +164: 'bool_automation_event_timeline', +165: 'chat_message', + + + + +170: 'hardware_note_destination', +171: 'track_mixer_module', + + +174: 'value_port', + + + + +179: 'metronome', +180: 'indexed_value_atom', +181: 'note_event_timeline', +182: 'onset_event_timeline', +183: 'authorized_user_settings', +184: 'midi_port', + + + + +189: 'value_led_atom', + +191: 'instrument_note_clip_content_timeline', + +193: 'pitch_grid_settings', + + + + +198: 'boolean_value_type', + +200: 'port', +201: 'decimal_note_expression_timeline', + +203: 'channel_track_mixer_module', + +205: 'control_script_note_source', +206: 'audio_note_event_timeline', +207: 'timeline', +208: 'note_clip_event', + +210: 'timeline_snap_settings', +211: 'generic_module_preset', +212: 'audio_note_event', + + +215: 'transport', + + + +219: 'integer_port', + +221: 'event_timeline', + + +224: 'device_editor_display_settings', +225: 'track_timeline', + +227: 'matrix_slot', +228: 'float_document_display_settings', + +230: 'tonal_space', + +232: 'destination_io_bus', +233: 'atom', + +235: 'top_level_timeline', +236: 'component_settings', +237: 'biquad_value_type', +238: 'audio_note_clip_event', +239: 'trigger_atom', +240: 'value', +241: 'simple_atom_reference', +242: 'audio_port', +244: 'note_or_clip_event_timeline', +247: 'indexed_value_atom_preset', +248: 'enduring_event_timeline', + + + + + +251: 'twelve_tone_space', +252: 'clip_event', +253: 'led_atom', +254: 'decimal_port', +255: 'note_or_clip_event', +256: 'shared_resource_atom', +257: 'UUID', +258: 'indexed_value_item', +259: 'component_selection', +261: 'audio_note_clip_content_timeline', +262: 'hardware_audio_destination', +264: 'decimal_value_event', +265: 'note_source', +267: 'io_bus', +269: 'launch_matrix', +271: 'automation_lane', +272: 'sound_value_type', + + + + + +273: 'machine_specific_hardware_audio_source', +274: 'temporal_event', +275: 'time_signature_value_type', +277: 'preset', +278: 'tuning', +279: 'simple_marker_event', +282: 'event_port', +283: 'value_atom', +284: 'string_value_type', +289: 'decimal_value_atom', +290: 'arrangement_automation_timeline', +293: 'vu_meter_data', +294: 'noise_atom', +295: 'sample_rate_reduction_atom', +297: 'stereo_width_atom', +298: 'constant_integer_value_atom', +299: 'xor_atom', + + + + + + + + + + +300: 'envelope_follower_atom', +301: 'mix_atom', +303: 'constant_multiply_atom', +304: 'multiply_add_atom', +305: 'sum_atom', +306: 'interleave_atom', +307: 'triangle_lfo_atom', +308: 'constant_add_atom', +309: 'sample_and_hold_atom', +310: 'logarithm_atom', +311: 'limit_range_atom', +312: 'multimode_filter_atom', +313: 'audio_voice_combiner_atom', +314: 'constant_value_atom', +316: 'slew_rate_atom', +317: 'key_to_frequency_atom', +318: 'lookup_table_row', +319: 'abs_atom', + + +320: 'domain_converter_atom', +321: 'event_switch_atom', +322: 'pitch_bend_input_atom', +323: 'gain_computer_atom', +324: 'sine_oscillator_atom', +325: 'linear_to_ranged_log_atom', +326: 'int_counter_atom', +327: 'beattime_to_time_atom', +328: 'panel_only_component', + +330: 'sample_player_atom', +331: 'buffer_reader_atom', +332: 'gate_gain_computer_atom', +333: 'transfer_function_atom', +334: 'polyphonic_voice_atom', +335: 'dynamics_gain_computer_atom', +336: 'nested_allpass_filter_atom', +337: 'add_atom', +338: 'lookup_table_cell', +339: 'audio_delay_atom', +340: 'compare_atom', +341: 'not_atom', +342: 'lookup_table_atom', +343: 'subtract_atom', +344: 'indexed_lookup_table_atom', +345: 'tanh_atom', +346: 'identical_ports_atom', +347: 'select_atom', +348: 'min_atom', +349: 'or_atom', +350: 'polyphonic_note_voice_atom', +351: 'lossy_integrator_atom', +352: 'max_atom', +353: 'biquad_filter_atom', +354: 'and_atom', +355: 'impulse_atom', +356: 'moog_lpf_atom', +357: 'exponential_atom', +358: 'timer_atom', +359: 'int_event_atom', +360: 'discrete_lookup_table_atom', +361: 'polyphonic_midi_voice_atom', +362: 'constant_atom', +363: 'allpass_filter_atom', +364: 'buffer_writer_atom', +365: 'biquad_coefficient_atom', +366: 'pulse_oscillator_atom', +367: 'multiply_atom', +368: 'deinterleave_atom', +369: 'pan_atom', +370: 'quantizer_atom', +371: 'continuous_lookup_table_atom', +372: 'analog_adsr_atom', +373: 'monophonic_midi_voice_atom', +374: 'label_component', +375: 'sine_atom', +391: 'device_type', +392: 'device_display_settings', +393: 'integer_value_atom_preset', +394: 'integer_value_atom', +395: 'mute_atom', +396: 'phasemod_oscillator_atom', +397: 'nested_device_chain_container', +398: 'exponential_decay_atom', +399: 'nested_device_chain_preset', + + + + + + + + + + + + + + + +400: 'decimal_event_filter_atom', +401: 'audio_switcher_atom', +402: 'monophonic_note_voice_atom', +403: 'voice_atom', +404: 'int_to_audio_atom', +405: 'held_impulse_atom', +406: 'multiphase_lfo_atom', +407: 'note_range_filter_atom', +408: 'monophonic_voice_atom', +409: 'frequency_shifter_atom', +410: 'lfo_atom', +411: 'ranged_monophonic_voice_atom', +412: 'vibrato_delaytime_modulation_atom', +413: 'sine_resonator_atom', +414: 'event_repeater_atom', +415: 'engine_configuration', +419: 'device', +420: 'device_preset', +421: 'vst2_plugin_device_preset', +422: 'vst2_plugin_device', +423: 'vst2_plugin_device_contents', +431: 'amp_and_pan_atom', +437: 'matrix_slot_selection', +444: 'float_audio_clip_metadata', +445: 'float_music_related_metadata', +446: 'float_preset_metadata', +447: 'selected_note_parameter', +448: 'wav_metadata', +449: 'mp4_metadata', + + + + + + + + + + + + + + + + + + + + + +450: 'plugin_metadata', +451: 'float_clip_metadata', +452: 'float_file_metadata', +453: 'float_device_metadata', +454: 'file_metadata', +455: 'vst2_plugin_metadata', +456: 'ogg_metadata', +457: 'external_file_metadata', +458: 'audio_file_metadata', +459: 'float_device_related_metadata', +460: 'float_song_metadata', +461: 'AIFF_metadata', +462: 'mp3_metadata', +463: 'float_note_clip_metadata', +464: 'flac_metadata', +466: 'ahdsr_atom', +468: 'track_recorder', +470: 'clip_recorder', +471: 'velocity_amp_multiplier_atom', +472: 'automation_timeline', +475: 'sample_reference_handle', +476: 'automation_lane_display_settings', +477: 'track_group', +478: 'track_or_track_group', +479: 'clip_document', +480: 'logged_in_user', +481: 'available_file_location', +482: 'file_checksum', +483: 'launch_clip_quantized_queued_matrix_action', +484: 'record_into_slot_queued_matrix_action', +485: 'stop_track_queued_matrix_action', +486: 'track_group_display_settings', +487: 'track_or_track_group_display_settings', +489: 'computer_keyboard_source', +490: 'omni_note_source', +491: 'surge_classic_oscillator_atom', +493: 'user_audio_send_atom_preset', +497: 'user_modulation_routing_atom_preset', + + + + + + + + + + + + + + + + + + + + + + + + + +513: 'preview_note_player', +515: 'onset_event', +520: 'arranger_editor_selection', +521: 'editor_selection', +528: 'single_sample_resource_preset', +529: 'sampler_resource_component', +530: 'sampler_resource_component_preset', +531: 'multisample_resource', +532: 'sampler_resource', +533: 'sampler_resource_preset', +534: 'single_sample_resource', +535: 'note_trigger_port', +536: 'multisample_zone', +537: 'multisample_resource_preset', +538: 'multisample_zone_preset', +539: 'multisample_editor_display_settings', + + + + + + + + + + + +540: 'zone_selection', +541: 'quantize_settings', +542: 'bend_curve_atom', +543: 'sf2_patch_metadata', +544: 'multisample_file_metadata', +545: 'gain_detector_atom', +546: 'analysis_atom', +547: 'feedback_compressor_atom', +551: 'panel_display_component', +552: 'eq_display_component', +553: 'xy_display_component', +554: 'reverb_display_component', +556: 'gain_change_meter_atom', +558: 'note_led_atom', +559: 'device_chain_meter', + + + + + +560: 'event_timeline', +562: 'sf2_metadata', +563: 'multisample_patch_metadata', +564: 'fixed_delay_atom', +565: 'moving_average_filter_atom', +566: 'limiter_gain_computer_atom', +567: 'moving_maximum_filter_atom', +568: 'mixer_module', +569: 'device_chain_mixer_module', +570: 'track', +572: 'about_to_be_created_automation_lane', +573: 'permanent_automation_lane', +574: 'selectable_audio_source', +575: 'io_bus_selector', +576: 'source_selector', +577: 'destination_selector', +578: 'svf_filter_atom', + + + +580: 'sampler_metadata', +584: 'svg_image_component', +585: 'nested_device_chain', +586: 'parallel_nested_device_chain_container', +587: 'nested_device_chain_slot', +588: 'nested_device_chain_container_preset', +589: 'parallel_nested_device_chain_container_preset', +590: 'nested_device_chain_slot_preset', +591: 'drum_pads', +592: 'drum_pads_preset', +594: 'drum_device_chain_preset', +595: 'multi_nested_device_chain_container', +596: 'multi_nested_device_chain_container_preset', +597: 'drum_pad', +598: 'drum_pads_display_settings', +599: 'low_cut_atom', + + + + +600: 'high_cut_atom', +601: 'low_or_high_cut_atom', +602: 'multi_nested_device_chain_container_display_settings', +603: 'selected_items', +604: 'parallel_nested_device_chain_container_display_settings', +605: 'control_surface_document_state', +611: 'arrangement_loop_region_timeline', +612: 'note_observer_atom', +614: 'titled_cue_marker', +615: 'clip_cue_marker_timeline', +616: 'stop_marker', +617: 'start_marker', +618: 'arrangement_cue_marker_timeline', +619: 'cue_marker_timeline', + + + + + + +620: 'cue_marker', +621: 'preview_warp_event', +622: 'wigsola_settings', +623: 'slot_or_scene', +624: 'slots_or_scenes', +625: 'float_scene_metadata', +627: 'value', +634: 'midi_file_metadata', +635: 'constant_boolean_value_atom', +636: 'send_module', +637: 'send_audio_source', +639: 'monitoring_audio_destination', +640: 'per_user_engine_settings', +641: 'preview_track_group', +642: 'file_preview_player', +643: 'track_group_structure', +644: 'track_or_track_group_structure', +645: 'float_document_structure', +646: 'track_structure', +647: 'audio_track_structure', +648: 'instrument_track_structure', +649: 'hybrid_track_structure', + + + + + + + + +650: 'effect_track_structure', +651: 'master_track_structure', +652: 'assigned_controller', +654: 'control_surface_data', +655: 'device_mapping_page', +656: 'device_mapping_bank', +657: 'device_mapping', +658: 'float_device_mappings_metadata', +659: 'preview_transport', +660: 'channel_selection', +661: 'channel', +662: 'channel_display_settings', +663: 'selection', +665: 'start_of_main_tracks_special_cursor_position', +666: 'special_cursor_position', +667: 'special_channel_cursor_position', +668: 'end_of_layers_special_cursor_position', +669: 'cursor_position', + + +670: 'item_cursor_position', +671: 'start_of_device_chain_special_cursor_position', +672: 'plugin_device_parameter_atom', +673: 'send_group', +676: 'midi_passthrough_value_atom', +677: 'midi_parameter_container', +678: 'value_grid_settings', +679: 'plugin_device_program', +680: 'vibrato_note_expression_timeline', +681: 'pan_note_expression_timeline', +682: 'note_content_timeline', +683: 'volume_note_expression_timeline', +684: 'decay_note_expression_timeline', +685: 'timbre_note_expression_timeline', +686: 'attack_note_expression_timeline', +687: 'transpose_note_expression_timeline', +688: 'release_note_expression_timeline', +689: 'note_expression_timeline', + + +690: 'scalar_capable_two_op_atom', +691: 'vst2_plugin_device_reference', +692: 'machine_specific_file_locations', +693: 'plugin_version_conflict', +694: 'clip_automation_regions', +696: 'preview_value_events', +697: 'identifier', +698: 'value_event_timeline', +699: 'note_expression_preview_events', +705: 'media_manager', +707: 'vst2_plugin_to_run_in_separate_process', +708: 'float_window_state', +709: 'file_browser_bookmark', + + + + + + + +710: 'separated_audio_host_api', +711: 'audio_bus', +713: 'file_browser_preferences', +714: 'audio_samplerate', +715: 'editing_preferences', +716: 'io_device', +718: 'library_preferences', +719: 'control_surface_settings', + + +720: 'library_location_configuration', +721: 'activation_preferences', +722: 'preferences', +723: 'collaboration_preferences', +724: 'audio_io_device', +725: 'user_defined_audio_bus', +730: 'midi_io_device', +732: 'recently_used_document', +733: 'midi_preferences', +734: 'audio_preferences', +736: 'file_browser_location', +737: 'float_window_states', +738: 'plugin_management_preferences', +739: 'friend', +741: 'combined_audio_host_api', +742: 'audio_host_api', +743: 'selectable_midi_device', +748: 'clip_automation_lane', +756: 'shared_memory_analysis_atom', +757: 'engine_shared_memory_helper', +758: 'engine_analysis_helper', +760: 'device_modulation_mapping', +764: 'modulation_source_atom_preset', +765: 'device_modulation_mapping_preset', +766: 'modulation_source_atom', +769: 'int_to_bool_atom', +770: 'launch_marker', +771: 'midi_parameter_extract_atom', +775: 'time_selection', +778: 'phasemod_oscillator_bank_atom', +779: 'phasemod_oscillator_bank_atom_preset', +780: 'automation_follow_settings', +781: 'automation_clipboard_simple_parameter_identifier', +782: 'automation_clipboard_document', +784: 'automation_clipboard_lane', +785: 'automation_clipboard_device_parameter_identifier', +786: 'automation_clipboard_parameter_identifier', +787: 'note_event_to_decimal_event_atom', +788: 'automation_lane_insert_data', +789: 'automation_insert_data', +790: 'automation_region', +792: 'discrete_value_atom', +793: 'continuous_value_atom', +794: 'user_preview_audio_destination', +796: 'note_expression_regions', +797: 'item_selection', +799: 'instrument_track_note_lane', + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +800: 'track_note_lane', +802: 'note_lane', +804: 'audio_track_note_lane', +805: 'track_or_track_group_selection', +808: 'event_selection', +811: 'clip_properties', +812: 'event_properties', +813: 'automation_event_properties', +814: 'arranger_clip_properties', +815: 'note_or_clip_properties', +816: 'onset_event_properties', +817: 'beat_marker_properties', +818: 'cue_marker_properties', +819: 'arranger_note_occurrence_properties', +820: 'loop_region_properties', +822: 'arranger_note_editor_selection', +823: 'arranger_automation_editor_selection', +824: 'clip_note_editor_selection', +825: 'clip_automation_editor_selection', +829: 'enduring_event_properties', +830: 'arranger_automation_event_properties', +831: 'clip_automation_event_properties', +832: 'clip_note_properties', +833: 'note_expression_event_properties', +834: 'audio_block_size', +835: 'note_editor_selection', +836: 'bitwig_multisample_metadata', +837: 'multisample_layer', +838: 'multisample_layer_preset', +839: 'sample_reference_prime_location', +840: 'missing_clip_cursor_position', +841: 'rendering_task', +842: 'rendering_sub_task', +843: 'audio_rendering_sub_task', +844: 'launcher_clip_properties', +848: 'properties', +849: 'launcher_clip_note_editor_selection', + + + + + + + + + + + + + +850: 'arranger_clip_note_editor_selection', +851: 'arranger_clip_note_properties', +852: 'launcher_clip_note_properties', +853: 'double_inspector_property', +854: 'bool_inspector_property', +855: 'inspector_property', +856: 'enum_inspector_property', +857: 'audio_sidechain_routing_component', +858: 'audio_out_routing_component', +859: 'audio_in_routing_component', +860: 'note_sidechain_routing_component', +861: 'sidechain_routing_component', +862: 'routing_component', +863: 'midi_out_routing_component', +866: 'named_key', +867: 'source_routing_component', +868: 'destination_routing_component', +871: 'selectable_note_source', +872: 'shared_onset_timelines', +873: 'shared_timeline_info', +874: 'shared_timeline_reference', +875: 'shared_onset_event_timeline_reference', +876: 'shared_timelines', +877: 'document_state', +879: 'sidechain_routing_component_preset', +880: 'arranger_clip_instrument_note_properties', +881: 'arranger_clip_audio_note_properties', +882: 'arranger_audio_note_occurrence_properties', +883: 'launcher_clip_instrument_note_properties', +884: 'arranger_instrument_note_occurrence_properties', +885: 'launcher_clip_audio_note_properties', +886: 'arranger_instrument_and_audio_note_occurrence_properties', +887: 'launcher_clip_instrument_and_audio_note_properties', +888: 'note_properties', +891: 'destination_routing_component_preset', +892: 'source_routing_component_preset', +893: 'track_or_track_group_properties', +894: 'note_editor_clip_layer', +895: 'note_editor_layer_selection', +896: 'note_editor_layer', + + + + + + + + + + +900: 'slice_settings', +903: 'tempo_value_event', +904: 'tempo_value_type', +905: 'tempo_automation_event_timeline', +907: 'automation_editor_selection', +908: 'clip_note_editor_layer_selection', +909: 'arranger_note_editor_layer_selection', +911: 'editor_layer', +912: 'component_with_channel_count', +914: 'track_type', +915: 'engine_state', +916: 'automation_write_mode', +917: 'integer_value_edit_style', +918: 'launcher_automation_detail_source_mode', +919: 'monitoring_mode', +920: 'midi_passthrough_value_type', +921: 'clip_automation_selector', +923: 'automation_interpolation_mode', +924: 'bar_roll_count', +925: 'note_pattern_view_mode', +926: 'note_pitch_filter', +927: 'quantize_grid_subdivision', +928: 'launcher_note_detail_source_mode', +929: 'launch_quantization', +930: 'event_end_quantization_type', +931: 'audio_note_expression', +932: 'indexed_value_edit_style', +933: 'launch_mode', +934: 'relative_pos', +935: 'vu_meter_scale_style', +936: 'slice_mode', +937: 'automation_mode', +938: 'decimal_value_edit_style', +939: 'arranger_automation_lane_edit_mode', +940: 'quantize_grid', +941: 'timeline_selection_mode', +942: 'oversampling', +943: 'pitch_grid_view_mode', +944: 'device_type', +945: 'file_reference_state', +946: 'recording_mode', +947: 'pixels_per_pitch', +948: 'timeline_grid', +949: 'multi_value_display_mode', + + + + + + +950: 'channel_count', +951: 'numeric_unit', +952: 'send_mode', +953: 'crossfade_mode', +954: 'sample_bit_depth', +955: 'follow_action', +956: 'pitch_grid_snap_mode', +957: 'plugin_device_state', +958: 'arranger_note_detail_source_mode', +959: 'note_pattern_grouping', +960: 'sample_playback_mode', +961: 'audio_bus_type', +962: 'arranger_automation_detail_source_mode', +963: 'time_format', +964: 'numeric_domain', +965: 'value_origin_mode', +966: 'warp_mode', +967: 'shuffle_rate', +968: 'label_type', +969: 'out_of_bounds_mode', +970: 'interpolation_mode', +971: 'buffer_writer_mode', +972: 'dynamics_domain', +973: 'mix_mode', +974: 'svf_filter_type', +975: 'comparison', +976: 'biquad_filter_type', +977: 'buffer_reader_mode', +978: 'lfo_shape', +979: 'midi_parameter_type', +980: 'polyphony_mode', +981: 'svf_filter_nonlinearity', +982: 'svf_filter_resonance_mode', +983: 'noise_color', + + + + + + + + + + + + + + + + +1000: '', +1005: 'machine_specific_hardware_audio_destination', +1020: 'engine_hardware_audio_destination', +1054: 'preferences_audio_bus_type', +1055: 'default_audio_playback_mode', +1056: 'plugin_management_mode', +1057: 'monitoring_router_audio_destination', +1058: 'monitoring_router', +1062: 'destination_io_bus_preset', +1063: 'machine_specific_hardware_audio_destination_preset', +1064: 'audio_destination_preset', +1065: 'track_audio_destination_preset', +1066: 'machine_specific_hardware_audio_source_preset', +1067: 'source_io_bus_preset', +1068: 'audio_source_preset', +1069: 'note_source_preset', +1070: 'omni_note_source_preset', +1071: 'computer_keyboard_source_preset', +1072: 'engine_hardware_audio_source', +1073: 'track_audio_source_preset', +1074: 'track_pre_fader_audio_source_preset', +1075: 'track_post_fader_audio_source', +1076: 'track_post_fader_audio_source_preset', +1077: 'track_pre_fader_audio_source', +1078: 'track_audio_source', +1095: 'machine_specific_hardware_note_destination', +1096: 'engine_hardware_note_destination', +1097: 'machine_specific_hardware_note_destination_preset', +1108: 'hardware_audio_source', +1115: 'hardware_audio_bus_configuration', +1117: 'preferences_audio_bus_role', +1121: 'hardware_note_bus_configuration', +1124: 'arranger_clip_automation_editor_selection', +1125: 'launcher_clip_automation_editor_selection', +1126: 'start_of_effect_tracks_special_cursor_position', +1127: 'clip_selection', +1128: 'arranger_clip_selection', +1129: 'launcher_clip_selection', +1131: 'clip_automation_timeline', +1132: 'multiplicative_clip_automation_timeline', +1133: 'additive_clip_automation_timeline', +1134: 'length_quantize_settings', +1146: 'note_trigger_atom', +1147: 'warp_tempo_inspector_property', +1148: 'engine_recorded_file_name_provider', +1150: 'playhead_follow_mode', +1153: 'pitch_class_mapping_atom', +1157: 'label_text_style', +1158: 'note_pitch_atom', +1159: 'diatonic_note_transpose_atom', +1160: 'vst_plugin_file_metadata', +1161: 'plugin_file_metadata', +1163: 'discrete_round_atom', +1164: 'discrete_ceil_atom', +1165: 'discrete_floor_atom', +1166: 'integer_automation_event_timeline', +1167: 'integer_value_event', +1170: 'step_sequencer_atom', +1171: 'clock_atom', +1175: 'component_widget_state_link', +1176: 'boolean_value_edit_style', +1177: 'per_display_port', +1178: 'boolean_per_display_port', +1179: 'integer_per_display_port', +1186: 'per_display_value_component', +1187: 'boolean_per_display_value_component', +1188: 'multiplexer_atom', +1190: 'container_file_reference', +1191: 'simple_file_reference', +1192: 'file_item_reference', +1193: 'sample_reference', +1194: 'bounce_options', +1195: 'slice_operation', +1206: 'slice_source_mode', +1207: 'bounce_point', +1210: 'bounce_operation', +1211: 'arranger_detail_clip_properties', +1212: 'slot_or_scene_properties', +1213: 'scene_properties', +1214: 'slot_and_scene_properties', +1215: 'arrangement_clip_automation_timelines', +1216: 'special_decimal_value_atom', +1217: 'tempo_value_atom', +1218: 'send_value_atom', +1219: 'pan_value_atom', +1220: 'volume_value_atom', +1221: 'groove_shuffle_value_atom', +1222: 'groove_accent_amount_value_atom', +1223: 'groove_accent_phase_value_atom', +1224: 'groove_enabled_value_atom', +1225: 'groove_retrigger_on_submeasure_value_atom', +1226: 'special_boolean_value_atom', +1227: 'groove_accent_rate_value_atom', +1228: 'atom_reference', +1229: 'groove_shuffle_rate_value_atom', +1230: 'mute_value_atom', +1231: 'launch_clip_from_beat_time_queued_matrix_action', +1232: 'arpeggiator_atom', +1233: 'arpeggiator_mode', +1234: 'int_observer_atom', +1235: 'gate_detector_atom', +1236: 'note_generator_atom', +1237: 'launch_clip_queued_matrix_action', +1238: 'bool_and_atom', +1239: 'bool_or_atom', +1244: 'wasapi_audio_host_api', +1245: 'cyclic_buffer_analysis_component', +1246: 'cyclic_buffer_type', +1247: 'cache_preferences', +1248: 'modulated_plugin_parameter_absolute_value', +1249: 'monitoring_router_audio_destination_preset', +1252: 'meter_mode', +1253: 'selected_event_in_note_occurrence', +1254: 'onset_occurrence', +1255: 'launcher_clip_onset_event_properties', +1256: 'arranger_onset_event_properties', +1257: 'arranger_clip_onset_event_properties', +1258: 'control_script_note_source_bus_configuration', +1259: 'hardware_note_source_bus_configuration', +1260: 'machine_specific_hardware_note_source', +1261: 'engine_hardware_note_source', +1264: 'available_control_surface_note_input', +1266: 'plugin_multiout_device_chain_container', +1267: 'plugin_multiout_device_chain_container_preset', +1269: 'plugin_multiout_device_chain_container_display_settings', +1270: 'beat_marker_occurrence', +1271: 'expression_occurrence', +1272: 'plugin_device_view_mode', +1274: 'arranger_beat_marker_properties', +1275: 'arranger_clip_beat_marker_properties', +1277: 'launcher_clip_beat_marker_properties', +1286: 'library_location', +1287: 'folder_result', +1291: 'music_library_location', +1292: 'content_library_location', +1293: 'file_result', +1295: 'library', +1299: 'plugin_library_location', +1300: 'directory_folder_result', +1301: 'search_sessions', +1302: 'library_location_folder_result', +1304: 'all_devices_folder_result', +1306: 'all_samples_folder_result', +1307: 'all_clips_folder_result', +1310: 'all_multi_samples_folder_result', +1311: 'all_music_folder_result', +1313: 'packaged_presets_library_location', +1314: 'packaged_clips_library_location', +1315: 'packaged_multi_samples_library_location', +1316: 'engine_device_audio_source', +1317: 'core_devices_library_location', +1318: 'device_category_folder_result', +1319: 'device_folder_result', +1321: 'packaged_samples_library_location', +1322: 'preset_file_result', +1323: 'bitwig_device_folder_result', +1324: 'plugins_folder_result', +1325: 'track_note_destination', +1326: 'engine_device_midi_note_destination', +1327: 'user_defined_library_location', +1328: 'track_note_source', +1329: 'sorted_folder_result', +1330: 'vst2_plugin_device_folder_result', +1331: 'plugin_library_location_folder_result', +1332: 'library_locations_folder_result', +1333: 'soundfont2_patch_file_result', +1334: 'soundfont2_folder_result', +1335: 'control_surface_number_setting', +1336: 'control_surface_setting', +1337: 'control_surface_string_setting', +1338: 'control_surface_enum_setting', +1339: 'control_surface_signal_setting', +1340: 'control_surface_preference_setting', +1341: 'control_surface_string_setting', +1342: 'control_surface_number_setting', +1343: 'control_surface_enum_setting', +1344: 'control_surface_signal_setting', +1345: 'note_mute_atom', +1346: 'audio_clip_file_result', +1347: 'note_clip_file_result', +1348: 'clip_file_result', +1349: 'audio_file_result', +1350: 'bitwig_multi_sample_file_result', +1351: 'multi_sample_file_result', +1352: 'package_vendor_folder_result', +1353: 'package_folder_result', +1354: 'packaged_library_location', +1355: 'music_library_location_folder_result', +1356: 'packaged_presets_library_location_folder_result', +1357: 'content_library_location_folder_result', +1358: 'packaged_clips_library_location_folder_result', +1359: 'packaged_multi_samples_library_location_folder_result', +1360: 'packaged_samples_library_location_folder_result', +1361: 'packaged_library_location_folder_result', +1362: 'core_devices_library_location_folder_result', +1363: 'control_surface_preference_category', +1364: 'shell_plugin_folder_result', +1365: 'library_device_type', +1366: 'search_result', +1367: 'control_surface_settings_category', +1368: 'my_library_location', +1369: 'my_library_location_folder_result', +1370: 'midi_file_result', +1371: 'delay_compensation_atom', +1372: 'dynamically_sorted_folder_result', +1373: 'device_sort_mode', +1374: 'plugin_device_vendor_folder_result', +1375: 'leaf_folder_result', +1376: 'preserve_transients_mode', +1377: 'preset_document', +1378: 'clip_or_preset_document', +1379: 'warp_grain_size', +1380: 'engine_device_note_source', +1381: 'engine_device_chain_audio_source', +1382: 'export_audio_preferences', +1383: 'export_audio_filename_pattern', +1386: 'device_browser_preferences', +1387: 'device_sort_mode', +1388: 'export_audio_settings', +1392: 'plugin_output_nested_device_chain', +1393: 'device_audio_source', +1394: 'device_note_source', +1395: 'device_audio_source_preset', +1397: 'note_destination_preset', +1398: 'device_midi_note_destination', +1399: 'device_chain_audio_source', +1400: 'device_item_reference', +1401: 'device_audio_source_in_document_preset', +1404: 'crossfade_value_atom', +1405: 'crossfade_mode_value_atom', +1406: 'device_chain_audio_source_preset', +1407: 'device_chain_audio_source_in_document_preset', +1424: 'device_related_audio_source', +1425: 'device_related_audio_source_preset', +1426: 'device_related_audio_source_in_document_preset', +1427: 'track_note_source_preset', +1434: 'limitation_state', +1435: 'note_delay_compensation_atom', +1436: 'user_configurable_processing_delay_placeholder_component_preset', +1437: 'processing_delay_placeholder_component', +1438: 'user_configurable_processing_delay_placeholder_component', +1439: 'placeholder_delay_unit', +1440: 'plugin_output_nested_device_chain_preset', +1441: 'channel_properties', +1442: 'drum_device_chain_properties', +1443: 'nested_device_chain_properties', +1444: 'device_layer_properties', +1445: 'multi_list_nested_device_chain_container', +1446: 'plugin_audio_bus', +1448: 'filter_column', +1449: 'filter_column_result', +1450: 'clip_search_session', +1451: 'creator_filter_column_result', +1452: 'category_filter_column_result', +1453: 'search_session', +1454: 'creator_filter_column', +1455: 'category_filter_column', +1456: 'search_result_with_hit_count', +1461: 'device_type_filter_column', +1462: 'device_type_filter_column_result', +1463: 'single_value_filter_column', +1464: 'tag_filter_column', +1465: 'multi_value_filter_column', +1466: 'tag_filter_column_result', +1471: 'device_properties', +1472: 'all_presets_folder_result', +1473: 'music_search_session', +1474: 'auto_suspend_mode', +1475: 'file_type_filter_column_result', +1476: 'file_type_filter_column', +1477: 'audio_file_search_session', +1478: 'sample_search_session', +1479: 'multi_sample_search_session', +1480: 'all_filter_column_result', +1481: 'bitwig_search_session', +1482: 'preset_search_session', +1483: 'device_chain_preview_session', +1485: 'device_hot_swap_preview_session', +1486: 'device_chain_insert_preview_session', +1488: 'modulation_source_atom_display_settings', +1492: 'not_ready_file_result', +1494: 'asio_audio_host_api', +1495: 'singleton_audio_host_api', +1496: 'jack_audio_host_api', +1497: 'device_enabled_value_atom', +1501: 'mapping_component_path', +1512: 'recording_quantization_grid', +1513: 'filter_section', +1514: 'preset_devices_filter_section', +1515: 'location_filter_section', +1516: 'folder_results_filter_section', +1521: 'browsing_session', +1522: 'selected_file_info', +1526: 'string_filter_column', +1527: 'string_metadata_field', +1528: 'metadata_field', +1529: 'tags_metadata_field', +1530: 'selectable_tag', +1531: 'browsing_or_search_session', +1533: 'device_search_session', +1534: 'all_device_locations_folder_result', +1535: 'device_file_result', +1536: 'vst2_plugin_device_file_result', +1537: 'bitwig_device_file_result', +1538: 'sampler_resource_preview_session', +1539: 'vst_preset_metadata', +1540: 'vst_preset_bank_metadata', +1541: 'vst_preset_or_bank_file_result', +1542: 'vst_preset_bank_file_result', +1543: 'vst_preset_file_result', +1544: 'onscreen_keyboard_source', +1545: 'onscreen_keyboard_source_preset', +1546: 'meta_clip_event_timeline', +1547: 'meta_clip_event', +1548: 'selectable_audio_device_info', +1549: 'engine_device_chain_note_source', +1550: 'device_chain_note_source_preset', +1551: 'device_related_note_source_in_document_preset', +1552: 'device_note_source_in_document_preset', +1553: 'device_note_source_preset', +1554: 'device_related_note_source_preset', +1555: 'device_chain_note_source', +1556: 'device_related_note_source', +1557: 'device_chain_note_source_in_document_preset', +1558: 'selectable_audio_device_state', +1559: 'keyboard_shortcut', +1560: 'shortcut_mappings', +1561: 'keyboard_shortcut_mappings', +1562: 'shortcut_mapping', +1563: 'keyboard_shortcut_mapping', +1564: 'shortcut', +1565: 'shortcut_preferences_settings', +1566: 'shortcut_preferences', +1573: 'controller_shortcut_mappings', +1574: 'controller_shortcut', +1575: 'controller_note_press_shortcut', +1576: 'controller_shortcut_mapping', +1581: 'controller_control_change_shortcut', +1589: 'direct_document_object_reference', +1590: 'document_object_reference', +1591: 'core_audio_host_api', +1592: 'keyboard_mapping', +1593: 'mappings', +1594: 'keyboard_mappings', +1595: 'mapping_action', +1596: 'controller_mappings', +1597: 'button_mapping_action', +1598: 'knob_mapping_action', +1599: 'controller_midi_mapping', +1600: 'mapping', +1601: 'control_change_mapping', +1602: 'invoke_operation_mapping_action', +1603: 'note_mapping', +1604: 'set_attribute_to_value_mapping_action', +1605: 'set_numeric_attribute_to_knob_value_mapping_action', +1606: 'set_attribute_to_knob_value_mapping_action', +1607: 'set_int32_attribute_to_value_mapping_action', +1608: 'set_bool_attribute_to_value_mapping_action', +1609: 'set_double_attribute_to_value_mapping_action', +1610: 'knob_mapping', +1611: 'controller_mapping', +1612: 'controller_script_mapping', +1613: 'bool_value_change', +1614: 'controller_script_shortcut', +1615: 'controller_midi_shortcut', +1617: 'audio_io_device_connection', +1618: 'connectable_audio_io_device', +1619: 'pressure_note_expression_timeline', +1620: 'jack_audio_io_device', +1622: 'connectable_audio_host_api', +1623: 'connectable_audio_port', +1624: 'connectable_audio_client', +1625: 'set_numeric_attribute_to_value_mapping_action', +1626: 'set_indexed_attribute_to_value_mapping_action', +1627: 'set_enum_attribute_to_knob_value_mapping_action', +1628: 'control_change_mapping_mode', +1631: 'named_filter', +1632: 'named_collection', +1633: 'reciprocal_atom', +1634: 'divide_atom', +1637: 'search_type_state', +1638: 'smart_collection', +1639: 'named_collection_folder_result', +1640: 'smart_collection_folder_result', +1641: 'named_filters_folder_result', +1642: 'named_filter_folder_result', +1643: 'named_filters_filter_section', +1644: 'mappings_display_settings', +1645: 'scene_file_result', +1646: 'alsa_audio_host_api', +1648: 'bitwig_template_file_result', +1649: 'packaged_templates_library_location', +1650: 'packaged_templates_library_location_folder_result', +1651: 'all_templates_folder_result', +1652: 'template_search_session', +1653: 'template_preferences', +1654: 'oscilloscope_atom', +1655: 'oscilloscope_data', +1656: 'special_track_cursor_position', +1657: 'bitwig_template_metadata', +1658: 'preview_session', +1661: 'browsing_session_state', +1662: 'onscreen_keyboard_preferences', +1663: 'browsing_session_state_preset', +1664: 'set_bool_attribute_to_knob_value_mapping_action', +1665: 'vst2_plugin_preset_file_result', +1666: 'bitwig_preset_file_result', +1667: 'monitor_preferences', +1668: 'monitor_configuration', +1669: 'monitor_scaling_factor', +1671: 'clip_launcher_post_recording_action', +1672: 'drum_choke', +1674: 'selectable_folder', +1675: 'location_metadata_field', +1676: 'root_generic_module', +1677: 'group_module', +1678: 'component_properties', +1679: 'box_panel_item', +1680: 'panel', +1681: 'grid_panel_item', +1682: 'panel_item', +1683: 'label_panel_item', +1684: 'component_panel_item', +1685: 'slider_panel_item', +1686: 'gap_panel_item', +1687: 'knob_panel_item', +1688: 'container_panel_item', +1689: 'panel_knob_size', +1690: 'horizontal_alignment', +1692: 'bordering_container_panel_item', +1693: 'panel_item_layout_settings', +1694: 'grid_panel_item_layout_settings', +1695: 'box_panel_item_layout_settings', +1696: 'panel_border_style', +1697: 'vertical_alignment', +1698: 'panel_font_style', +1699: 'panel_item_selection', +1700: 'panel_item_properties', +1701: 'group_panel_item', +1702: 'toggle_button_panel_item', +1703: 'titled_component_panel_item', +1704: 'component_display_panel_item', +1705: 'panel_button_style', +1706: 'panel_label_position', +1707: 'panel_container_brightness', +1709: 'vst3_plugin_metadata', +1710: 'vst3_plugin_file_metadata', +1711: 'vst2_plugin_file_metadata', +1712: 'button_group_chooser_panel_item', +1713: 'number_field_panel_item', +1714: 'popup_chooser_panel_item', +1715: 'vst3_preset_metadata', +1716: 'uhe_preset_file_result', +1717: 'mapping_source_panel_item', +1718: 'panel_label_style', +1719: 'image_panel_item', +1720: 'panel_slider_style', +1721: 'nitro_atom', +1722: 'curve_panel_item', +1723: 'led_panel_item', +1724: 'meter_panel_item', +1725: 'popup_chooser_style', +1726: 'popup_panel_button_panel_item', +1727: 'panel_editor_display_settings', +1728: 'panel_expression', +1730: 'uhe_preset_metadata', +1732: 'audio_io_device_connection_state', +1733: 'track_note_source_with_compensation_delay', +1734: 'track_audio_source_with_compensation_delay', +1735: 'modulator_contents', +1737: 'modulator_preset', +1738: 'abstract_device', +1739: 'modulator', +1740: 'polyphonic_instrument_note_timeline', +1741: 'polyphonic_note_timeline', +1742: 'polyphonic_audio_note_timeline', +1743: 'auxiliary_device', +1744: 'auxiliary_device_contents', +1745: 'auxiliary_device_preset', +1746: 'auxiliary_device_metadata', +1747: 'float_modulator_metadata', +1748: 'auxiliary_device_file_result', +1749: 'modulator_file_result', +1750: 'device_color_tint', +1751: 'boolean_panel_value', +1752: 'panel_value', +1753: 'string_panel_value_preset', +1754: 'string_panel_value', +1755: 'boolean_panel_value_preset', +1761: 'alignable_panel_item', +1762: 'text_field_panel_item', +1763: 'bipolar_toggleable_decimal_value_atom', +1765: 'modulator_search_session', +1766: 'all_modulator_locations_folder_result', +1767: 'core_modulators_library_location', +1768: 'core_modulators_library_location_folder_result', +1773: 'modulator_selection', +1774: 'note_lane_properties', +1775: 'clip_note_lane_properties', +1776: 'launcher_clip_note_lane_properties', +1777: 'arranger_clip_note_lane_properties', +1778: 'arranger_note_lane_properties', +1779: 'note_lane_selection', +1786: 'explicitly_remove_standard_library_location', +1787: 'port_observer', +1788: 'discrete_parameter_port_observer', +1789: 'audio_port_observer', +1790: 'event_port_observer', +1791: 'abstract_device_preset', +1793: 'device_preset_identifier_path_conversion', +1794: 'engine_device_chain_audio_source_with_compensation_delay', +1795: 'abstract_device_display_settings', +1802: 'stack_panel_item', +1803: 'stack_panel_item_layout_settings', +1804: 'display_panel_item', +1805: 'display_axes_panel_item', +1806: 'display_point_panel_item', +1807: 'display_line_panel_item', +1808: 'display_element_panel_item', +1809: 'nitro_event_port', +1810: 'display_oscilloscope_panel_item', +1811: 'interactive_display_element_panel_item', +1813: 'display_color', +1814: 'clip_fade_inspector_property', +1815: 'polyphonic_observer_atom', +1816: 'display_polyphonic_observer_panel_item', +1817: 'display_line_painting_container', +1818: 'plugin_root_generic_module', +1819: 'vst_plugin_metadata', +1820: 'panel_number_field_style', +1821: 'metadata', +1822: 'file_item_metadata', +1823: 'plugin_device_file_result', +1824: 'plugin_preset_file_result', +1825: 'plugin_device_folder_result', +1826: 'vst3_plugin_device_folder_result', +1827: 'vst3_plugin_device_file_result', +1828: 'vst3_preset_file_result', +1829: 'vst3_plugin_device_contents', +1830: 'plugin_device_contents', +1831: 'plugin_device_preset', +1832: 'vst3_plugin_device_preset', +1833: 'vst3_plugin_device', +1834: 'plugin_device', +1835: 'vst3_plugin_device_reference', +1836: 'plugin_device_reference', +1837: 'plugin_to_run_in_separate_process', +1838: 'vst3_plugin_to_run_in_separate_process', +1839: 'transport_component', +1840: 'double_audio_port', +1841: 'vst3_plugin_preset_file_result', +1842: 'send_module_preset', +1844: 'fft_order', +1845: 'float_array_port', +1847: 'fft_atom', +1848: 'abstract_fft_atom', +1849: 'ifft_atom', +1850: 'window_function', +1851: 'spectrum_analyser_component', +1852: 'display_spectrum_panel_item', +1853: 'spectrum_readout_component', +1854: 'graph_style', +1855: 'display_eq_point_panel_item', +1856: 'connected_monitor_info', +1859: 'time_in_root_timeline', +1860: 'pulse_audio_host_api', +1866: 'selected_event_in_clip_occurrence', +1867: 'automation_event_occurrence', +1868: 'NKS_preset_metadata', +1869: 'NKS_preset_file_result', +1870: 'data_array_component', +1871: 'data_array_component_preset', +1872: 'display_data_array_panel_item', +1873: 'auxiliary_device_grid_insert_preview_session', +1874: 'auxiliary_device_grid_preview_session', +1875: 'auxiliary_device_hot_swap_preview_session', +1876: 'plugin_states_save_helper', +1877: 'engine_audio_file_reference', +1878: 'fade_shape', +1879: 'panel_text_field_style', +1880: 'trigger_panel_item', +1882: 'auxiliary_device_cell_cursor_position', +1884: 'preview_insert_auxiliary_device', +1885: 'auxiliary_device_grid_preset', +1886: 'modulator_grid', +1887: 'modulator_grid_preset', +1888: 'auxiliary_device_grid', +1889: 'modulator_grid_display_settings', +1890: 'auxiliary_device_grid_display_settings', +1891: 'meter_scale_panel_item', +1892: 'meter_style', +1893: 'auxiliary_device_selection', +1894: 'automation_editor_tool_settings', +1895: 'timeline_tool_settings', +1896: 'arranger_tool_settings', +1897: 'note_editor_tool_settings', +1898: 'automation_editor_tool', +1899: 'arranger_tool', +1900: 'note_editor_tool', +1901: 'module_rack', +1902: 'module', +1903: 'module_preset', +1904: 'module_contents', +1905: 'module_rack_preset', +1906: 'float_module_metadata', +1907: 'module_file_result', +1908: 'module_search_session', +1909: 'module_selection', +1910: 'module_rack_display_settings', +1911: 'core_modules_library_location', +1912: 'core_modules_library_location_folder_result', +1913: 'all_module_locations_folder_result', +1914: 'module_rack_panel_item', +1915: 'remote_controls_page_preset', +1916: 'remote_control_preset', +1917: 'remote_controls_page_group_preset', +1918: 'remote_controls_page', +1919: 'device_remote_controls', +1920: 'remote_control', +1921: 'component_menu_panel_item', +1922: 'menu_trigger_panel_item', +1923: 'menu_container_panel_item', +1924: 'menu_toggle_panel_item', +1925: 'menu_title_panel_item', +1926: 'menu_separator_panel_item', +1927: 'menu_panel_item', +1928: 'menu_container_panel_item_layout_settings', +1929: 'nameable_modulation_source_atom', +1930: 'vst2_plugin_device_parameter_atom', +1931: 'vst3_plugin_device_parameter_atom', +1933: 'pinned_actions_state', +1934: 'pinned_actions_preferences', +1935: 'project_search_session', +1936: 'bitwig_project_file_result', +1937: 'all_projects_folder_result', +1940: 'auxiliary_device_display_settings', +1941: 'point_interpolation', +1942: 'transport_synchronization_preferences', +1943: 'transport_synchronization_method', +1944: 'my_projects_location', +1945: 'my_projects_location_folder_result', +1946: 'modulator_properties', +1947: 'startup_action', +1948: 'plugin_hosting_mode', +1950: 'midi_clock_master_component', +1951: 'midi_timecode_component', +1952: 'midi_timecode_rate', +1953: 'initial_browsing_session_state', +1954: 'initial_browsing_session_state_preferences', +1955: 'new_device_browsing_session_state', +1956: 'midi_output_device_settings', +1957: 'midi_preferences_timecode_rate', +1958: 'remote_controls_page_group', +1959: 'remote_controls_preset', +1960: 'remote_controls_editor_selection', +1961: 'auxiliary_device_remote_controls', +1962: 'remote_controls', +1964: 'remote_controls_preset_page_group', +1965: 'auxiliary_device_remote_controls_preset', +1966: 'device_remote_controls_preset', +1967: 'remote_controls_document', +1968: 'sampler_resource_panel_item', +1969: 'remote_controls_page_id', +1970: 'remote_controls_page_selector', +1972: 'midi_clock_slave_component', +1973: 'panel_knob_style', +1974: 'hardware_note_source', +1996: 'scope_observer_component', +1997: 'display_scope_observer_panel_item', +1998: 'source_atom', +1999: 'destination_atom', +2000: 'audio_source_atom', +2001: 'port_panel_item', +2002: 'audio_destination_atom', +2003: 'is_legacy_preset_with_index_as_value', +2004: 'control_surface_track_cursor', +2005: 'control_surface_cursor', +2006: 'control_surface_device_cursor', +2007: 'control_surface_device_cursor_follow_mode', +2008: 'sample_stop_time_inspector_property', +2009: 'content_start_time_inspector_property', +2010: 'sample_stop_fade_time_inspector_property', +2011: 'note_tempo_inspector_property', +2012: 'display_font', +2013: 'module_properties', +2016: 'int_delay_compensation_atom', +2017: 'bool_delay_compensation_atom', +2018: 'destination_atom_preset', +2019: 'shell_vst2_plugin_folder_result', +2020: 'shell_vst3_plugin_folder_result', +2028: 'controller_take_over_mode', +2029: 'boolean_observer_atom', +2030: 'display_boolean_observer_panel_item', +2033: 'time_signature_timeline', +2034: 'time_signature_properties', +2036: 'time_signature_value_atom', +2037: 'settable_decimal_value_atom', +2038: 'chain_selector', +2039: 'chain_selector_display_settings', +2040: 'multi_list_nested_device_chain_container_display_settings', +2042: 'chain_selector_panel_item', +2043: 'chain_selector_preset', +2049: 'formant_note_expression_timeline', +2050: 'note_processing_delay_placeholder_component', +2051: 'control_surface_color_setting', +2052: 'control_surface_color_setting', +2053: 'direct_midi_note_source', +2055: 'direct_midi_note_destination', +2063: 'int_inspector_property', +2064: 'ableton_link_tempo_value_atom', +2065: 'clip_event_display_settings', +2066: 'note_clip_event_display_settings', +2067: 'effect_selector', +2068: 'instrument_selector', +2069: 'arranger_cue_marker_properties', +2070: 'track_sequencer', +2072: 'lightweight_oscilloscope_atom', +2073: 'gradient_panel_item', +2074: 'lightweight_oscilloscope_data', +2075: 'display_lightweight_oscilloscope_panel_item', +2076: 'last_voice_int_event_atom', +2077: 'last_voice_audio_atom', +2078: 'last_voice_atom', +2081: 'pinnable_actions', +2082: 'main_panel_widget', +2083: 'widget', +2084: 'border_widget', +2085: 'tooltip_border_widget', +2086: 'keyboard_shortcut_widget', +2087: 'toggle_action', +2088: 'connection_widget', +2089: 'double_buffered_cell_widget', +2090: 'terminal_widget', +2091: 'bordered_cell_widget', +2092: 'image_widget', +2093: 'pinnable_action', +2094: 'automatable', +2095: 'icon_widget', +2096: 'icon_text_label_widget', +2097: 'top_level_widget', +2098: 'simple_message_dialog_widget', +2099: 'action', +2100: 'single_child_widget', +2101: 'renamable_cell_widget', +2102: 'focus_proxy_toggle_action', +2103: 'content_loading_widget', +2104: 'custom_window_decorations_layout_widget', +2105: 'vertical_text_label_widget', +2106: 'pinnable_action_group', +2107: 'truncating_text_label_widget', +2108: 'clippable_and_expandable_cell_widget', +2109: 'svg_icon_widget', +2110: 'text_label_widget', +2111: 'popup_overlay_widget', +2112: 'focus_proxy_action', +2113: 'custom_window_drag_area_widget', +2114: 'proxy_action', +2115: 'gradient_widget', +2116: 'dialog_widget', +2117: 'window_pane_title_widget', +2118: 'popup_insert_overlay_widget', +2119: 'expandable_cell_widget', +2120: 'quantized_vert_clipping_widget', +2121: 'window_widget', +2122: 'panel_widget', +2123: 'popup_window_widget', +2124: 'space_filler_widget', +2125: 'cell_widget', +2126: 'glass_pane_widget', +2127: 'color_transforming_cell_widget', +2128: 'standard_dialog_widget', +2129: 'focus_state', +2130: 'icon_text_mode', +2131: 'text_truncation_mode', +2132: 'relative_position', +2133: 'color_divider_widget', +2134: 'dynamic_cell_widget', +2135: 'vert_spacing_widget', +2136: 'dynamic_stack_widget', +2137: 'title_bar_layout_widget', +2138: 'card_layout_widget', +2139: 'tab_selector_widget', +2140: 'flow_layout_widget', +2141: 'spacing_widget', +2142: 'grid_rows_or_columns', +2143: 'auto_hiding_section_manager_widget', +2144: 'resizable_cell_widget', +2145: 'tab_content_widget', +2146: 'grid_flow_layout_widget', +2147: 'sliding_drawer_group', +2148: 'tab', +2149: 'stack_widget', +2150: 'tab_bar_widget', +2151: 'dynamic_box_widget', +2152: 'auto_hide_box_widget', +2153: 'horiz_spacing_widget', +2154: 'sliding_drawer_widget', +2155: 'wormhole_widget', +2156: 'container_widget', +2157: 'separator_line_widget', +2158: 'border_layout_widget', +2159: 'dynamic_flow_layout_widget', +2160: 'dynamic_grid_layout_widget', +2161: 'tab_widget', +2162: 'auto_compacting_widget', +2163: 'box_widget', +2164: 'hard_corner_box_widget', +2165: 'grid_layout_widget', +2166: 'auto_hiding_section_widget', +2167: 'vert_resize_mode', +2168: 'horiz_resize_mode', +2169: 'knob_size_styles', +2170: 'margins', +2171: 'progress_bar_style', +2172: 'dialog_styles', +2173: 'scrollbar_style', +2174: 'knob_styles', +2175: 'tag_pill_style', +2176: 'shortcut_mappings_editor_style', +2177: 'shortcut_pill_style', +2178: 'accordion_style', +2179: 'button_group_chooser_style', +2180: 'button_group_chooser_styles', +2181: 'checkbox_style', +2182: 'meter_style', +2183: 'push_toggle_button_style', +2184: 'push_button_style', +2185: 'text_field_style', +2186: 'dialog_style', +2187: 'fold_button_style', +2188: 'color_styles', +2189: 'button_state_style', +2190: 'modulatable_push_toggle_button_styles', +2191: 'background_task_list_style', +2192: 'color_style', +2193: 'knob_style', +2194: 'text_field_styles', +2195: 'led_style', +2196: 'modulatable_push_toggle_button_style', +2197: 'number_field_style', +2198: 'radio_button_style', +2199: 'menu_style', +2200: 'styles', +2201: 'style', +2202: 'tag_entry_styles', +2203: 'push_toggle_button_styles', +2204: 'tooltip_style', +2205: 'icon_button_style', +2206: 'border_style', +2207: 'status_bar_style', +2208: 'accordion_styles', +2209: 'tree_style', +2210: 'popup_chooser_styles', +2211: 'tab_selector_style', +2212: 'push_button_styles', +2213: 'push_toggle_indicator_button_style', +2214: 'progress_bar_styles', +2215: 'toolbar_style', +2216: 'number_field_styles', +2217: 'border_theme', +2218: 'knob_size_style', +2219: 'popup_button_style', +2220: 'tree_styles', +2221: 'activity_indicator_style', +2222: 'toggle_button_style', +2223: 'tag_entry_style', +2224: 'panel_style', +2225: 'button_style', +2226: 'icon_toggle_button_style', +2227: 'popup_color_chooser_button_style', +2228: 'font_theme', +2229: 'text_editor_style', +2230: 'font_style', +2231: 'background_task_style', +2232: 'text_input_style', +2233: 'popup_chooser_style', +2234: 'background_tasks_indicator_style', +2235: 'area_style', +2236: 'slider_style', +2237: 'text_editor_styles', +2238: 'widget_theme', +2239: 'color_style_mode', +2240: 'widget_shape', +2241: 'border_type', +2242: 'file_entry_widget', +2243: 'text_viewport_widget', +2244: 'text_field_widget', +2245: 'password_text_input_widget', +2246: 'multi_line_text_input_widget', +2247: 'single_line_text_input_widget', +2248: 'text_widget', +2249: 'text_editor_widget', +2250: 'console_text_input_widget', +2251: 'password_field_widget', +2252: 'text_input_widget', +2253: 'search_entry_field_widget', +2254: 'led_widget', +2255: 'activity_indicator_widget', +2256: 'swirly_animation_widget', +2257: 'simple_animation_widget', +2258: 'value_led_widget', +2259: 'bool_led_widget', +2260: 'status_bar_widget', +2261: 'progress_bar_widget', +2262: 'button_group_widget', +2263: 'link_button_widget', +2264: 'color_button_widget', +2265: 'toggle_button_group_widget', +2266: 'radio_button_widget', +2267: 'toggle_button_widget', +2268: 'image_link_button_widget', +2269: 'push_toggle_button_widget', +2270: 'text_link_button_widget', +2271: 'button_widget', +2272: 'push_toggle_indicator_button_widget', +2273: 'checkbox_widget', +2274: 'modulatable_push_toggle_button_widget', +2275: 'icon_toggle_button_widget', +2276: 'push_button_widget', +2277: 'button_state', +2278: 'toggle_button_group_constraints', +2279: 'display_slider_widget', +2280: 'number_field_widget', +2281: 'knob_widget', +2282: 'icon_number_field_widget', +2283: 'numeric_widget', +2284: 'multi_number_field_widget', +2285: 'slider_widget', +2286: 'slider_handle_widget', +2287: 'modulateable_numeric_widget', +2288: 'ranged_numeric_widget', +2289: 'function_display_widget', +2290: 'menu_separator_widget', +2291: 'menu_bar_widget', +2292: 'pin_menu_item_widget', +2293: 'menu_item_widget', +2294: 'menu_widget', +2295: 'action_menu_item_widget', +2296: 'menu_bar_item_widget', +2297: 'sub_menu_item_widget', +2298: 'popup_menu_button_widget', +2299: 'check_menu_item_widget', +2300: 'pull_down_menu_widget', +2301: 'radio_menu_item_widget', +2302: 'label_menu_item_widget', +2303: 'toggle_menu_item_widget', +2304: 'action_sub_menu_item_widget', +2305: 'radio_menu_widget', +2306: 'menu_panel_widget', +2307: 'menu_separator_title_widget', +2308: 'text_edit_popup_widget', +2309: 'menu_item_provider_cell_widget', +2310: 'menu_item_layout_type', +2311: 'popup_chooser_widget', +2312: 'chooser_widget', +2313: 'button_group_chooser_widget', +2314: 'popup_chooser_item_widget', +2315: 'radio_button_group_chooser_widget', +2316: 'button_grid_chooser_widget', +2317: 'abstract_button_group_chooser_widget', +2318: 'properties_editor_widget', +2319: 'file_entry_widget', +2320: 'editor', +2321: 'horizontal_properties_editor_widget', +2322: 'popup_color_chooser_button_widget', +2323: 'vertical_properties_editor_widget', +2324: 'saturation_brightness_picker_widget', +2325: 'graph_widget', +2326: 'hue_picker_widget', +2327: 'switchable_pull_down_menu_widget', +2328: 'color_picker_widget', +2329: 'color_field_widget', +2330: 'alpha_picker_widget', +2331: 'pull_down_menu_panel_widget', +2332: 'color_square_widget', +2333: 'color_values_editor_widget', +2334: 'color_editor_widget', +2335: 'color_palette_widget', +2336: 'scroller_widget', +2337: 'classic_scroller_widget', +2338: 'viewport_widget', +2339: 'scrollbar_handle_widget', +2340: 'scrollbar_button_widget', +2341: 'button_scrollable_viewport_widget', +2342: 'classic_scrollbar_widget', +2343: 'scrollbar_widget', +2344: 'scrollbar_model', +2345: 'modern_scrollbar_widget', +2346: 'modern_scroller_widget', +2347: 'modern_scroller_shadow_widget', +2348: 'scrollbar_mode', +2349: 'toolbar_widget', +2350: 'toolbar_button_widget', +2351: 'splitter_widget', +2352: 'splitter_quantization_mode', +2353: 'splitter_resize_mode', +2354: 'tree_widget', +2355: 'tree_column_widget', +2356: 'tree_column_header_widget', +2357: 'tree_cell_widget', +2358: 'tree_column_header_bar_widget', +2359: 'main_tree_column_widget', +2360: 'tree_column', +2361: 'main_tree_cell_widget', +2362: 'accordion_widget', +2363: 'accordion_section_widget', +2364: 'background_task_status_bar_message_widget', +2365: 'background_tasks_list_widget', +2366: 'background_task_widget', +2367: 'background_tasks_indicator_widget', +2368: 'widget_debugger_state', +2369: 'expression_evaluator_widget', +2370: 'evaluation_context_inspector_widget', +2371: 'widget_debugger_widget', +2372: 'document_debugger_widget', +2373: 'settings', +2374: 'object_setting', +2375: 'double_setting', +2376: 'bool_setting', +2377: 'string_setting', +2378: 'int32_setting', +2379: 'setting', +2389: 'tag_pill_widget', +2390: 'tag_matrix_widget', +2391: 'tag_text_input_widget', +2392: 'tag_entry_widget', +2393: 'connected_monitor_configuration_selector_widget', +2394: 'add_shortcut_dialog_widget', +2395: 'keyboard_shortcut_input_widget', +2396: 'add_keyboard_shortcut_dialog_widget', +2397: 'monitor_scaling_factor_widget', +2398: 'monitor_configuration_display_widget', +2399: 'shortcut_mappings_editor_column_header_widget', +2400: 'shortcut_contexts_input_widget', +2401: 'shortcut_mappings_chooser_widget', +2402: 'shortcut_mappings_editor_widget', +2403: 'shortcut_pill_widget', +2404: 'shortcut_input_widget', +2405: 'notification_widget', +2406: 'notifications_indicator_widget', +2407: 'notifications_overlay_widget', +2408: 'notifications_list_widget', +2409: 'test_icon_widget', +2410: 'test_runner_widget', +2426: 'execution_test_audio', +2427: 'nitro_compiler_cache_entry', +2428: 'port_info', +2429: 'execution_test_case', +2430: 'execution_test_event', +2431: 'port_kind', +2432: 'package_manager', +2433: 'available_package', +2434: 'package_manager_source', +2435: 'package_state', +2436: 'package_activity_state', +2437: 'profile_settings', +2438: 'mode_settings', +2439: 'float_document_view_settings', +2440: 'browser_panel_layout', +2441: 'automation_editor_panel_layout', +2442: 'song_panel_layout', +2443: 'studio_panel_layout', +2444: 'mode', +2445: 'mappings_browser_panel_layout', +2446: 'mode_dependent_panel_layout', +2447: 'arranger_panel_layout', +2448: 'profile_object', +2449: 'compact_browser_panel_layout', +2450: 'device_panel_layout', +2451: 'large_browser_panel_layout', +2452: 'profile', +2453: 'inspector_panel_layout', +2454: 'single_panel_layout', +2455: 'mixer_panel_layout', +2456: 'note_editor_panel_layout', +2457: 'panel_layout_for_modes', +2458: 'screen_layout', +2459: 'onscreen_keyboard_panel_layout', +2460: 'split_panel_layout', +2461: 'detail_editor_panel_layout', +2462: 'choice_panel_layout', +2463: 'hideable_panel_layout', +2464: 'arranger_or_mixer_panel_layout', +2465: 'panel_layout', +2466: 'timeline_editor_domain', +2467: 'detail_editor_contents_mode', +2468: 'media_manager_widget', +2469: 'arranger_buttons_widget', +2470: 'nested_device_chain_properties_widget', +2471: 'track_or_track_group_header_widget', +2472: 'plugin_multiout_index_chooser_widget', +2473: 'clip_automation_type_chooser_widget', +2474: 'detail_editor_automation_layout_widget', +2475: 'remote_controls_page_widget', +2476: 'remote_controls_widget', +2477: 'song_properties_widget', +2478: 'mixer_scrollbar_widget', +2479: 'mixer_track_group_sends_widget', +2480: 'track_group_matrix_buttons_widget', +2481: 'arranger_cue_marker_timeline_widget', +2482: 'file_preview_player_widget', +2483: 'simple_device_chain_widget', +2484: 'performance_profiler_widget', +2485: 'matrix_scenes_widget', +2486: 'arranger_track_group_header_widget', +2487: 'led_atom_device_panel_widget', +2488: 'arranger_matrix_stop_button_cell_widget', +2489: 'breadcrumb_navigator_widget', +2490: 'drum_pads_scroller_widget', +2491: 'filter_column_widget', +2492: 'track_arrangement_widget', +2493: 'mixer_matrix_scene_headers_widget', +2494: 'matrix_slot_widget', +2495: 'browser_save_clip_dialog_widget', +2496: 'arranger_stop_buttons_widget', +2497: 'routing_component_device_panel_widget', +2498: 'nested_device_chain_overview_widget', +2499: 'comping_target_sequence_widget', +2500: 'note_or_clip_sequence_widget', +2501: 'timeline_viewport_widget', +2502: 'arranger_cue_marker_selection_properties_widget', +2503: 'mixer_track_mixer_section_widget', +2504: 'quantize_end_popup_panel_widget', +2505: 'console_window', +2506: 'launcher_clip_note_editor_title_area_widget', +2507: 'float_audio_preferences_widget', +2508: 'missing_device_contents_widget', +2509: 'note_fades_sequence_widget', +2510: 'cached_device_chain_cell_widget', +2511: 'grid_panel_item_widget', +2512: 'launcher_clip_automation_editor_title_area_widget', +2513: 'trigger_led_atom_device_panel_widget', +2514: 'float_midi_preferences_widget', +2515: 'float_activation_serial_part_widget', +2516: 'component_editor', +2517: 'invoke_action_entry_widget', +2518: 'float_main_panel_widget', +2519: 'timeline_widget', +2520: 'float_preferences_widget', +2521: 'device_search_session_widget', +2522: 'note_clip_header_sequence_widget', +2523: 'modulation_destination_list_item_widget', +2524: 'note_led_atom_device_panel_widget', +2525: 'display_spectrum_panel_item_widget', +2526: 'invoke_action_widget', +2527: 'user_configurable_processing_delay_placeholder_component_device_panel_widget', +2528: 'top_level_arranger_clip_content_note_sequence_widget', +2529: 'integer_value_atom_knob_widget', +2530: 'float_window', +2531: 'add_controller_shortcut_dialog_widget', +2532: 'display_boolean_observer_panel_item_widget', +2533: 'audio_file_column_based_search_session_widget', +2534: 'pitch_ruler_widget', +2535: 'matrix_scene_clips_overview_widget', +2536: 'note_expression_event_selection_properties_widget', +2537: 'plugin_errors_dialog_widget', +2538: 'top_level_note_sequence_widget', +2539: 'sample_search_session_widget', +2540: 'source_selector_widget', +2541: 'automation_track_timeline_widget', +2542: 'device_widget', +2543: 'note_lane_control_widget', +2544: 'float_note_clip_metadata_widget', +2545: 'device_chain_count_widget', +2546: 'boolean_value_atom_widget', +2547: 'device_chain_meter_widget', +2548: 'previewable_result_widget', +2549: 'channel_mapping_widget', +2550: 'spacer_timeline_widget', +2551: 'note_velocity_header_widget', +2552: 'meter_panel_item_widget', +2553: 'track_navigation_chooser_widget', +2554: 'mixer_track_headers_widget', +2555: 'scene_properties_widget', +2556: 'decimal_value_atom_slider_widget', +2557: 'bounce_point_chooser_widget', +2558: 'panel_display_component_widget', +2559: 'mixer_matrix_stop_button_cell_widget', +2560: 'file_results_widget', +2561: 'timeline_detail_toolbar_widget', +2562: 'full_device_chain_meter_widget', +2563: 'port_widget', +2564: 'float_recording_preferences_widget', +2565: 'preview_cell_widget', +2566: 'browser_save_modulator_dialog_widget', +2567: 'track_group_layer_control_widget', +2568: 'mixer_track_group_devices_widget', +2569: 'plugin_multiout_device_chain_list_widget', +2570: 'label_component_widget', +2571: 'note_clip_metadata_widget', +2572: 'empty_selection_properties_widget', +2573: 'module_panel_widget', +2574: 'note_parameter_header_widget', +2575: 'limitations_menu_bar_item_widget', +2576: 'control_surface_document_state_widget', +2577: 'sampler_resource_component_device_panel_widget', +2578: 'float_controller_settings_widget', +2579: 'integer_value_atom_widget', +2580: 'arranger_track_group_layout_widget', +2581: 'float_activation_dialog', +2582: 'audio_device_configuration_widget', +2583: 'audio_note_content_sequence_widget', +2584: 'arrangement_note_editor_widget', +2585: 'plugin_metadata_widget', +2586: 'indexed_value_atom_device_panel_widget', +2587: 'float_activation_serial_widget', +2588: 'slot_or_scene_properties_widget', +2589: 'note_sequence_widget', +2590: 'ruler_timeline_widget', +2591: 'module_panel_editor_widget', +2592: 'track_section_widget', +2593: 'note_editor_tool_chooser_widget', +2594: 'remote_control_widget', +2595: 'mixer_empty_panel_area_widget', +2596: 'constant_boolean_value_atom_device_panel_widget', +2597: 'mixer_nested_device_chain_inspector_widget', +2598: 'mixer_channel_layout_widget', +2599: 'surge_classic_oscillator_atom_widget', +2600: 'quantize_dialog_widget', +2601: 'maximized_module_panel_widget', +2602: 'edit_preset_metadata_dialog_widget', +2603: 'accordion_filter_section_widget', +2604: 'nitro_atom_device_panel_widget', +2605: 'single_pitch_note_sequence_widget', +2606: 'complex_device_chain_widget', +2607: 'arranger_track_header_overview_widget', +2608: 'beat_time_number_widget', +2609: 'device_item_widget', +2610: 'event_or_time_selection_action', +2611: 'arranger_automation_lane_cell_widget', +2612: 'vu_meter_atom_device_panel_widget', +2613: 'multisample_zone_settings_widget', +2614: 'audio_lanes_control_widget', +2615: 'note_lane_chooser_widget', +2616: 'browser_save_clip_or_preset_dialog_widget', +2617: 'decimal_value_atom_number_field_widget', +2618: 'automation_sequence_widget', +2619: 'meter_scale_widget', +2620: 'audio_lanes_layout_widget', +2621: 'display_polyphonic_observer_panel_item_widget', +2622: 'export_audio_dialog_widget', +2623: 'track_group_header_overview_widget', +2624: 'effect_channel_sends_widget', +2625: 'component_properties_widget', +2626: 'panel_splitter_widget', +2627: 'block_size_slider_widget', +2628: 'multisample_piano_ruler_widget', +2629: 'agree_to_eula_dialog_widget', +2630: 'desktop_editor_toolbar_widget', +2631: 'float_synchronization_preferences_widget', +2632: 'mixer_matrix_bta_button_cell_widget', +2633: 'maximized_track_group_header_widget', +2634: 'multi_sample_column_based_search_session_widget', +2635: 'track_group_timeline_widget', +2636: 'arranger_or_mixer_panel_contents_widget', +2637: 'transfer_function_widget', +2638: 'drum_pads_device_panel_widget', +2639: 'available_package_detailed_info_widget', +2640: 'plugin_errors_list_widget', +2641: 'track_group_contents_widget', +2642: 'quantize_start_popup_panel_widget', +2643: 'nested_device_chain_list_entry_widget', +2644: 'arranger_track_group_chooser_widget', +2645: 'desktop_item_container', +2646: 'matrix_scene_slot_widget', +2647: 'boolean_per_display_value_component_device_panel_widget', +2648: 'audio_expression_chooser_widget', +2649: 'edit_clip_metadata_dialog_widget', +2650: 'song_panel_widget', +2651: 'send_crash_report_dialog_widget', +2652: 'mixer_panel_contents_layout_widget', +2653: 'arranger_overview_matrix_section_widget', +2654: 'mixer_matrix_clip_widget', +2655: 'drum_pad_widget', +2656: 'abstract_auxiliary_device_cell_widget', +2657: 'base_value_handle_widget', +2658: 'arranger_matrix_slot_grid_widget', +2659: 'arranger_track_gap_widget', +2660: 'phasemod_oscillator_bank_atom_device_panel_widget', +2661: 'trigger_atom_device_panel_widget', +2662: 'automation_editor_widget', +2663: 'used_plugins_widget', +2664: 'context_insert_session', +2665: 'create_new_driver_dialog_widget', +2666: 'metadata_hyperlink_widget', +2667: 'mixer_matrix_track_slots_widget', +2668: 'player_track_timeline_widget', +2669: 'indexed_value_atom_button_matrix_widget', +2670: 'auxiliary_device_widget', +2671: 'clip_timeline_header_widget', +2672: 'oscilloscope_atom_device_panel_widget', +2673: 'note_parameter_sequence_widget', +2674: 'file_metadata_widget', +2675: 'file_browser_results_widget', +2676: 'multi_sample_search_session_widget', +2677: 'single_clip_preview_overview_widget', +2678: 'connect_to_document_dialog_widget', +2679: 'int_observer_atom_device_panel_widget', +2680: 'clip_color_palette_widget', +2681: 'control_surface_track_cursor_widget', +2682: 'arranger_note_editor_section_layout_widget', +2683: 'arranger_matrix_track_group_slots_widget', +2684: 'sampler_waveform_widget', +2685: 'matrix_slot_or_scene_widget', +2686: 'module_properties_widget', +2687: 'maximized_arranger_track_group_header_widget', +2688: 'timeline_detail_layers_control_widget', +2689: 'audio_note_lane_control_widget', +2690: 'vst_plugin_metadata_widget', +2691: 'loop_region_selection_properties_widget', +2692: 'delete_unused_files_dialog_widget', +2693: 'onscreen_keyboard_panel_widget', +2694: 'multi_clip_preview_overview_widget', +2695: 'indexed_value_type_edit_widget', +2696: 'control_atom_widget', +2697: 'channel_properties_widget', +2698: 'reverb_display_component_device_panel_widget', +2699: 'slice_dialog_widget', +2700: 'mixer_nested_device_chains_layout_widget', +2701: 'arranger_overview_timeline_section_widget', +2702: 'available_package_widget', +2703: 'onscreen_keyboard_widget', +2704: 'xy_display_component_device_panel_widget', +2705: 'matrix_slot_grid_widget', +2706: 'package_manager_dialog_widget', +2707: 'boolean_value_atom_toggle_button_widget', +2708: 'note_clip_detail_header_widget', +2709: 'clip_search_session_widget', +2710: 'arrangement_hints_widget', +2711: 'clip_header_and_content_timeline_widget', +2712: 'template_column_based_search_session_widget', +2713: 'sampler_resource_component_widget', +2714: 'sequence_editor_widget', +2715: 'beat_marker_sequence_widget', +2716: 'browser_overview_widget', +2717: 'search_session_search_field_widget', +2718: 'mixer_sends_widget', +2719: 'column_based_search_session_widget', +2720: 'empty_audio_sequence_widget', +2721: 'audio_note_sequence_widget', +2722: 'mixer_section_layout_widget', +2723: 'module_widget', +2724: 'display_oscilloscope_panel_item_widget', +2725: 'timeline_editor_toolbar_widget', +2726: 'matrix_launch_button_widget', +2727: 'modulation_source_atom_widget', +2728: 'matrix_note_editor_section_layout_widget', +2729: 'nested_device_chain_widget', +2730: 'mixer_sends_section_widget', +2731: 'track_layers_control_widget', +2732: 'control_surface_device_cursor_widget', +2733: 'pitched_note_lane_control_widget', +2734: 'container_panel_item_widget', +2735: 'audio_clip_layers_control_widget', +2736: 'channel_device_chain_widget', +2737: 'matrix_bta_button_cell_widget', +2738: 'eq_display_component_widget', +2739: 'module_column_based_search_session_widget', +2740: 'destination_selector_widget', +2741: 'float_toolbar_widget', +2742: 'header_track_gap_widget', +2743: 'instrument_track_layer_control_widget', +2744: 'note_selection_properties_widget', +2745: 'value_grid_widget', +2746: 'mixer_track_headers_section_widget', +2747: 'matrix_note_editor_widget', +2748: 'device_layer_properties_widget', +2749: 'track_group_stop_buttons_widget', +2750: 'device_column_based_search_session_widget', +2751: 'inspector_track_mixer_section_widget', +2752: 'track_mixer_section_widget', +2753: 'browser_tree_widget', +2754: 'clip_header_and_automation_sequence_widget', +2755: 'file_browser_widget', +2756: 'mixer_track_group_header_widget', +2757: 'reverb_display_component_widget', +2758: 'stack_panel_item_widget', +2759: 'track_timeline_widget', +2760: 'launcher_clip_selection_properties_widget', +2761: 'automation_lane_control_widget', +2762: 'multi_lane_note_pattern_widget', +2763: 'chain_selector_list_entry_widget', +2764: 'bitwig_dashboard_button_widget', +2765: 'arranger_toolbar_widget', +2766: 'display_element_panel_item_widget', +2768: 'matrix_scene_playheads_overview_widget', +2769: 'automation_editor_panel_widget', +2770: 'value_event_sequence_widget', +2771: 'track_group_header_widget', +2772: 'audio_wallpaper_chooser_widget', +2773: 'float_behaviour_preferences_widget', +2774: 'compact_search_session_widget', +2775: 'audio_clip_layer_control_widget', +2776: 'panel_item_palette_widget', +2777: 'control_surface_cursor_widget', +2778: 'horiz_filter_column_widget', +2779: 'matrix_audio_note_lane_widget', +2780: 'arranger_matrix_scene_header_widget', +2781: 'mixer_crossfade_widget', +2782: 'preset_search_session_widget', +2783: 'timeline_edit_tool_chooser_widget', +2784: 'mini_device_widget', +2785: 'dashboard_help_widget', +2786: 'parallel_nested_device_chain_container_device_panel_widget', +2787: 'event_property_histogram_panel_widget', +2788: 'arranger_tool_chooser_widget', +2789: 'mixer_meters_widget', +2790: 'arranger_clip_selection_properties_widget', +2791: 'vu_meter_atom_peak_hold_widget', +2792: 'generic_inspector_widget', +2793: 'track_delay_info_widget', +2794: 'automation_chooser_widget', +2795: 'available_packages_widget', +2796: 'audio_track_layers_control_widget', +2797: 'track_gap_widget', +2798: 'folder_results_widget', +2799: 'slot_and_scene_properties_widget', +2800: 'matrix_automation_editor_widget', +2801: 'arranger_track_io_section_widget', +2802: 'integer_value_atom_number_field_widget', +2803: 'top_level_timeline_widget', +2804: 'clip_selection_properties_widget', +2805: 'float_document_widget', +2806: 'float_document_chooser_widget', +2807: 'slot_properties_widget', +2808: 'performance_profiler_window', +2809: 'mixer_matrix_scene_slot_widget', +2810: 'device_component_inspector_widget', +2811: 'chain_selector_panel_item_widget', +2812: 'plugin_exceptions_list', +2813: 'device_remote_controls_editor_widget', +2814: 'modulator_grid_widget', +2815: 'decimal_value_atom_device_panel_widget', +2816: 'limitation_state_widget', +2817: 'time_signature_value_atom_widget', +2818: 'panel_cables_widget', +2819: 'multi_sample_zones_layer_widget', +2820: 'template_welcome_dialog_widget', +2821: 'mixer_track_group_layout_widget', +2822: 'audio_note_header_sequence_widget', +2823: 'detail_clip_header_sequence_widget', +2824: 'arranger_BTA_buttons_widget', +2825: 'mode_dependent_panel_widget', +2826: 'track_or_track_group_widget', +2827: 'top_level_clip_automation_timeline_widget', +2828: 'browser_results_widget', +2829: 'automation_track_arrangement_widget', +2830: 'track_timeline_header_widget', +2831: 'audio_gain_expression_sequence_widget', +2832: 'float_activation_license_widget', +2833: 'control_surface_mapping_indication_widget', +2834: 'browser_save_preset_dialog_widget', +2835: 'mixer_nested_device_chain_mixer_widget', +2836: 'matrix_track_slots_widget', +2837: 'note_editor_panel_widget', +2838: 'music_search_session_widget', +2839: 'group_module_device_panel_widget', +2840: 'cue_marker_selection_properties_widget', +2841: 'display_scope_observer_panel_item_widget', +2842: 'browser_save_dialog_widget', +2843: 'xy_display_component_widget', +2844: 'custom_bounce_point_chooser_widget', +2845: 'top_level_automation_timeline_widget', +2846: 'pitched_note_sequence_widget', +2847: 'nitro_ide_widget', +2848: 'search_session_widget', +2849: 'onset_sequence_widget', +2850: 'clip_automation_editor_title_area_widget', +2851: 'modulator_detail_widget', +2852: 'multisample_editor_window', +2853: 'mixer_buttons_widget', +2854: 'joker_automation_lane_control_widget', +2855: 'integer_value_atom_slider_widget', +2856: 'plugin_device_header_widget', +2857: 'float_display_preferences_widget', +2858: 'modulation_destination_list_widget', +2859: 'empty_timeline_widget', +2860: 'mixer_matrix_scene_header_widget', +2861: 'indexed_value_atom_button_group_widget', +2862: 'arranger_track_timelines_widget', +2863: 'audio_track_layer_control_widget', +2864: 'device_header_widget', +2865: 'display_line_panel_item_widget', +2866: 'browser_save_multisample_dialog_widget', +2867: 'time_signature_number_field_widget', +2868: 'arranger_matrix_slot_widget', +2869: 'top_level_launcher_clip_content_note_sequence_widget', +2870: 'mixer_nested_device_chain_header_widget', +2871: 'matrix_track_group_slots_widget', +2872: 'arranger_track_automation_timeline_widget', +2873: 'instrument_clip_layers_control_widget', +2874: 'sequence_widget', +2875: 'note_editor_widget', +2876: 'automation_editor_toolbar_widget', +2877: 'full_device_chain_mixer_widget', +2878: 'modulation_mapping_destination_list_widget', +2879: 'selector_widget', +2880: 'matrix_scene_headers_widget', +2881: 'device_properties_widget', +2882: 'selected_clip_headers_sequence_widget', +2883: 'arranger_timeline_header_widget', +2884: 'float_audio_clip_metadata_widget', +2885: 'phasemod_oscillator_bank_atom_field_widget', +2886: 'float_activation_login_widget', +2887: 'auxiliary_device_grid_widget', +2888: 'arranger_matrix_bta_button_cell_widget', +2889: 'modulator_column_based_search_session_widget', +2890: 'constant_multiply_atom_device_panel_widget', +2891: 'arranger_overview_section_widget', +2892: 'value_ruler_widget', +2893: 'matrix_clip_color_cell_widget', +2894: 'modulator_cell_widget', +2895: 'mixer_track_group_bta_buttons_widget', +2896: 'note_editor_toolbar_widget', +2897: 'float_activation_offline_widget', +2898: 'mixer_matrix_track_group_slots_widget', +2899: 'mixer_empty_nested_device_chain_widget', +2900: 'lookup_table_atom_widget', +2901: 'current_limitation_state_widget', +2902: 'pitch_grid_widget', +2903: 'matrix_scene_slots_widget', +2904: 'track_layer_control_widget', +2905: 'float_document_selector_widget', +2906: 'warp_event_selection_properties_widget', +2907: 'mixer_track_group_crossfade_widget', +2908: 'mappings_overlay_widget', +2909: 'arranger_track_header_widget', +2910: 'automation_editor_title_area_widget', +2911: 'recover_documents_dialog_widget', +2912: 'folder_result_chooser_widget', +2913: 'dashboard_widget', +2914: 'auxiliary_device_detail_widget', +2915: 'display_lightweight_oscilloscope_panel_item_widget', +2916: 'miniature_panel_painter_widget', +2917: 'detail_editor_title_area_widget', +2918: 'indexed_value_atom_dropdown_svg_widget', +2919: 'display_point_panel_item_widget', +2920: 'quantize_popup_panel_widget', +2921: 'plugin_exceptions_list_widget', +2922: 'decimal_value_atom_slope_widget', +2923: 'single_clip_automation_editor_widget', +2924: 'arranger_matrix_scene_slots_widget', +2925: 'remote_control_slot_mapping_widget', +2926: 'mixer_track_header_widget', +2927: 'mixer_track_group_io_widget', +2928: 'float_user_interface_preferences_widget', +2929: 'dashboard_packages_widget', +2930: 'warp_mode_chooser_widget', +2931: 'choice_panel_widget', +2932: 'clip_cue_marker_timeline_widget', +2933: 'drum_device_chain_properties_widget', +2934: 'track_type_icon_widget', +2935: 'event_length_dialog_widget', +2936: 'nested_device_chain_slot_device_panel_widget', +2937: 'mixer_track_group_scrollbar_widget', +2938: 'note_velocity_sequence_widget', +2939: 'mixer_meter_widget', +2940: 'mixer_stop_and_bta_buttons_widget', +2941: 'browser_play_preview_overlay_widget', +2942: 'indexed_value_atom_field_widget', +2943: 'pitched_matrix_note_sequence_widget', +2944: 'preset_column_based_search_session_widget', +2945: 'maximized_mixer_track_group_header_widget', +2946: 'constant_add_atom_device_panel_widget', +2947: 'track_group_widget', +2948: 'timeline_detail_control_widget', +2949: 'matrix_lane_widget', +2950: 'arranger_track_group_stop_buttons_widget', +2951: 'arranger_or_mixer_panel_widget', +2952: 'track_group_overview_sequence_widget', +2953: 'drum_pads_widget', +2954: 'constant_integer_value_atom_device_panel_widget', +2955: 'float_device_metadata_widget', +2956: 'boolean_value_atom_device_panel_widget', +2957: 'indexed_value_atom_dropdown_widget', +2958: 'bounce_options_widget', +2959: 'nested_device_chain_list_widget', +2960: 'arranger_panel_widget', +2961: 'module_panel_tree_widget', +2962: 'mixer_devices_section_widget', +2963: 'track_input_bus_chooser_widget', +2964: 'constant_atom_device_panel_widget', +2965: 'top_level_track_automation_timeline_widget', +2966: 'full_device_widget', +2967: 'timeline_header_widget', +2968: 'audio_expression_sequence_widget', +2969: 'arranger_track_group_bta_buttons_widget', +2970: 'display_polyphonic_observer_panel_item_scope_widget', +2971: 'mixer_track_group_stop_buttons_widget', +2972: 'device_chain_widget', +2973: 'arranger_automation_editor_widget', +2974: 'value_led_atom_device_panel_widget', +2975: 'mixer_devices_widget', +2976: 'track_automation_editor_title_area_widget', +2977: 'plugin_management_preferences_widget', +2978: 'matrix_scene_widget', +2979: 'port_connections_widget', +2980: 'modulation_source_list_widget', +2981: 'project_not_in_project_dir_dialog', +2982: 'timeline_detail_panel_widget', +2983: 'file_browser_overview_widget', +2984: 'component_device_panel_widget', +2985: 'arranger_matrix_scene_slot_widget', +2986: 'track_or_track_group_layer_control_widget', +2987: 'plugin_device_program_widget', +2988: 'bitwig_multisample_metadata_widget', +2989: 'drum_pad_play_button_widget', +2990: 'mixer_matrix_scene_slots_widget', +2991: 'arranger_overview_track_headers_section_widget', +2992: 'save_as_template_dialog_widget', +2993: 'browser_widget', +2994: 'note_pitch_header_widget', +2995: 'sampler_resource_widget', +2996: 'mixer_tracks_widget', +2997: 'box_panel_item_widget', +2998: 'plugin_decimal_parameter_atom_widget', +2999: 'float_activation_options_widget', +3000: 'mixer_track_widget', +3001: 'effect_channel_send_entry_widget', +3002: 'float_document_GUI_wrapper', +3003: 'popup_browser_dialog_widget', +3004: 'top_level_arranger_clip_automation_timeline_widget', +3005: 'new_from_template_dialog_widget', +3006: 'track_widget', +3007: 'send_group_widget', +3008: 'proxy_port_component_device_panel_widget', +3009: 'clip_header_and_note_sequence_widget', +3010: 'device_preset_info_widget', +3011: 'modulator_widget', +3012: 'remote_controls_page_editor_widget', +3013: 'tabbed_dashboard_widget', +3014: 'beat_grid_widget', +3015: 'selected_file_info_device_widget', +3016: 'top_level_arrangement_note_sequence_widget', +3017: 'display_data_array_panel_item_widget', +3018: 'decimal_value_atom_knob_widget', +3019: 'file_info_area_widget', +3020: 'mixer_nested_device_chain_widget', +3021: 'arranger_track_layout_widget', +3022: 'indexed_value_atom_widget', +3023: 'arranger_loop_timeline_widget', +3024: 'studio_panel_widget', +3026: 'timeline_layer_control_widget', +3027: 'arranger_matrix_track_slots_widget', +3028: 'multisample_zones_widget', +3029: 'track_io_section_widget', +3030: 'mixer_track_group_meters_widget', +3031: 'boolean_value_atom_power_toggle_button_widget', +3032: 'instrument_track_layers_control_widget', +3033: 'audio_transpose_expression_sequence_widget', +3034: 'automation_event_selection_properties_widget', +3035: 'track_group_bta_buttons_widget', +3036: 'mixer_io_widget', +3037: 'auxiliary_device_column_widget', +3038: 'mixer_matrix_slot_grid_widget', +3039: 'automation_editor_tool_chooser_widget', +3040: 'clip_column_based_search_session_widget', +3041: 'controller_shortcut_input_widget', +3042: 'track_send_widget', +3043: 'multi_list_nested_device_chain_list_widget', +3044: 'share_document_dialog_widget', +3045: 'nested_device_chain_mixer_widget', +3046: 'chain_selector_device_chain_list_widget', +3047: 'menu_container_panel_item_widget', +3048: 'browser_save_device_dialog_widget', +3049: 'track_output_bus_chooser_widget', +3050: 'top_level_launcher_clip_automation_timeline_widget', +3051: 'arranger_track_group_header_overview_widget', +3052: 'channel_header_widget', +3053: 'template_search_session_widget', +3054: 'insert_button_widget', +3055: 'note_lanes_scroller_widget', +3056: 'selection_properties_widget', +3057: 'device_editor_widget', +3058: 'svg_image_component_device_panel_widget', +3059: 'clip_layer_control_widget', +3060: 'full_device_chain_widget', +3061: 'invoke_action_category_widget', +3062: 'native_device_header_widget', +3063: 'value_atom_widget', +3064: 'surge_classic_oscillator_atom_device_panel_widget', +3065: 'arranger_track_automation_layout_widget', +3066: 'float_song_metadata_widget', +3067: 'arranger_matrix_clip_widget', +3068: 'desktop_editor_widget', +3069: 'arranger_effect_track_header_widget', +3070: 'hitcount_widget', +3071: 'device_chain_panel_widget', +3072: 'event_selection_properties_widget', +3073: 'arranger_track_mixer_buttons_widget', +3074: 'multi_lane_note_sequence_widget', +3075: 'meter_scale_panel_item_widget', +3076: 'matrix_button_cell_widget', +3077: 'meter_widget', +3078: 'full_device_connector_widget', +3079: 'available_packages_list_widget', +3080: 'single_sample_resource_widget', +3081: 'transfer_function_atom_device_panel_widget', +3082: 'desktop_item_port_container', +3083: 'matrix_scene_header_widget', +3084: 'dashboard_user_widget', +3085: 'time_signature_properties_widget', +3086: 'decimal_value_atom_multi_number_field_widget', +3087: 'collect_and_save_dialog_widget', +3088: 'mixer_track_io_section_widget', +3089: 'matrix_track_gap_widget', +3090: 'audio_lanes_timeline_widget', +3091: 'panel_port_widget', +3092: 'remote_control_slot_widget', +3093: 'matrix_automation_lane_widget', +3094: 'matrix_note_lane_widget', +3095: 'track_headers_widget', +3096: 'float_library_preferences_widget', +3097: 'sample_waveform_widget', +3098: 'document_to_recover', +3099: 'arranger_track_mixer_section_widget', +3100: 'bounce_dialog_widget', +3101: 'mapping_source_widget', +3102: 'timeline_detail_section_configuration_widget', +3103: 'event_property_histogram_widget', +3104: 'mixer_track_group_widget', +3105: 'multisample_zone_widget', +3106: 'float_document_chooser_item_widget', +3107: 'modulator_column_widget', +3108: 'module_rack_widget', +3109: 'modulation_mapping_list_widget', +3110: 'online_resources_widget', +3111: 'note_led_atom_widget', +3112: 'bordering_container_panel_item_widget', +3113: 'auxiliary_device_remote_controls_editor_widget', +3114: 'auxiliary_device_cell_widget', +3115: 'popup_browser_insert_dialog_widget', +3116: 'detail_automation_control_widget', +3117: 'tags_metadata_field_widget', +3118: 'mappings_browser_panel_widget', +3119: 'inspector_widget', +3120: 'context_specific_browser_menu_button_widget', +3121: 'label_component_device_panel_widget', +3122: 'panel_item_properties_widget', +3123: 'plugin_exceptions_list_item', +3124: 'plugin_parameters_widget', +3125: 'remote_control_page_chooser_widget', +3126: 'mixer_matrix_slot_widget', +3127: 'mini_device_chain_widget', +3128: 'clip_fades_sequence_widget', +3129: 'mixer_panel_widget', +3130: 'note_editor_control_widget', +3131: 'tabbed_float_main_panel_widget', +3132: 'music_column_based_search_session_widget', +3133: 'device_connector_widget', +3134: 'audio_file_metadata_widget', +3135: 'float_window_group', +3136: 'arranger_player_track_header_widget', +3137: 'matrix_clip_and_playhead_widget', +3138: 'float_plugin_preferences_widget', +3139: 'display_line_painting_container_widget', +3140: 'integer_value_atom_device_panel_widget', +3141: 'browser_save_module_dialog_widget', +3142: 'velocity_ruler_widget', +3143: 'modulation_source_atom_device_panel_widget', +3144: 'string_metadata_field_widget', +3145: 'detailed_plugin_decimal_parameter_atom_widget', +3146: 'nitro_atom_widget', +3147: 'piano_keyboard_widget', +3148: 'instrument_clip_layer_control_widget', +3149: 'editable_module_panel_widget', +3150: 'remote_controls_page_group_editor_widget', +3151: 'display_eq_point_panel_item_widget', +3152: 'dashboard_settings_widget', +3153: 'indexed_value_atom_icon_field_widget', +3154: 'file_reference_widget', +3155: 'matrix_timeline_and_playhead_widget', +3156: 'track_header_widget', +3157: 'clip_layers_control_widget', +3158: 'proxy_port_container_widget', +3159: 'clip_content_automation_sequence_widget', +3160: 'eq_display_component_device_panel_widget', +3161: 'display_axes_panel_item_widget', +3162: 'package_manager_source_chooser_widget', +3163: 'matrix_instrument_note_lane_widget', +3164: 'vu_meter_atom_widget', +3165: 'sends_section_widget', +3166: 'device_port_widget', +3167: 'folder_results_filter_section_widget', +3168: 'value_scale_widget', +3169: 'arranger_clip_note_editor_title_area_widget', +3170: 'inspector_panel_widget', +3171: 'display_panel_item_widget', +3172: 'mixer_nested_device_chain_io_section_widget', +3173: 'note_editor_section_layout_widget', +3174: 'lookup_table_atom_device_panel_widget', +3175: 'gain_change_meter_atom_device_panel_widget', +3176: 'arrangement_timeline_widget', +3177: 'matrix_stop_button_cell_widget', +3178: 'sample_column_based_search_session_widget', +3179: 'snap_settings_popup_widget', +3180: 'audio_io_device_connection_chooser_widget', +3181: 'track_note_editor_title_area_widget', +3182: 'auxiliary_device_detail_cell_widget', +3183: 'time_signature_sequence_widget', +3184: 'pitched_arrangement_note_sequence_widget', +3185: 'arranger_automation_sequence_widget', +3186: 'track_mixer_widget', +3187: 'panel_item_palette_entry_widget', +3189: 'player_track_arrangement_widget', +3190: 'arranger_master_track_header_widget', +3191: 'horiz_filter_column_result_widget', +3192: 'top_level_clip_content_note_sequence_widget', +3193: 'float_document_status_icon_widget', +3194: 'float_preset_metadata_widget', +3195: 'arranger_panel_contents_widget', +3196: 'device_item_container', +3197: 'single_clip_note_editor_widget', +3198: 'transport_settings_widget', +3199: 'arranger_clip_automation_editor_title_area_widget', +3200: 'any_file_metadata_widget', +3201: 'browser_panel_widget', +3202: 'matrix_clip_widget', +3203: 'modulator_properties_widget', +3204: 'oscilloscope_atom_widget', +3205: 'arranger_matrix_scene_headers_widget', +3206: 'automation_control_widget', +3207: 'channel_widget', +3208: 'permanent_automation_lane_control_widget', +3209: 'drum_chain_inspector_widget', +3210: 'edit_metadata_dialog_widget', +3211: 'onset_event_selection_properties_widget', +3212: 'float_synchronization_preferences_midi_out_widget', +3213: 'abstract_display_axes_panel_item_widget', +3214: 'cue_marker_timeline_widget', +3215: 'remote_controls_editor_widget', +3216: 'mini_device_connector_widget', +3217: 'float_shortcut_preferences_widget', +3218: 'decimal_value_atom_widget', +3219: 'mixer_panel_contents_widget', +3220: 'open_cloud_document_dialog_widget', +3221: 'preview_overview_widget', +3222: 'arranger_track_headers_widget', +3223: 'float_device_editor_window', +3224: 'search_session_results_widget', +3225: 'track_or_track_group_properties_widget', +3226: 'used_plugin_widget', +3227: 'timeline_and_playhead_widget', +3228: 'desktop_item_widget', +3229: 'clip_header_sequence_widget', +3230: 'timeline_view_region_handle_widget', +3231: 'send_container_widget', +3232: 'mini_device_chain_meter_widget', +3233: 'plugin_device_contents_widget', +3234: 'context_specific_browser_cell_widget', +3235: 'mini_plugin_device_widget', +3236: 'search_results_widget', +3237: 'modulation_mapping_list_item_widget', +3238: 'multisample_resource_widget', +3239: 'used_plugins_filter_type', +3240: 'media_manager_filter_type', +3241: 'onscreen_keyboard_mode', +3242: 'float_device_editor_style', +3243: 'timeline_styles', +3244: 'float_menu_bar_style', +3245: 'track_style', +3246: 'float_dialog_styles', +3247: 'browser_style', +3248: 'matrix_cell_style', +3249: 'invoke_action_style', +3250: 'automation_lane_style', +3251: 'snap_settings_style', +3252: 'file_preview_player_style', +3253: 'arranger_panel_style', +3254: 'arranger_cue_marker_timeline_style', +3255: 'timeline_style', +3256: 'file_info_area_style', +3257: 'cue_marker_style', +3258: 'used_plugins_style', +3259: 'float_document_selector_style', +3260: 'package_manager_style', +3261: 'value_event_curve_style', +3262: 'cue_marker_timeline_style', +3263: 'file_reference_style', +3264: 'audio_note_lane_style', +3265: 'float_tool_bar_style', +3266: 'time_selection_style', +3267: 'channel_style', +3268: 'detail_editor_style', +3269: 'value_event_timeline_style', +3270: 'note_editor_layer_style', +3271: 'float_widget_theme', +3272: 'mixer_panel_style', +3273: 'value_event_point_style', +3274: 'file_reference_state_style', +3275: 'inspector_style', +3276: 'value_event_timeline_styles', +3277: 'media_manager_style', +3278: 'file_transfer_manager', +3279: 'file_to_transfer', +3280: 'native_memory_usage_widget', +3281: 'test_check_widget', +3283: 'dummy_audio_host_api', +3286: 'transient_rate', +3287: 'chain_selector_indexed_value_atom', +3288: 'dialog_window_widget', +3290: 'warp_tail_mode', +3291: 'bitwig_studio_test_runner_widget', +3292: 'undocked_dialog_window_widget', +3293: 'device_color_transforming_cell_widget', +3296: 'automation_track_timeline_header_widget', +3297: 'note_track_timeline_header_widget', +3788: 'preserve_onsets_mode', +} \ No newline at end of file diff --git a/src/tables.py b/src/lib/luts/tables.py similarity index 76% rename from src/tables.py rename to src/lib/luts/tables.py index fca3efe..553056b 100644 --- a/src/tables.py +++ b/src/lib/luts/tables.py @@ -180,14 +180,181 @@ 1968:"float_core.sampler_resource_panel_item", 1996:"float_core.scope_observer_component", 1997:"float_core.display_scope_observer_panel_item", -2017:"float_common_atoms.bool_delay_compensation_atom"} +2017:"float_common_atoms.bool_delay_compensation_atom", +#test names + + +#retrieved from bitwig.jar +64:"native_device_preset", +82:"float_core.note_clip_event_timeline", +127:"float_core.boolean_value_atom_preset", +133:"float_core.decimal_value_atom_preset", +157:"float_core.automation_track_timeline", +158:"float_core.master_track", +211:"float_core.generic_module_preset", +213:"float_core.effect_track", +247:"float_core.indexed_value_atom_preset", +276:"float_core.player_track", +393:"float_core.integer_value_atom_preset", +477:"float_core.track_group", +479:"clip_document", +1218:"send_value_atom", +1219:"pan_value_atom", +1220:"volume_value_atom", +1221:'groove_shuffle_value_atom', +1222:'groove_accent_amount_value_atom', +1223:'groove_accent_phase_value_atom', +1224:'groove_enabled_value_atom', +1225:'groove_retrigger_on_submeasure_value_atom', +1226:'special_boolean_value_atom', +1227:'groove_accent_rate_value_atom', +1228:'atom_reference', +1229:'groove_shuffle_rate_value_atom', +1230:'mute_value_atom', +1231:'launch_clip_from_beat_time_queued_matrix_action', +1232:'arpeggiator_atom', +1233:'arpeggiator_mode', +1234:'int_observer_atom', +1235:'gate_detector_atom', +1236:'note_generator_atom', +1377:"preset_document", +1574:"controller_shortcut", +1575:"controller_note_press_shortcut", +1737:"float_core.modulator_preset", +1753:"float_common_atoms.string_panel_value_preset", +1755:"float_common_atoms.boolean_panel_value_preset", +1887:"modulator_grid_preset", +1915:"remote_controls_page_preset", +1916:"remote_control_preset", +1917: "remote_controls_page_group_preset", +1918: "remote_controls_page", +2963:"float_core.track_input_bus_chooser_widget", +2157:"separator_line_widget", +9144:"float_core.track", +} params = { -2057:"description", 17:"x", 18:"y", 19:"color", +169:"hold_milliseconds", +173:"child_components", +175:"panel_width", +177:"proxy_in_ports", +178:"proxy_out_ports", +179:"polyphony", +210:"value", +248:"source_component", +249:"outport_index", +292:"min", +293:"max", +294:"domain", +295:"engine_domain", +296:"unit", +297:"decimal_digit_count", +298:"edit_style", +301:"port", +345:"min", +346:"max", +372:"channel_count", +374:"name", +385:"device_UUID", +386:"device_name", +387:"creator", +388:"comment", +389:"keywords", +390:"category", +391:"device_type", +392:"has_been_modified", +393:"items", +394:"edit_style", +457:"value", +498:"name", +499:"decorated_name", +500:"is_inport", +502:"x", +503:"y", +504:"width", +505:"height", +506:"is_visible", +607:"channel_count", +608:"oversampling", +612:"desktop_settings", +613:"panel_settings", +614:"inport_connections", +615:"is_polyphonic", +650:"id", +651:"name", +701:"preset_identifier", +702:"value_type", +712:"value", +720:"constant_value", +721:"mix_mode", +724:"multiplier_pairs", +725:"inputs", +726:"cells", +727:"source_domain", +728:"destination_domain", +732:"mode", +733:"buffer", +734:"display_input_min", +735:"display_input_max", +736:"display_output_min", +737:"display_output_max", +738:"max_delay_time", +739:"value", +740:"max_delay_time", +741:"comparison", +742:"column_count", +743:"row_count", +744:"row_data", +745:"min_value", +746:"max_value", +747:"wrap_mode", +750:"constant_value", +751:"max_delay_time", +752:"name", +753:"buffer_length", +754:"mode", +755:"filter_type", +756:"text", +757:"label_type", +758:"label_align", +818:"edit_style", +819:"value_prefix", +820:"value_postfix", +821:"label", +822:"label_placement", +823:"tooltip_text", +824:"columns", +828:"value", +833:"invert", +835:"name", +836:"preset_identifier", +842:"comparison", +843:"comparison_value", +844:"multiplier", +845:"offset", +846:"smoothing", +852:"interpolation_mode", +858:"time_range_in_seconds", +891:"default_value", +964:"keytrack", +1373:"show_mixer_as_subtrack", +1374:"subtrack_sends_count", +1384:"is_optional", +1750:"bipolar", +1863:"high_quality", +1866:"preset_identifier", +1926:"is_freq_exponential_pitch", +1943:"high_quality", +1977:"sleep_level_threshold", +1978:"sleep_level_timeout", +1988:"pixel_step_size", +2012:"min_db", +2013:"max_db", +2057:"description", 2071:"length_in_samples_at_44khz", 2072:"length_in_samples_at_44khz", 2073:"length_in_samples_at_44khz", @@ -195,6 +362,75 @@ 2076:"show_mixer_at_end_of_chain", 2077:"has_mute", 2079:"has_volume_and_pan", +2203:"destination", +2205:"internal_oversampling", +2207:"nonlinearity", +2220:"has_solo", +2267:"svg_data", +2270:"must_have_device_chain", +2291:"pole_count", +2315:"tooltip_text", +2320:"num_phases", +2434:"suggest_note_input_devices", +2435:"suggest_audio_input_devices", +3014:"value_origin", +3047:"rows", +3048:"columns", +3049:"pad_width", +3050:"pad_height", +3154:"second_input_is_scalar", +3639:"name", +3640:"preset_identifier", +3642:"title", +3676:"clip_level", +3682:"resonance_mode", +3700:"num_operators", +3702:"operator_matrix", +3707:"additional_inputs_string", +3771:"preset_identifier", +3826:"modulations_to_ignore", +4017:"resource_category_filter", +4018:"resource_creator_filter", +4313:"destination", +4341:"preset_identifier", +4347:"no_choice_label", +4433:"parameter_smoothing", +4434:"allow_automation_curves", +4471:"hardware_or_device_destination", +4723:"value_origin", +4724:"pixel_step_size", +4726:"text_style", +4741:"description", +4754:"edit_style", +4755:"icon_name", +4763:"inputs", +4826:"value_count", +4828:"value", +4846:"suggest_for_note_input", +4847:"suggest_for_audio_input", +5075:"midi_channel", +5316:"output_smoothing", +5331:"delay_in_samples", +5332:"max_delay_in_samples", +5333:"placeholder_delay_unit", +5334:"include_output_latency", +5335:"min_delay_in_samples", +5336:"delay_label", +5337:"preset_identifier", +5361:"should_devices_in_slot_determine_device_type", +5452:"display_settings", +5455:"is_source_expanded_in_inspector", +5768:"suggest_note_output_devices", +5769:"suggest_audio_output_devices", +5950:"is_frozen", +5975:"a_color", +5976:"b_color", +5978:"background_color", +5979:"axis_color", +5982:"a_domain", +5983:"b_domain", +5985:"trigger_color", +5987:"svg_filename", 6194:"settings", 6209:"is_horizontal", 6210:"horizontal_alignment", @@ -234,62 +470,31 @@ 6265:"is_downward", 6266:"style", 6267:"label_style", -4846:"suggest_for_note_input", 6274:"expression", 6275:"panel_item", 6277:"expressions", -2203:"destination", -751:"max_delay_time", -2205:"internal_oversampling", -2207:"nonlinearity", 6309:"is_visible", 6310:"is_enabled", -6513:"component_y", -169:"hold_milliseconds", 6316:"attribute_id", -173:"child_components", -175:"panel_width", -177:"proxy_in_ports", -178:"proxy_out_ports", -179:"polyphony", -372:"channel_count", -374:"name", -210:"value", -4313:"destination", -2267:"svg_data", -2270:"must_have_device_chain", +6369:"device_UUID", +6370:"device_name", +6371:"description", +6372:"creator", +6373:"comment", +6374:"keywords", +6375:"category", +6376:"has_been_modified", 6384:"color_tint", 6386:"value", 6387:"preset_identifier", -4341:"preset_identifier", 6391:"value", -248:"source_component", -249:"outport_index", -4347:"no_choice_label", 6400:"horizontal_alignment", 6401:"vertical_alignment", 6402:"multiline", -2315:"tooltip_text", -2434:"suggest_note_input_devices", -2320:"num_phases", +6411:"bipolar_panel_value", 6417:"header_area_panel", -2435:"suggest_audio_input_devices", -389:"keywords", 6435:"include_input_latency", -292:"min", -293:"max", -294:"domain", -295:"engine_domain", -296:"unit", -297:"decimal_digit_count", -298:"edit_style", 6443:"unconnected_value", -301:"port", -393:"items", -4433:"parameter_smoothing", -4434:"allow_automation_curves", -345:"min", -346:"max", 6496:"label", 6497:"offset", 6498:"is_horizontal", @@ -306,37 +511,24 @@ 6510:"y_domain", 6511:"y_unit", 6512:"component_x", -744:"row_data", +6513:"component_y", 6515:"component", 6516:"show_x_axis_label", 6517:"show_y_axis_label", 6518:"color", -4471:"hardware_or_device_destination", 6520:"color", 6521:"color", 6522:"title_color", -746:"max_value", -385:"device_UUID", -386:"device_name", -387:"creator", -388:"comment", 6533:"dimensions", -390:"category", -391:"device_type", -392:"has_been_modified", 6537:"color", -394:"edit_style", 6540:"style", -6894:"interpolation_parameter", 6552:"invert_value", 6553:"numeric_domain_x", 6554:"numeric_domain_y", -4847:"suggest_for_audio_input", -6896:"draw_y_line", 6555:"numeric_domain_z", 6564:"fft_order", 6566:"fft_order", -6897:"dot_size", +6567:"fft_order", 6569:"window_function", 6570:"overlap", 6571:"overlap", @@ -350,7 +542,6 @@ 6581:"show_value_bar", 6582:"scale_with_frequency", 6597:"fixed_type", -457:"value", 6609:"data", 6613:"data_size", 6614:"preset_identifier", @@ -360,21 +551,16 @@ 6618:"highlight_color", 6620:"steps_to_show", 6621:"step_offset", -6567:"fft_order", -498:"name", -499:"decorated_name", -500:"is_inport", -502:"x", -503:"y", -504:"width", -505:"height", -506:"is_visible", 6684:"horizontal_alignment", 6685:"style", 6694:"style", +6695:"detail_panel", +6707:"can_be_polyphonic", 6714:"show_info_on_hover", 6715:"scope_mode", 6719:"is_selected", +6724:"should_be_polyphonic_by_default", +6725:"should_enable_perform_mode_by_default", 6730:"show_modulated_value", 6731:"show_modulated_value", 6736:"show_labels", @@ -385,23 +571,8 @@ 6741:"max_bound", 6742:"data_model", 6743:"value_offset", -607:"channel_count", -608:"oversampling", -612:"desktop_settings", -613:"panel_settings", -614:"inport_connections", -615:"is_polyphonic", 6767:"scale", 6768:"opacity", -4723:"value_origin", -4724:"pixel_step_size", -4726:"text_style", -4741:"description", -650:"id", -651:"name", -4754:"edit_style", -4755:"icon_name", -4763:"inputs", 6834:"context_menu_panel", 6835:"data_model", 6836:"title", @@ -409,157 +580,186 @@ 6838:"is_selected", 6839:"title", 6840:"icon_name", -701:"preset_identifier", -702:"value_type", -712:"value", -720:"constant_value", -721:"mix_mode", +6841:"name_panel_value", +6842:"name_panel_value", +6846:"associated_modulation_source", 6867:"tooltip_text", -724:"multiplier_pairs", -725:"inputs", -726:"cells", -727:"source_domain", -728:"destination_domain", -4826:"value_count", -4828:"value", -733:"buffer", -734:"display_input_min", -735:"display_input_max", -736:"display_output_min", -737:"display_output_max", -738:"max_delay_time", -739:"value", -740:"max_delay_time", -741:"comparison", -742:"column_count", -743:"row_count", 6888:"show_x_axis", 6889:"show_y_axis", 6890:"clip_x_axis_lines", 6891:"clip_y_axis_lines", 6893:"interpolation", -750:"constant_value", +6894:"interpolation_parameter", 6895:"draw_x_line", -752:"name", -753:"buffer_length", -754:"mode", -755:"filter_type", -756:"text", -757:"label_type", -758:"label_align", +6896:"draw_y_line", +6897:"dot_size", 6956:"default_value", 6957:"default_value", 6958:"default_value", -818:"edit_style", -819:"value_prefix", -820:"value_postfix", -821:"label", -822:"label_placement", -823:"tooltip_text", -824:"columns", -828:"value", -833:"invert", -835:"name", -836:"preset_identifier", -842:"comparison", -843:"comparison_value", -844:"multiplier", -845:"offset", -846:"smoothing", 6991:"gain_x", 6992:"gain_y", -852:"interpolation_mode", -858:"time_range_in_seconds", 7024:"playback_observer", -891:"default_value", 7055:"knob_style", 7056:"label_color", 7057:"pie_color", -964:"keytrack", -3014:"value_origin", -5075:"midi_channel", -3047:"rows", -3048:"columns", -3049:"pad_width", -3050:"pad_height", -7158:"include_block_size", -7161:"should_compensate_delay", -7174:"exclude_from_graph", -2220:"has_solo", -7188:"font", -3154:"second_input_is_scalar", -5316:"output_smoothing", -5331:"delay_in_samples", -5332:"max_delay_in_samples", -5333:"placeholder_delay_unit", -5334:"include_output_latency", -5335:"min_delay_in_samples", -5336:"delay_label", -5337:"preset_identifier", -5361:"should_devices_in_slot_determine_device_type", -5452:"display_settings", -5455:"is_source_expanded_in_inspector", -1373:"show_mixer_as_subtrack", -1374:"subtrack_sends_count", -1384:"is_optional", -2291:"pole_count", -732:"mode", -3639:"name", -3640:"preset_identifier", -3642:"title", -3676:"clip_level", -3682:"resonance_mode", -3700:"num_operators", -3702:"operator_matrix", -3707:"additional_inputs_string", -5768:"suggest_note_output_devices", -5769:"suggest_audio_output_devices", -3771:"preset_identifier", -1750:"bipolar", -3826:"modulations_to_ignore", -5950:"is_frozen", -1863:"high_quality", -1866:"preset_identifier", -5975:"a_color", -5976:"b_color", -5978:"background_color", -5979:"axis_color", -5982:"a_domain", -5983:"b_domain", -5985:"trigger_color", -5987:"svg_filename", -745:"min_value", -1926:"is_freq_exponential_pitch", -1943:"high_quality", -747:"wrap_mode", -4017:"resource_category_filter", -4018:"resource_creator_filter", -1977:"sleep_level_threshold", -1978:"sleep_level_timeout", -1988:"pixel_step_size", -2012:"min_db", -2013:"max_db", -6841:"name_panel_value", -6411:"bipolar_panel_value", -6846:"associated_modulation_source", -6369:"device_UUID", -6370:"device_name", -6371:"description", -6372:"creator", -6373:"comment", -6374:"keywords", -6375:"category", -6376:"has_been_modified", -6695:"detail_panel", -6724:"should_be_polyphonic_by_default", -6725:"should_enable_perform_mode_by_default", -6707:"can_be_polyphonic", -6842:"name_panel_value", -7107:"dot_size", 7100:"label", 7101:"component", 7102:"numeric_domain_x", 7103:"numeric_domain_y", 7104:"numeric_domain_z", 7105:"draw_x_line", -7106:"draw_y_line"} \ No newline at end of file +7106:"draw_y_line", +7107:"dot_size", +7158:"include_block_size", +7161:"should_compensate_delay", +7174:"exclude_from_graph", +7188:"font", +#test names +68:"jax_Name?", +69:"jax_Creator", +420:"jax_clipVol", +421:"jax_clipPan", +422:"jax_clipMute", +5924:"jax_clipLen", +5925:"jax_clipBPM", +5926:"jax_clipTag", + +6779:"jax_presetParamName", +6780:"jax_presetParamDest", +6781:"jax_presetParamData", +6792:"jax_presetParamRCNumber", + +#retrieved from bitwig.jar +15:"UUID", +153:"device_UUID", +154:"device_name", +155:"device_creator", +156:"device_category", +157:"device_type", +158:"creator", +159:"comment", +161:"preset_category", +162:"keywords", +163:"enabled", +164:"contents", +250:'label', +251:'value', +252:'enabled', +253:'shuffle_rate', +254:'shuffle_amount', +256:'accent_rate', +257:'accent_amount', +258:'accent_phase', +265:'title', +266:'is_queued_for_retriggering', +267:'width', +269:'audio_bus_type', +271:'value', +289:'get_all_track_timelines', +290:'get_all_clip_event_timelines', +360:"display_settings", +524:"child_presets", +568:"clip_timeline", +697:"identifier", +1245:"track_group", +1356:"color", +2202:"source", +2199:"track_destination", +3157:"device_name", +3158:"vendor", +3159:"plugin_devices", +3170:"is_missing", +3174:"latest_version_installed", +3175:"version_conflicts", +3177:"ignore_all_version_conflicts", +3178:"ignore_version_conflict", +3220:"has_version_conflicts", +3616:"mappings", +3955:"preview_onsets", +3980:"begin_adjusting_key_range", +3981:"end_adjusting_key_range", +4151:"pan", +4152:"timbre", +4153:"amplitude", +4162:"transpose", +4274:"can_split_at_onsets", +4278:"can_slide_to_previous_onset", +4279:"can_slide_to_next_onset", +4451:"containing_clip_properties", +4531: 'title', +4532: 'original_artist', +4533: 'album', +4534: 'writer', +4535: 'producer', +4536: 'year', +4537: 'genre', +4538: 'copyright', +4539: 'artist', +4703:"tempo", +4709:"reset_to_project_tempo", +4830:"preset_name", +4990:"active", +5147:"audio_input_channel_count", +5148:"audio_output_channel_count", +5149:"has_note_input", +5150:"has_note_output", +5157:"warp_grain_size", +5465:"user_device_name", +5711:"note_id", +5803:"pressure", +6342:"device_UUID", +6343:"device_contents", +6389:"modulator_grid", +6635:"begin_hot_swap", +6679:"grid_x", +6680:"grid_y", +6681:"is_polyphonic_mode", +6682:"grid_x", +6683:"grid_y", +6797:"is_controller_panel_visible", +6825:"are_modulators_visible", +6831:"was_extracted_during_document_conversion", +6973:"device_types_mask", +6974:"initial_browsing_session_state_preferences", +6977:"active", +6978:"effective_active", +7243:"line_width", +7358:"value", +7386:"formant", +7485:"preserve_formants", +7486:"formant_envelope_resolution", +7489:"allow_automation", +7490:"allow_modulation", +7526:"color", +7527:"color", +7528:"color", +7530:"font", +7548:"button_style", +7549:"maximized_panel", +7697:"is_horiz_expandable", +9657:"is_maximized_panel_shown", +9676:"warp_tail_mode", +8156:"text_document", +8157:"is_read_only", +8158:"can_be_selected_when_read_only", +8159:"style", +8160:"left_margin", +8161:"right_margin", +8162:"cursor_position", +8163:"cursor_line", +8164:"cursor_column", +8165:"has_selection", +8166:"selection_anchor", +8167:"delete_prev_char", +8168:"delete", +8169:"enter", +8170:"cut", +8171:"copy", +#"paste", 8172 +#"move_cursor_left", 8173 +#"move_cursor_right", 8174 +#"move_cursor_to_start_of_document", 8175 +#"move_cursor_to_end_of_document", 8176 +#"move_cursor_to_start_of_line", 8177 +#"move_cursor_to_end_of_line", 8178 +} \ No newline at end of file diff --git a/src/lib/luts/typeLists.py b/src/lib/luts/typeLists.py new file mode 100644 index 0000000..61cebe7 --- /dev/null +++ b/src/lib/luts/typeLists.py @@ -0,0 +1,615 @@ +classList = { +17: [17, 18, 19], +236: [612, 614, 615], +123: [292, 293, 891, 294, 295, 3014, 1988, 296, 297, 298, 4433, 4434], +289: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 712], +61: [498, 4741, 499, 500, 1384, 7174], +154: [6194, 301], +105: [248, 249, 1943, 6443], +1721: [6194, 607, 608, 6264, 6567], +1751: [6194, 6387, 6386], +1763: [6194, 607, 608, 374, 821, 823, 701, 3826, 7489, 7490, 712, 6411, 6841, 6846], +198: [4755, 6957], +87: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 210], +1839: [6194], +258: [650, 651], +155: [393, 394, 824, 6958], +180: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 457], +1488: [5455], +766: [6194, 607, 608, 3639, 3640, 5452], +1815: [6194, 607, 608, 6533], +1694: [6217, 6218, 6215, 6216], +1803: [6217, 6218], +1805: [6226, 6309, 6310, 6867, 6888, 6889, 6890, 6891, 6516, 6517, 6714], +1816: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6513, 6553, 6554, 6555, 6715, 6895, 6896, 6897], +1806: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6500, 6501, 6512, 6513, 6730, 6893, 6894, 6991, 6992], +1817: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6537, 7243, 6731], +1804: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6737], +1717: [6226, 6309, 6310, 6867, 6220, 6241, 6258], +1681: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245], +1728: [6274, 6275, 6316], +1680: [6226, 6309, 6310, 6867, 6211, 6212, 6232, 6233, 6277], +1807: [6226, 6309, 6310, 6867, 6499, 6518, 6497, 6503, 6498], +1685: [6226, 6309, 6310, 6867, 6220, 6244, 6263, 7525], +1719: [6226, 6309, 6310, 6867, 6400, 6401, 6258, 6259, 6521, 6767, 6768], +1702: [6226, 6309, 6310, 6867, 6220, 6241, 6239, 6240, 6267, 6552, 6719, 7527, 7530], +1683: [6226, 6309, 6310, 6867, 6400, 6401, 6219, 6520, 7188], +1713: [6226, 6309, 6310, 6867, 6220, 6540, 6581, 7526], +1714: [6226, 6309, 6310, 6867, 6220, 6262, 6266, 7528], +242: [498, 4741, 499, 500, 1384, 7174, 372], +1735: [6194, 173, 6213, 177, 178, 6566, 6834, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6695, 6707, 6724, 6725], +372: [6194, 607, 608], +367: [6194, 607, 608, 3154], +1996: [6194], +1997: [6226, 6309, 6310, 6867, 6499, 6518, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107], +1687: [6226, 6309, 6310, 6867, 6220, 6241, 6223, 7055, 7056, 7057], +466: [6194, 607, 608], +1722: [6226, 6309, 6310, 6867, 6220, 6265, 7529], +1928: [6217, 6218], +1924: [6226, 6309, 6310, 6867, 6839, 6840, 6835, 6837, 6838], +1923: [6226, 6309, 6310, 6867, 6221, 6836], +587: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220, 835, 2315, 2270, 5361], +578: [6194, 607, 608, 2205, 2207, 3676, 3682], +1371: [6194, 607, 608], +301: [6194, 607, 608, 721], +1851: [6194, 607, 6572, 6571, 6573], +189: [6194, 607], +1712: [6226, 6309, 6310, 6867, 6220, 6255, 6256, 6257, 7548], +1852: [6226, 6309, 6310, 6867, 6574, 6575, 6577, 6582], +1855: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6500, 6501, 6512, 6513, 6730, 6893, 6894, 6991, 6992, 6579, 6580, 6597], +1704: [6226, 6309, 6310, 6867, 6220], +1723: [6226, 6309, 6310, 6867, 6220], +50: [6194, 301], +151: [6194, 173, 6213, 177, 178, 6566, 6834, 179, 1977, 1978, 385, 386, 2057, 387, 388, 389, 390, 391, 4846, 4847, 392, 6384, 6417, 7549, 9657], +338: [739], +318: [726], +344: [6194, 607, 608, 742, 743, 744, 745, 746, 747, 5316], +143: [345, 346, 6956, 818, 819, 820, 4723, 4724], +394: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 828], +1232: [6194, 607, 608], +1234: [6194, 607, 4828, 4826], +303: [6194, 607, 608, 750], +308: [6194, 607, 608, 750], +857: [6194, 4341, 4347, 7161], +314: [6194, 607, 608, 750], +300: [6194, 607, 608], +337: [6194, 607, 608, 3154], +401: [6194, 607, 608], +542: [6194, 607, 608], +298: [6194, 607, 608, 720], +1654: [6194, 607, 5950, 5975, 5976, 5978, 5979, 5982, 5983, 5985], +1810: [6226, 6309, 6310, 6867, 6515], +1435: [6194, 607, 608], +374: [6194, 756, 757, 758, 4726], +370: [6194, 607, 608], +319: [6194, 607, 608], +306: [6194, 607, 608], +340: [6194, 607, 608, 3154, 741], +354: [6194, 607, 608, 3154], +294: [6194, 607, 608], +295: [6194, 607, 608], +297: [6194, 607, 608], +368: [6194, 607, 608], +336: [6194, 607, 608, 738], +406: [6194, 607, 608, 2320], +304: [6194, 607, 608, 724], +339: [6194, 607, 608, 740], +769: [6194, 607, 608], +402: [6194, 607, 608, 964], +410: [6194, 607, 608, 1750], +320: [6194, 607, 608, 727, 728], +547: [6194, 607, 608], +40: [6194, 607, 2075], +556: [6194, 607, 2012, 2013], +1891: [6226, 6309, 6310, 6867, 6736], +1724: [6226, 6309, 6310, 6867, 6742, 6738, 6739, 6740, 6741, 6743], +545: [6194, 607, 608], +352: [6194, 607, 608, 3154], +343: [6194, 607, 608, 3154], +404: [6194, 607, 608, 844, 845, 846], +327: [6194, 607, 608], +565: [6194, 607, 608, 2072], +331: [6194, 607, 608, 732, 733, 852], +345: [6194, 607, 608], +364: [6194, 607, 608, 752, 753, 754], +412: [6194, 607, 608, 858], +365: [6194, 607, 608, 755], +353: [6194, 607, 608], +431: [6194, 607, 608], +1695: [6217, 6218, 7552, 7553], +1679: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6209, 6210, 6225], +1159: [6194, 607, 608], +348: [6194, 607, 608, 3154], +316: [6194, 607, 608], +591: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220, 3047, 3048, 3049, 3050], +335: [6194, 607, 608, 734, 735, 736, 737], +584: [6194, 2267, 5987], +787: [6194, 607, 608], +414: [6194, 607, 608], +405: [6194, 607, 608], +398: [6194, 607, 608], +491: [6194, 607, 608], +312: [6194, 607, 608], +324: [6194, 607, 608, 1863], +413: [6194, 607, 608, 1926], +395: [6194, 607, 608, 833], +600: [6194, 607, 608, 2291], +400: [6194, 607, 608, 842, 843], +471: [6194, 607, 608], +305: [6194, 607, 608, 725], +321: [6194, 607, 608], +350: [6194, 607, 608], +311: [6194, 607, 608], +317: [6194, 607, 608], +778: [6194, 607, 608, 3700, 3707, 3702, 3771], +313: [6194, 607, 608, 7235], +2077: [6194, 607], +635: [6194, 607, 608, 2738], +2076: [6194, 607], +2072: [6194, 607], +2075: [6226, 6309, 6310, 6867, 7561, 7564, 7563, 7565, 7566, 7567, 7568], +1686: [6226, 6309, 6310, 6867], +409: [6194, 607, 608], +586: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +2067: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +2042: [6226, 6309, 6310, 6867, 6220], +347: [6194, 607, 608], +567: [6194, 607, 608, 2073], +239: [6194, 607, 608, 374, 821, 823], +577: [2203, 4471, 5075], +858: [6194, 4341, 4347, 4313], +1754: [6194, 6387, 6391], +1880: [6226, 6309, 6310, 6867, 6220, 6241, 6694], +1762: [6226, 6309, 6310, 6867, 6220, 6402, 6684, 6685], +859: [6194, 4341, 4347, 7161], +1870: [6194, 6614, 6609, 6613], +1438: [6194, 5331, 5333, 6435, 5334, 7158, 5335, 5332, 5336, 5337], +1872: [6226, 6309, 6310, 6867, 6499, 6518, 6615, 6616, 6617, 6618, 6620, 6621], +863: [6194, 4341, 4347, 4313], +2068: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +860: [6194, 4341, 4347, 7161], +1146: [6194, 607, 608], +1929: [6194, 607, 608, 3639, 3640, 5452, 6842], +2017: [6194, 607, 608], +2029: [6194, 607, 7293, 374], +2030: [6226, 6309, 6310, 6867, 7294], +407: [6194, 607, 608], +558: [6194, 607, 169], +1158: [6194, 607, 608], +1188: [6194, 607, 608, 4763], +566: [6194, 607, 608], +564: [6194, 607, 608, 2071], +1437: [6194, 5331, 5333, 6435, 5334, 7158], +2073: [6226, 6309, 6310, 6867, 7555, 7556, 7557], +1235: [6194, 607, 608], +1236: [6194, 607, 608], +363: [6194, 607, 608, 751], +529: [6194, 1866, 4017, 4018], +330: [6194, 607, 608], +1968: [6226, 6309, 6310, 6867, 6220, 7024, 7580], +1847: [6194, 607, 608, 6564, 6569, 6570], +1853: [6194, 607, 6572], +1170: [6194, 607, 608], +2050: [6194, 5331, 5333, 6435, 5334, 7158], +1153: [6194, 607, 608] +} +fieldList = { +17: 1, +18: 1, +19: 22, +169: 6, +173: 18, +177: 18, +178: 18, +179: 1, +210: 5, +248: 9, +249: 1, +292: 7, +293: 7, +294: 1, +295: 1, +296: 1, +297: 1, +298: 1, +301: 9, +345: 1, +346: 1, +372: 1, +374: 8, +385: 21, +386: 8, +387: 8, +388: 8, +389: 8, +390: 8, +391: 1, +392: 5, +393: 18, +394: 1, +457: 1, +498: 8, +499: 8, +500: 5, +607: 1, +608: 1, +612: 9, +614: 18, +615: 5, +650: 1, +651: 8, +701: 8, +702: 9, +712: 7, +720: 1, +721: 1, +724: 1, +725: 1, +726: 18, +727: 1, +728: 1, +732: 1, +733: 9, +734: 7, +735: 7, +736: 7, +737: 7, +738: 7, +739: 7, +740: 7, +741: 1, +742: 1, +743: 1, +744: 18, +745: 7, +746: 7, +747: 1, +750: 7, +751: 7, +752: 8, +753: 7, +754: 1, +755: 1, +756: 8, +757: 1, +758: 7, +818: 1, +819: 8, +820: 8, +821: 8, +823: 8, +824: 1, +828: 1, +833: 5, +835: 8, +836: 8, +842: 1, +843: 7, +844: 7, +845: 7, +846: 5, +852: 1, +858: 7, +891: 7, +964: 5, +1373: 5, +1374: 1, +1384: 5, +1750: 5, +1863: 5, +1866: 8, +1926: 5, +1943: 5, +1977: 7, +1978: 7, +1988: 7, +2012: 7, +2013: 7, +2057: 8, +2071: 1, +2072: 1, +2073: 1, +2075: 1, +2076: 5, +2077: 5, +2079: 5, +2203: None, +2205: 1, +2207: 1, +2220: 5, +2267: 8, +2270: 5, +2291: 1, +2315: 8, +2320: 1, +2434: 5, +2435: 5, +2738: 5, +3014: 1, +3047: 1, +3048: 1, +3049: 1, +3050: 1, +3154: 5, +3639: 8, +3640: 8, +3676: 7, +3682: 1, +3700: 1, +3702: 23, +3707: 8, +3771: 8, +3826: 8, +4017: 8, +4018: 8, +4313: 9, +4341: 8, +4347: 8, +4433: 5, +4434: 5, +4471: None, +4723: 1, +4724: 7, +4726: 1, +4741: 8, +4755: 8, +4763: 1, +4826: 1, +4828: 1, +4846: 5, +4847: 5, +5075: 1, +5316: 5, +5331: 1, +5332: 1, +5333: 1, +5334: 5, +5335: 1, +5336: 8, +5337: 8, +5361: 5, +5452: 20, +5455: 5, +5768: 5, +5769: 5, +5950: 5, +5975: 22, +5976: 22, +5978: 22, +5979: 22, +5982: 1, +5983: 1, +5985: 22, +5987: 8, +6194: 9, +6209: 5, +6210: 1, +6211: 8, +6212: 9, +6213: 18, +6215: 1, +6216: 1, +6217: 1, +6218: 1, +6219: 8, +6220: 9, +6221: 18, +6223: 1, +6225: 1, +6226: 9, +6228: 1, +6232: 1, +6233: 1, +6239: 8, +6240: 1, +6241: 8, +6242: 8, +6243: 5, +6244: 5, +6245: 1, +6255: 5, +6256: 1, +6257: 1, +6258: 8, +6259: 8, +6262: 1, +6263: 1, +6264: 8, +6265: 5, +6266: 1, +6267: 1, +6274: 8, +6275: 9, +6277: 18, +6309: 5, +6310: 5, +6316: 1, +6369: 21, +6370: 8, +6371: 8, +6372: 8, +6373: 8, +6374: 8, +6375: 8, +6376: 5, +6384: 1, +6386: 5, +6387: 8, +6391: 8, +6400: 1, +6401: 1, +6402: 5, +6411: 9, +6417: 9, +6435: 5, +6443: 7, +6496: 8, +6497: 7, +6498: 5, +6499: 5, +6500: 7, +6501: 7, +6503: 9, +6504: 7, +6505: 7, +6506: 1, +6507: 1, +6508: 7, +6509: 7, +6510: 1, +6511: 1, +6512: 9, +6513: 9, +6515: 9, +6516: 5, +6517: 5, +6518: 1, +6520: 1, +6521: 1, +6522: 1, +6533: 1, +6537: 1, +6540: 1, +6552: 5, +6553: 1, +6554: 1, +6555: 1, +6564: 1, +6566: 1, +6567: 1, +6569: 1, +6570: 7, +6571: 7, +6572: 1, +6573: 1, +6574: 9, +6575: 1, +6577: 1, +6579: 9, +6580: 9, +6581: 5, +6582: 5, +6597: 1, +6609: 23, +6613: 1, +6614: 8, +6615: 9, +6616: 5, +6617: 9, +6618: 1, +6620: 1, +6621: 1, +6684: 1, +6685: 1, +6694: 1, +6695: 9, +6707: 5, +6714: 5, +6715: 5, +6719: 5, +6724: 5, +6725: 5, +6730: 5, +6731: 5, +6736: 5, +6737: 5, +6738: 1, +6739: 1, +6740: 7, +6741: 7, +6742: 9, +6743: 7, +6767: 7, +6768: 7, +6834: 9, +6835: 9, +6836: 8, +6837: 5, +6838: 5, +6839: 8, +6840: 8, +6841: 9, +6842: 9, +6846: 9, +6867: 8, +6888: 5, +6889: 5, +6890: 5, +6891: 5, +6893: 1, +6894: 7, +6895: 5, +6896: 5, +6897: 7, +6956: 1, +6957: 5, +6958: 1, +6991: 7, +6992: 7, +7024: 9, +7055: 1, +7056: 1, +7057: 1, +7100: 8, +7101: 9, +7102: 1, +7103: 1, +7104: 1, +7105: 5, +7106: 5, +7107: 7, +7158: 5, +7161: 5, +7174: 5, +7188: 1, +7235: 5, +7243: 7, +7293: 5, +7294: 9, +7489: 5, +7490: 5, +7525: 1, +7526: 1, +7527: 1, +7528: 1, +7529: 1, +7530: 1, +7548: 1, +7549: 9, +7552: 5, +7553: 5, +7555: 5, +7556: 1, +7557: 1, +7561: 9, +7563: 7, +7564: 1, +7565: 7, +7566: 1, +7567: 7, +7568: 5, +7580: 5, +9657: 5, +'additional_device_types': 1, +'application_version_name': 8, +'branch': 8, +'comment': 8, +'creator': 8, +'device_category': 8, +'device_description': 8, +'device_id': 8, +'device_name': 8, +'device_type': 8, +'device_uuid': 21, +'has_audio_input': 5, +'has_audio_output': 5, +'has_note_input': 5, +'has_note_output': 5, +'is_polyphonic': 5, +'revision_id': 8, +'revision_no': 1, +'suggest_for_audio_input': 5, +'suggest_for_note_input': 5, +'tags': 8, +'type': 8, +} \ No newline at end of file diff --git a/src/notes.txt b/src/notes.txt new file mode 100644 index 0000000..516f4e7 --- /dev/null +++ b/src/notes.txt @@ -0,0 +1,16 @@ +Extract every class +classDict:{classNum:class} +class:orderedDict[field:type] + +class: +field1 +field2 +etc +{ +###:[###,###,###], +} + +field: type +{ +###: #, +} \ No newline at end of file diff --git a/src/tables.pyc b/src/tables.pyc deleted file mode 100644 index a050776489c7a21597573fe7999976af10b5c807..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20133 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 diff --git a/typeLists.py b/typeLists.py new file mode 100644 index 0000000..8d374ee --- /dev/null +++ b/typeLists.py @@ -0,0 +1,615 @@ +classList = { +17: [17, 18, 19], +236: [612, 614, 615], +123: [292, 293, 891, 294, 295, 3014, 1988, 296, 297, 298, 4433, 4434], +289: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 712], +61: [498, 4741, 499, 500, 1384, 7174], +154: [6194, 301], +105: [248, 249, 1943, 6443], +1721: [6194, 607, 608, 6264, 6567], +1751: [6194, 6387, 6386], +1763: [6194, 607, 608, 374, 821, 823, 701, 3826, 7489, 7490, 712, 6411, 6841, 6846], +198: [4755, 6957], +87: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 210], +1839: [6194], +258: [650, 651], +155: [393, 394, 824, 6958], +180: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 457], +1488: [5455], +766: [6194, 607, 608, 3639, 3640, 5452], +1815: [6194, 607, 608, 6533], +1694: [6217, 6218, 6215, 6216], +1803: [6217, 6218], +1805: [6226, 6309, 6310, 6867, 6888, 6889, 6890, 6891, 6516, 6517, 6714], +1816: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6513, 6553, 6554, 6555, 6715, 6895, 6896, 6897], +1806: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6500, 6501, 6512, 6513, 6730, 6893, 6894, 6991, 6992], +1817: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6537, 7243, 6731], +1804: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6737], +1717: [6226, 6309, 6310, 6867, 6220, 6241, 6258], +1681: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245], +1728: [6274, 6275, 6316], +1680: [6226, 6309, 6310, 6867, 6211, 6212, 6232, 6233, 6277], +1807: [6226, 6309, 6310, 6867, 6499, 6518, 6497, 6503, 6498], +1685: [6226, 6309, 6310, 6867, 6220, 6244, 6263, 7525], +1719: [6226, 6309, 6310, 6867, 6400, 6401, 6258, 6259, 6521, 6767, 6768], +1702: [6226, 6309, 6310, 6867, 6220, 6241, 6239, 6240, 6267, 6552, 6719, 7527, 7530], +1683: [6226, 6309, 6310, 6867, 6400, 6401, 6219, 6520, 7188], +1713: [6226, 6309, 6310, 6867, 6220, 6540, 6581, 7526], +1714: [6226, 6309, 6310, 6867, 6220, 6262, 6266, 7528], +242: [498, 4741, 499, 500, 1384, 7174, 372], +1735: [6194, 173, 6213, 177, 178, 6566, 6834, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6695, 6707, 6724, 6725], +372: [6194, 607, 608], +367: [6194, 607, 608, 3154], +1996: [6194], +1997: [6226, 6309, 6310, 6867, 6499, 6518, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107], +1687: [6226, 6309, 6310, 6867, 6220, 6241, 6223, 7055, 7056, 7057], +466: [6194, 607, 608], +1722: [6226, 6309, 6310, 6867, 6220, 6265, 7529], +1928: [6217, 6218], +1924: [6226, 6309, 6310, 6867, 6839, 6840, 6835, 6837, 6838], +1923: [6226, 6309, 6310, 6867, 6221, 6836], +587: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220, 835, 2315, 2270, 5361], +578: [6194, 607, 608, 2205, 2207, 3676, 3682], +1371: [6194, 607, 608], +301: [6194, 607, 608, 721], +1851: [6194, 607, 6572, 6571, 6573], +189: [6194, 607], +1712: [6226, 6309, 6310, 6867, 6220, 6255, 6256, 6257, 7548], +1852: [6226, 6309, 6310, 6867, 6574, 6575, 6577, 6582], +1855: [6226, 6309, 6310, 6867, 6499, 6518, 6496, 6500, 6501, 6512, 6513, 6730, 6893, 6894, 6991, 6992, 6579, 6580, 6597], +1704: [6226, 6309, 6310, 6867, 6220], +1723: [6226, 6309, 6310, 6867, 6220], +50: [6194, 301], +151: [6194, 173, 6213, 177, 178, 6566, 6834, 179, 1977, 1978, 385, 386, 2057, 387, 388, 389, 390, 391, 4846, 4847, 392, 6384, 6417, 7549, 9657], +338: [739], +318: [726], +344: [6194, 607, 608, 742, 743, 744, 745, 746, 747, 5316], +143: [345, 346, 6956, 818, 819, 820, 4723, 4724], +394: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 828], +1232: [6194, 607, 608], +1234: [6194, 607, 4828, 4826], +303: [6194, 607, 608, 750], +308: [6194, 607, 608, 750], +857: [6194, 4341, 4347, 7161], +314: [6194, 607, 608, 750], +300: [6194, 607, 608], +337: [6194, 607, 608, 3154], +401: [6194, 607, 608], +542: [6194, 607, 608], +298: [6194, 607, 608, 720], +1654: [6194, 607, 5950, 5975, 5976, 5978, 5979, 5982, 5983, 5985], +1810: [6226, 6309, 6310, 6867, 6515], +1435: [6194, 607, 608], +374: [6194, 756, 757, 758, 4726], +370: [6194, 607, 608], +319: [6194, 607, 608], +306: [6194, 607, 608], +340: [6194, 607, 608, 3154, 741], +354: [6194, 607, 608, 3154], +294: [6194, 607, 608], +295: [6194, 607, 608], +297: [6194, 607, 608], +368: [6194, 607, 608], +336: [6194, 607, 608, 738], +406: [6194, 607, 608, 2320], +304: [6194, 607, 608, 724], +339: [6194, 607, 608, 740], +769: [6194, 607, 608], +402: [6194, 607, 608, 964], +410: [6194, 607, 608, 1750], +320: [6194, 607, 608, 727, 728], +547: [6194, 607, 608], +40: [6194, 607, 2075], +556: [6194, 607, 2012, 2013], +1891: [6226, 6309, 6310, 6867, 6736], +1724: [6226, 6309, 6310, 6867, 6742, 6738, 6739, 6740, 6741, 6743], +545: [6194, 607, 608], +352: [6194, 607, 608, 3154], +343: [6194, 607, 608, 3154], +404: [6194, 607, 608, 844, 845, 846], +327: [6194, 607, 608], +565: [6194, 607, 608, 2072], +331: [6194, 607, 608, 732, 733, 852], +345: [6194, 607, 608], +364: [6194, 607, 608, 752, 753, 754], +412: [6194, 607, 608, 858], +365: [6194, 607, 608, 755], +353: [6194, 607, 608], +431: [6194, 607, 608], +1695: [6217, 6218, 7552, 7553], +1679: [6226, 6309, 6310, 6867, 6221, 6228, 6242, 6243, 6522, 6245, 6209, 6210, 6225], +1159: [6194, 607, 608], +348: [6194, 607, 608, 3154], +316: [6194, 607, 608], +591: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220, 3047, 3048, 3049, 3050], +335: [6194, 607, 608, 734, 735, 736, 737], +584: [6194, 2267, 5987], +787: [6194, 607, 608], +414: [6194, 607, 608], +405: [6194, 607, 608], +398: [6194, 607, 608], +491: [6194, 607, 608], +312: [6194, 607, 608], +324: [6194, 607, 608, 1863], +413: [6194, 607, 608, 1926], +395: [6194, 607, 608, 833], +600: [6194, 607, 608, 2291], +400: [6194, 607, 608, 842, 843], +471: [6194, 607, 608], +305: [6194, 607, 608, 725], +321: [6194, 607, 608], +350: [6194, 607, 608], +311: [6194, 607, 608], +317: [6194, 607, 608], +778: [6194, 607, 608, 3700, 3707, 3702, 3771], +313: [6194, 607, 608, 7235], +2077: [6194, 607], +635: [6194, 607, 608, 2738], +2076: [6194, 607], +2072: [6194, 607], +2075: [6226, 6309, 6310, 6867, 7561, 7564, 7563, 7565, 7566, 7567, 7568], +1686: [6226, 6309, 6310, 6867], +409: [6194, 607, 608], +586: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +2067: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +2042: [6226, 6309, 6310, 6867, 6220], +347: [6194, 607, 608], +567: [6194, 607, 608, 2073], +239: [6194, 607, 608, 374, 821, 823], +577: [2203, 4471, 5075], +858: [6194, 4341, 4347, 4313], +1754: [6194, 6387, 6391], +1880: [6226, 6309, 6310, 6867, 6220, 6241, 6694], +1762: [6226, 6309, 6310, 6867, 6220, 6402, 6684, 6685], +859: [6194, 4341, 4347, 7161], +1870: [6194, 6614, 6609, 6613], +1438: [6194, 5331, 5333, 6435, 5334, 7158, 5335, 5332, 5336, 5337], +1872: [6226, 6309, 6310, 6867, 6499, 6518, 6615, 6616, 6617, 6618, 6620, 6621], +863: [6194, 4341, 4347, 4313], +2068: [6194, 836, 2434, 2435, 5768, 5769, 1373, 2076, 1374, 2079, 2077, 2220], +860: [6194, 4341, 4347, 7161], +1146: [6194, 607, 608], +1929: [6194, 607, 608, 3639, 3640, 5452, 6842], +2017: [6194, 607, 608], +2029: [6194, 607, 7293, 374], +2030: [6226, 6309, 6310, 6867, 7294], +407: [6194, 607, 608], +558: [6194, 607, 169], +1158: [6194, 607, 608], +1188: [6194, 607, 608, 4763], +566: [6194, 607, 608], +564: [6194, 607, 608, 2071], +1437: [6194, 5331, 5333, 6435, 5334, 7158], +2073: [6226, 6309, 6310, 6867, 7555, 7556, 7557], +1235: [6194, 607, 608], +1236: [6194, 607, 608], +363: [6194, 607, 608, 751], +529: [6194, 1866, 4017, 4018], +330: [6194, 607, 608], +1968: [6226, 6309, 6310, 6867, 6220, 7024, 7580], +1847: [6194, 607, 608, 6564, 6569, 6570], +1853: [6194, 607, 6572], +1170: [6194, 607, 608], +2050: [6194, 5331, 5333, 6435, 5334, 7158], +1153: [6194, 607, 608] +} +fieldList = { +'application_version_name': 8, +'branch': 8, +'comment': 8, +'creator': 8, +'device_category': 8, +'device_description': 8, +'device_id': 8, +'device_name': 8, +'device_uuid': 21, +'is_polyphonic': 5, +'revision_id': 8, +'revision_no': 3, +'tags': 8, +'type': 8, +6194: 9, +17: 1, +18: 1, +19: 22, +612: 9, +614: 18, +615: 5, +607: 1, +608: 1, +374: 8, +821: 8, +823: 8, +701: 8, +3826: 8, +292: 7, +293: 7, +891: 7, +294: 1, +295: 1, +3014: 1, +1988: 7, +296: 1, +297: 1, +298: 1, +4433: 5, +4434: 5, +702: 9, +7489: 5, +7490: 5, +712: 7, +498: 8, +4741: 8, +499: 8, +500: 5, +1384: 5, +7174: 5, +301: 9, +248: 9, +249: 1, +1943: 5, +6443: 7, +6264: 8, +6567: 1, +6387: 8, +6386: 5, +6411: 9, +6841: 9, +6846: 9, +4755: 8, +6957: 5, +210: 5, +650: 1, +651: 8, +393: 18, +394: 1, +824: 1, +6958: 1, +457: 1, +3639: 8, +3640: 8, +5455: 5, +5452: 20, +6533: 1, +173: 18, +6226: 9, +6309: 5, +6310: 5, +6867: 8, +6211: 8, +6217: 1, +6218: 1, +6215: 1, +6216: 1, +6888: 5, +6889: 5, +6890: 5, +6891: 5, +6516: 5, +6517: 5, +6714: 5, +6499: 5, +6518: 1, +6496: 8, +6513: 9, +6553: 1, +6554: 1, +6555: 1, +6715: 5, +6895: 5, +6896: 5, +6897: 7, +6500: 7, +6501: 7, +6512: 9, +6730: 5, +6893: 1, +6894: 7, +6991: 7, +6992: 7, +6221: 18, +6228: 1, +6242: 8, +6243: 5, +6522: 1, +6245: 1, +6537: 1, +7243: 7, +6731: 5, +6504: 7, +6505: 7, +6506: 1, +6507: 1, +6508: 7, +6509: 7, +6510: 1, +6511: 1, +6737: 5, +6220: 9, +6241: 8, +6258: 8, +6212: 9, +6232: 1, +6233: 1, +6274: 8, +6275: 9, +6316: 1, +6277: 18, +6497: 7, +6503: 9, +6498: 5, +6244: 5, +6263: 1, +7525: 1, +6400: 1, +6401: 1, +6259: 8, +6521: 1, +6767: 7, +6768: 7, +6239: 8, +6240: 1, +6267: 1, +6552: 5, +6719: 5, +7527: 1, +7530: 1, +6219: 8, +6520: 1, +7188: 1, +6540: 1, +6581: 5, +7526: 1, +6262: 1, +6266: 1, +7528: 1, +6213: 18, +372: 1, +177: 18, +178: 18, +6566: 1, +6834: 9, +6369: 21, +6370: 8, +6371: 8, +6372: 8, +6373: 8, +6374: 8, +6375: 8, +6376: 5, +6695: 9, +6707: 5, +6724: 5, +6725: 5, +3154: 5, +7100: 8, +7101: 9, +7102: 1, +7103: 1, +7104: 1, +7105: 5, +7106: 5, +7107: 7, +6223: 1, +7055: 1, +7056: 1, +7057: 1, +6265: 5, +7529: 1, +6839: 8, +6840: 8, +6835: 9, +6837: 5, +6838: 5, +6836: 8, +'device_type': 8, +'has_audio_input': 5, +'has_audio_output': 5, +'has_note_input': 5, +'has_note_output': 5, +'suggest_for_audio_input': 5, +'suggest_for_note_input': 5, +836: 8, +2434: 5, +2435: 5, +5768: 5, +5769: 5, +1373: 5, +2076: 5, +1374: 1, +2079: 5, +2077: 5, +2220: 5, +835: 8, +2315: 8, +2270: 5, +5361: 5, +2205: 1, +2207: 1, +3676: 7, +3682: 1, +721: 1, +6572: 1, +6571: 7, +6573: 1, +6255: 5, +6256: 1, +6257: 1, +7548: 1, +6574: 9, +6575: 1, +6577: 1, +6582: 5, +6579: 9, +6580: 9, +6597: 1, +179: 1, +1977: 7, +1978: 7, +385: 21, +386: 8, +2057: 8, +387: 8, +388: 8, +389: 8, +390: 8, +391: 1, +4846: 5, +4847: 5, +392: 5, +6384: 1, +6417: 9, +7549: 9, +9657: 5, +742: 1, +743: 1, +739: 7, +726: 18, +744: 18, +745: 7, +746: 7, +747: 1, +5316: 5, +345: 1, +346: 1, +6956: 1, +818: 1, +819: 8, +820: 8, +4723: 1, +4724: 7, +828: 1, +4828: 1, +4826: 1, +'additional_device_types': 1, +750: 7, +4341: 8, +4347: 8, +7161: 5, +720: 1, +5950: 5, +5975: 22, +5976: 22, +5978: 22, +5979: 22, +5982: 1, +5983: 1, +5985: 22, +6515: 9, +756: 8, +757: 1, +758: 7, +4726: 1, +741: 1, +738: 7, +2320: 1, +724: 1, +740: 7, +964: 5, +1750: 5, +727: 1, +728: 1, +2075: 1, +2012: 7, +2013: 7, +6736: 5, +6742: 9, +6738: 1, +6739: 1, +6740: 7, +6741: 7, +6743: 7, +844: 7, +845: 7, +846: 5, +2072: 1, +732: 1, +733: 9, +852: 1, +752: 8, +753: 7, +754: 1, +858: 7, +755: 1, +7552: 5, +7553: 5, +6209: 5, +6210: 1, +6225: 1, +3047: 1, +3048: 1, +3049: 1, +3050: 1, +734: 7, +735: 7, +736: 7, +737: 7, +2267: 8, +5987: 8, +1863: 5, +1926: 5, +833: 5, +2291: 1, +842: 1, +843: 7, +725: 1, +3700: 1, +3707: 8, +3702: 23, +3771: 8, +7235: 5, +2738: 5, +7561: 9, +7564: 1, +7563: 7, +7565: 7, +7566: 1, +7567: 7, +7568: 5, +2073: 1, +2203: None, +4471: None, +5075: 1, +4313: 9, +6391: 8, +6694: 1, +6402: 5, +6684: 1, +6685: 1, +6614: 8, +6609: 23, +6613: 1, +5331: 1, +5333: 1, +6435: 5, +5334: 5, +7158: 5, +5335: 1, +5332: 1, +5336: 8, +5337: 8, +6615: 9, +6616: 5, +6617: 9, +6618: 1, +6620: 1, +6621: 1, +6842: 9, +7293: 5, +7294: 9, +169: 6, +4763: 1, +2071: 1, +7555: 5, +7556: 1, +7557: 1, +751: 7, +1866: 8, +4017: 8, +4018: 8, +7024: 9, +7580: 5, +6564: 1, +6569: 1, +6570: 7, +} \ No newline at end of file From 13c8d31be77cc0b551e0c5d7464649a73a2d4bfd Mon Sep 17 00:00:00 2001 From: jaxter184 Date: Wed, 4 Apr 2018 15:09:27 -0500 Subject: [PATCH 2/4] temporary commit --- input/Default.bwpreset | Bin 0 -> 6121 bytes input/Default.bwremotecontrols | Bin 0 -> 35014 bytes input/isqa remake attempt.bwproject | Bin 0 -> 181538 bytes input/test.bwclip | Bin 0 -> 9196 bytes input/testPreset.bwpreset | Bin 0 -> 6201 bytes input/testproj.bwproject | Bin 0 -> 12600 bytes main.py | 41 +- output/converted Default.bwpreset | 116 ++ src/__pycache__/decoder.cpython-36.pyc | Bin 0 -> 6961 bytes src/__pycache__/encoder.cpython-36.pyc | Bin 0 -> 1423 bytes src/__pycache__/extractor.cpython-36.pyc | Bin 0 -> 4563 bytes src/extractor.py | 6 +- src/lib/__pycache__/atoms.cpython-36.pyc | Bin 0 -> 22694 bytes src/lib/__pycache__/fs.cpython-36.pyc | Bin 0 -> 990 bytes src/lib/__pycache__/util.cpython-36.pyc | Bin 0 -> 3103 bytes typeLists.py | 1250 ++++++++++++++++------ 16 files changed, 1044 insertions(+), 369 deletions(-) create mode 100644 input/Default.bwpreset create mode 100644 input/Default.bwremotecontrols create mode 100644 input/isqa remake attempt.bwproject create mode 100644 input/test.bwclip create mode 100644 input/testPreset.bwpreset create mode 100644 input/testproj.bwproject create mode 100644 output/converted Default.bwpreset create mode 100644 src/__pycache__/decoder.cpython-36.pyc create mode 100644 src/__pycache__/encoder.cpython-36.pyc create mode 100644 src/__pycache__/extractor.cpython-36.pyc create mode 100644 src/lib/__pycache__/atoms.cpython-36.pyc create mode 100644 src/lib/__pycache__/fs.cpython-36.pyc create mode 100644 src/lib/__pycache__/util.cpython-36.pyc diff --git a/input/Default.bwpreset b/input/Default.bwpreset new file mode 100644 index 0000000000000000000000000000000000000000..a16507b8bfced016f1338c4b4e216ab83e700897 GIT binary patch literal 6121 zcmeI0J8#oa6vy3=Ch0>dDvf9&23`Y;Rp;d<6KzQaACpJg@}?3z0BOxx1-z;S7{SRYa(v}_9kVWQ(OOTR_i z^ZG6WccnY@h7NZpb-UjO%OgJxik;LQV4m$n_ZAG;Gj-7LM(Ekjh1G4(zvOx< z5^2EnJFJHxyXG!vrr`(VSI#-e)cG+>Uo-m=DPKzN32m*qDARq_`0)l`b zAP5Kof`A|(2nYg#fFK|U2m=3|z^o)qW1n~F+%z`jGP5)Q@|G-p|8c$`m(W-4< zS#P(tu1ivGa}jmei=>e|AmKeU_9MF|KVo^=da#pwNFj5NsK(qO&GWzb&5tt=u6|r(q7_QcA3wPl-(v3692Pkaok8s+Tsj+;{Ts{*N0$Hq literal 0 HcmV?d00001 diff --git a/input/Default.bwremotecontrols b/input/Default.bwremotecontrols new file mode 100644 index 0000000000000000000000000000000000000000..e0679b44b3da6e2aaf76b36e254b62191a1a1ce9 GIT binary patch literal 35014 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 literal 0 HcmV?d00001 diff --git a/input/test.bwclip b/input/test.bwclip new file mode 100644 index 0000000000000000000000000000000000000000..30a25cc2d395912c815e0599305f708cb76ef743 GIT binary patch literal 9196 zcmeHNeQZ-z6ush$I_r$F|lebOQzg6BuqFM8<3Twsq^;u6um> zm5B)&f_xeLVkAR^iAwkb5d>utkdN?TqKQTg0-E5zhN#g9i|4%ETOPO>7RO({lk~oG z?>YB(?)lx1*WIpKTiERJc)alOc|86wJU!lWZwQ}8A%uwdX;(D`o)kWAC7Fyx!-^J7 z#2Z(rsZM;xm3Gwz#tdI+S*eeC${|(J8e?j_S!=Ndv!QiB5XBNowp)Wsx>%EroEb_f z@o)>`*ivdtRXWv9(9zu*P61XTg*K^GS*58duYVFV7N*oDHKoSGYNRo#gxi#6P@1AK zwJ{p$ya$|65JgU@E28>%qY*?JU*W6tcvPia^{7BXL{WU@0l(K*8S(qdLZLueMU&!d z3RFh^(LbKB5OTejwTqh4+^G*OmPjOvlTf5BtCKo0g$C9phN9ZaXmd$Cp{XU|SQMQ} zu_-14CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIfe!0Xtk3ULqv#{tUR3 zbK0?#q7sy)aP{c}D;e#q%Wr5n@W|Yg8yyo%wXtWufyQb2t>yB#7S&=Z+!yBT#|D(? z`o*B(&NAl+Gv$29l>=P)h${!Va)>J*bLB8oNDWtJGR4`J0oR=Jw>VrFls;S`2WsLm zUTegAP+=LCmU7n3QpptIQ>Ki%#+0HeL@cVtQaEkAutk_$fVTcR2sB;6q3yu zgOI|j7PurH3&pwei`wj_I8qWDLVik9>)9t;-F>JU;@M^bAF&QTh?{ z^AW&=X_#_ZhhzmM2z_=0pkcTilOpEH5x~UZ{&LH31%y5|GSEig0bR%gc=8vl&iU5h z{2+4>>a4+Mx_D&)y0CSIZGsc_wd}GoJ3MUVxEO2|Sjzjc%nIuIK4d7X1oy+JENsbJ z2w)k{-mP@#W*qB&22W37NP5cp*?4&BLQi88ig*!R=|$!W$5e+p!MUffW)mpzi3x9PRU+z1j6k{cEaT+`d+5dTi%~Pax0_ zx!|zrW}pQ(*3TScn^v>=SYm5cvLnC)ffq!WeD&(jQ`~R7`DjnijwxNxMsABx{Pe=b z9bZg6)V)oVLch)U4je+5R6!4x(t}7jeF}NF0?G}n3Kf`$tv-F;3VyWLrS13O5aBl( z6d_=!*j@uiAqbt{Dgc`f22a87gF|~2p6?*G*U_m8lx^r_NOf{+$)ew%oONx@-qmBi z?sL5d2s)?Wbthz=X|nuTdv5B4gB_=~^k)Z(q5G|=3ea*FQiZ&RN{%xiO`7BnOoYM@ zzAK@F<0~|wh=&=0bSbiYFL2|GR#O+)ycW!XO3ywP|2J$)3z=cv&07QdZ#| z-hu;EG6RtJ8P01m&hP_s_8&Mx_a=1ggQ4mthO`k!)6A;^KOm&dn4q);ofrKZD%gp% z9zmkFyP@S3w6y3J!%yAV2}In^CQkllR&A#r4-2j?-j*r=Wmi0l% zf?cq~3iO%6s_-(-$3vj3#gh?4=o;i~7vF|tiF^eK5_cM6O0&=)&Bn553GP&vWSC2N z149Lax!sWjUH(Vg9ah_a-s-UCF0mynUdHw6hL#^;jngbxudkx19V!xAYw~)gP?;_s zAe_I_$s*`QR`Z=Pu(?}#)wsFAZRpKi%uv&hd@Jra$d!G~;HN~|0Tk&amV>>I@5g00 znyt|5dENqb`w?EL#reH{8xAdZHg3KA8jSxiC~d5>%ZZ&)TqWp% X;u>q{=z75LXPIjpQYIPy4Tby-YHL6B literal 0 HcmV?d00001 diff --git a/input/testPreset.bwpreset b/input/testPreset.bwpreset new file mode 100644 index 0000000000000000000000000000000000000000..c94ceb58eccb3fcb7665349beda4164798b82762 GIT binary patch literal 6201 zcmeI0zi-n(6vs_yn_~G^U%TX(ROXKyVyS;4{aApzGOOcz)m9hA^VB&wDVAi=)P3WzmqzF)QSK`!>bL zL+ApJAd*X2+wb+DFKBJrfyfTMfD#Ib#846f7k)^R+#P;jK&aQNauN4zdp4L@26X&z zheX*e;dMQ+BPCObT|#VnPMi$$#lJZHxmW~$D$b_T1l+#M zJ6M_Pb&m-rLi|zj6*9x3N4#J>1{- zPioqace2D0!8=iWHC!HvQsDc+a799&PhHeYR{ZD7hs5ceCDjxGML-cy1QY>9KoL*` z6ahs*5l{pa0YyL&Py`eKMc}^^$fIeD*7EH6Q8eWWdFp4+<*>i3X_=4Y@L`+zN|QXf z!yB<@if@l&_b=tV7H&zk_Jk%!X75vaO}WF*&R_Z`oWHIp;sueDoSS64RM*KcTA@yZP9(9NV)+#}%wob0BeX9mdS^e61* z*JQZ(kn$EE5uxIH>L-6v9n|&<2dxeM@}Rk}U;L1n`7-higKvrA=cI!1W_x{eZG98J cpP8hTd&x?s)kNF3mc>}Q$@(ZXyD%*67ukSybN~PV literal 0 HcmV?d00001 diff --git a/input/testproj.bwproject b/input/testproj.bwproject new file mode 100644 index 0000000000000000000000000000000000000000..a92838fa49c8d51cbd5cef39d04277a6b186ef8a GIT binary patch literal 12600 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 zdEBset(collatedClassDict[eachClass]): + collatedClassDict[eachClass] = eachFile[eachClass] + elif set(eachFile[eachClass]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 literal 0 HcmV?d00001 diff --git a/src/__pycache__/encoder.cpython-36.pyc b/src/__pycache__/encoder.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..001479fe737a1708890a8ea73b9086d57a59d5b6 GIT binary patch literal 1423 zcmb_cOOG2x5bo}I`mqaa3l34~At+9l!<8KekBvdm#T-D{6`rrYT* zWAAE~ixJ|;k-xwV@pJmhX>XCZ2KqwAtAq$ zorj_Q5ia{F3PA)d$=GXF(u$24^>$DORX7g4okb!P(f4E=i&!M66OoDz>Qr<^4|PY- zM`YN)#%yFXq^|d+5z`gKt?~yC|{kh@D_|(?~<+Znl%ta!Le=b)F9>H0*gZ>52WHTguU zTw_hg%L^Aziy0P}U0?2wv0v|nE3G43=~9==fJz*h;Zt!hhOsEUmo83rcC ze;R+33-YANe6QAb}92n0K4<{`v*<#ds3y&ctbk#3PrS%mu`?*9zYq9Y;^56B`FiKina z5J9-;iqy9VBcEsZX*YvPp(i>`Jm$j4;K{AW1by8$2U4{+Y8un<^$#qdy{l)G7eC%0 z&pDKGRBN{9MWjzkT^iOLv~@YFSE< z!@f(T5)aC3X8icN#7HaQGvW60mBBONQJcthrWYVHW3r2;-L6~MLRrWVl?y+{?|_Tj z+^BKnlyJ$J(bZgTT(mUE103E&PZtjh>nC=)z`Xyac=|Wcw-Abb+utJ#aR}39bx|^! zvOevjXF&H+@3XXdGq*5y*mbc5v&zBsa$S}!a%()jT!O=XTo%)&O!Ef1nz3%Cr(t80 gVh2$(e$C{iA68ndN_pRZgRCDwe`ueDEKU6HPxmA|)c^nh literal 0 HcmV?d00001 diff --git a/src/__pycache__/extractor.cpython-36.pyc b/src/__pycache__/extractor.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ce4c28e453c00df82300be1666f2825bfdc4a17 GIT binary patch literal 4563 zcmb_fO^h5z6|U;;>FMd&U60pm?>dB}V+{5fYZWEIF^gp^+gM6S)>fQgX|y1Erh0eA zGt)g=U6cLMtccj~bKtN-LP8u6Clokv$^i+93*^R$144a5LPA=J6Gsj)-+MJXp4gk5 zm{I+`s(SV6)qCH2{qpQ=_|ZonHa3=o_@|iqIq2U&$q!H|p=3`qsC9a>?=&1qeYfZK zy@uB>HA;QI;WN$amHR;>;J)lt8Wknt5T&Y0%70%pW>i@PXlGSLg=ptgRn4G1p=Q+_ z+L}6{YG_ZYlWHFAygH>8(4JDK)fu!4O5PXs#Y0FXR_n5;-qkA6iMrisnYvr}CT{kU zyqImqt?qDexA`z>nY@^>!#ka%r*iBn#U|_LEn-5y0L4eSg_8fx6~YJ|&_PBT=d9Qh z#!=3zB6dblK-bZikH!aX`fJc!&~AX{(i-L57od5dy$xDvispmXp4$5m>&l>wj@E(S zw?GR(I{>XhdqKMiTBYk8NWEfQ6{08f$HpV+Xy>B%0i@iQdl-+;3-_FnRMi_o{~hhj zn_^EYhiS82Pyc(eZVq?E$`Pbq6bpjRORwS#-15NHf89QBHGnf+oPOB|)X}|(J`Ut& z_~7x#Nq-JWPq3t`rnE1lIB?SUL8~!sO$pY`NgnBm6epNE&(!}Mb1(O3rSVDEkl{m6 zPLZ^bp0%E?j9j(QCHekk%IdTUjI%Enp%qE;E!bCxT`QFeV>iVLyZ1n*|A35Vz}eAP zx0j!m0I%s{?h@|r@cr%GTD4+$(QipV$?h`ODAZG%Bm- zcxRKW=fK@;lFmoWJ-w)$Sm3>%r}tLQ65e}JsAy4`aKwFjfAs>{7hvPuY9S6KocxgB z?GTPG4n3+$R1pFkmZ>5<(6p{cOX%l_&Z9?eiq1H)i?gJV-Sz43^SZxZooop8+9j6;f;etawC@OE*-$>F8 z(=N*SolN&*Q_R@QjmhC;{YynP);iu9PsmPD0RubwjnFUQe*e94Yh~@7Jkj~u>+!aM zhQ8V9uiZ}auE_>#%`K8T(Pk~ztu@?E$1RiT<-ty2Phl)4{pWv1B^*zBGLV52$Qf$w zh-(_#63S36d}5B)&4XH#zI5aq*3p^})R5QN_0%V7jcLC09a{G+@0sB}bfR4wfJ(DR zh0dEB&&~1aH5o$M8u$4$j3S({XiEd^mZK~i*x7(yw|_hm`UB(Y%lDA%?IEe#a}m5eq)m5>N3JJDx?&JIjX#xQFwc>&JRg?v zLX?`o1(7s5d#(xg1wyBD4bJ$GLlZRq8In-YWViKKHH8*-ilRE`#jT{B^`KXM66D>b zt)!!s)p4W}14vI4#fo~Bt%%)Pzd#(Gr;2pLde;}wD}0sEBNY_{hkLP(`*~4mQIMeb zDg1aaK!mA#MZk}?I_z6ZCbua{@5a61lP{!iV(MooIX$j$EZX{j3dbU}L(gQXgnbLZ zN!~MgFv7pdgWbk}b8#3YKbwo(bo${if{N*ZC@;T4vouaa<3ZsiattJUj7QvOE`sSmuO;BUl&E z&@p&fB(rDc83Vo4Ma3G;G0c?m&y0DlcEu45osgn{wPXMLx0pAG8PY7BBI$7rs z{RcXJ1{L8og-8l=`gM#al2R0%sJx9sM^(H0awmT0(g@ELB6Y_q{e5_fr@Yup ze*y}9K>g*IU8SR4X4Y~XJ^ldlaXuxtp_v=`?5Q`w$$m1d9>c5r6tD6`x&XW=$qYAF za0^I-Til=%fw3hXT~U7QfrCe@@HsK=@p}5yTQMg{dz&jrSmlAtziVo$%vcNTSjT5# zJs1aNj&+^bqBIRzfLs;Gj5Km$TmI_GYH7>gP%Or)D0{fpd z<4SYu8#ed*6V~K!p*l+S$eQh+k~klB4Um~6VMGZSXvjY;)Xdn=Yq{5HF878e*W}fj+*^~^AQ`rknw9JghaIKQ(JX78 zk~&V2I1RBXWE5t+VHJ`yvJ6wVXWZeuE4bFr)UcOaCp5^PLq+K<0cT(#wG)*2KNp-0 HW`p2=2iMB5 literal 0 HcmV?d00001 diff --git a/src/extractor.py b/src/extractor.py index e1eaa9b..1458cc5 100644 --- a/src/extractor.py +++ b/src/extractor.py @@ -103,7 +103,7 @@ def parseField(): strLength = intConv(text[offset:offset+4]) offset += 4 if strLength == 0x90: - return '' + return offset += strLength else: endFlag = 1 @@ -141,7 +141,9 @@ def addField(fieldName): fieldList[fieldName] = fieldType else: if fieldType and fieldList[fieldName] != fieldType: - print("somethings wrong. oopsie woopsie fucky wucky code is \'different fields\'") + print(fieldType) + print(type(fieldList[fieldName])) + print("somethings wrong. oopsie woopsie fucky wucky code is \'different encoder fields\'") #print(str(fieldList[fieldName]) + ', ' + str(fieldType)) def getParams(): diff --git a/src/lib/__pycache__/atoms.cpython-36.pyc b/src/lib/__pycache__/atoms.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10b890c6c1eb1bb4d3a46a181b04ddc47dd7ca0f GIT binary patch literal 22694 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 literal 0 HcmV?d00001 diff --git a/src/lib/__pycache__/util.cpython-36.pyc b/src/lib/__pycache__/util.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a1706807beca0a2f4b7517da5767e3c98aba0ca7 GIT binary patch literal 3103 zcmZ`*-ESMm5x?F0Y?##{nc4mIG zx*G3%^^aD%>Nx*#zVYK2zm2E-2t+u7WlqZxT)3Y&EhaqSgL4sx5Zo1!sDXPT7AxSs zsEbwbK&**%@K9V5m%$^^5Ldu!g6%oU)l;18G<%E~e#AXIxABx~Alm7(3YrD~ltbQa zo{~`sYXxa8WUdo#ynb2a#uuZ(uuPa?&U!U2K z&rO}-vzYzUT=UAAFre2XL>Z9Uq; z+{64g6%!1+S@~0rvHufi%Iw>Kq|e_DH51{CeauMWO-P)tZ&gmkD_{5<&L8-uGY#Q= z$W5cl>$_D%E+AdMb}A3Ch?7>4!A9u4MRaZ+>duQB}L!B16^}PwY!=cPYQZt^GW8DgKS!$fvS}Ao`=?(#P+;V$*Y{Fu{ zFMGN)EVYqtMOf(2F5_Z!G4NLou(t!Wb~1S^GmDYSFtGd~h{L?|e}hH%djJGKA4TUQ zT94QzJQgZj*tLWTMUQ}FqqmLk#wBwyc++x*DB{v(eBe%9=2WcjRW8M{@57@WqU(?U zTX~4=zuSoGG@M5CuY!vADOLwnC@vp`N?;yN15vBOXAzP7Gb<57;;&WMk3>9U>M!(G ztcV6htzVQxXr*IF{|gdpN4)$e_&Uw?N(D=R7EgVNm|xj+#0s8Ec!znvKEoZ% z-&kn-6I0$oAC1p7UcIOhJ6EwMJm3~BKL%DSj~yy;K5auP6$lS_hf%_BGYO;EX*uW3MNHdY)c= zm&gl5zDH!6$oD}`zs66!L{lQkx`}jgB=d9v8|=vNv{29CU2FYN<`%F35JXB7DcKcS zn#-2g{Mq~Ow1T~lKHP1-Yhnx2@^Pvkno!AM*6qm_zxRQ0GnpHASPa!ObYMKn7s`^F zdX|iMnaC?dtjf7D&}#xE%TcCVWK=3z0T`~6VVw&QS1~rfj;H(qh-2Ye2VgyRmB*L` zEC!F+7T;peV_au-_8rz>cHa`pl!TUv=wnP4P^R3c`3!JOk(S1HE2rc&~TlclBZ6@%d|tAg|e&g8XkIqAkuR`h`5 zTNo_%C86O;nm8@f95Bgy0J%te+W4uKgVMO=XkSq_G9K+oe6@**x=G{)ExSkZ#Q2E) zNL~y*ZF?6_Nok2fA0zAywuVsy`HMghV`h(E`s}GtzlVK`P+N|yh2ZfSs!HV|=Q|YM zdGW*C$GWE}Lxq)xcE+XKFT77}eNO!IfcYbRaQ)3wDxPq=zkj0PU^Em|5rTQMU;>dIBKN~9S{d*D{oOloh`lI3#cAqokXB&BrWB>!3m!3RbadxH z6$4uneg%=T4l=(N^F*$Gf%(!ME+)%IIFmYYQfNfca;mWO|!` znegF);P38~W2aYf5pDv*#CPZ{T8YkAq8*F+q}Eh~q{+*R5?QG2yvVO3aiFO{E!+Ni zsvoC^+d>|vJ$d>ngl(y{X)ke2@DPbe!b1b8yC&)t*p=&2?ULYKki>_V(TyoWhNASK z=z3TrVE@Ye;0}D>RU3E#$6Hkw{dr~BRVA*BHK#L|`7Pv2%D4^^OPxg?RmQs4prq2o z>e98;2`pVpHc%T1XYma<24k1pvhidNciK6+4_yDCsR*4D9>-6<%di;j78PBv_rWe2 zyn${tMcXmCVDu2O^A^liAJF#Lc9Hfd+k_};%;xT*jA}h)kz&8e?)io;>W-CdEu)=5 ZAx4?JML@D{iFo8j0iNgZUyq`w@jsh>vh@G} literal 0 HcmV?d00001 diff --git a/typeLists.py b/typeLists.py index 8d374ee..e8612b4 100644 --- a/typeLists.py +++ b/typeLists.py @@ -191,184 +191,351 @@ 1853: [6194, 607, 6572], 1170: [6194, 607, 608], 2050: [6194, 5331, 5333, 6435, 5334, 7158], -1153: [6194, 607, 608] +1153: [6194, 607, 608], +1887: [697, 6726], +1917: [6782], +133: [697, 310], +127: [697, 303], +247: [697, 627, 2003], +211: [697, 524], +64: [697, 4830, 154, 5465, 155, 156, 158, 159, 161, 162, 163, 157, 4990, 6389, 6789, 7029, 6093, 6469, 6796, 6797, 6825, 3326, 153, 164], +1377: [5155, 5386, 5153, 5154], +1916: [6779, 6780, 6781, 6792], +1915: [7017, 7033, 6778], +1966: [7008], +1967: [7022, 7021], +1217: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +275: [7398], +2036: [6194, 607, 608, 374, 821, 823, 701, 3826, 702, 7489, 7490, 7358], +1224: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 210], +1229: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 457], +1221: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +1227: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 457], +1222: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +1223: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +107: [6194, 252, 253, 254, 256, 257, 258], +36: [], +251: [593, 594, 595], +1404: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +215: [6194, 529, 530, 531, 532, 533, 2839, 2101, 2102, 2995, 3392, 2991, 3373, 3597, 5207], +179: [6194, 454, 455, 456], +486: [46, 314, 7045, 3637], +1230: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 210], +241: [65, 4923, 4922], +572: [675, 3005], +136: [46, 1408, 6823, 1253, 1254, 1270, 1277, 2866, 3581, 4442, 4777, 5170, 5831, 5840, 5834, 5836, 5837, 5838], +88: [687, 38], +617: [687], +616: [687], +615: [509, 543, 2449, 2450, 2444, 2445], +42: [56, 1229, 58, 59], +692: [3163], +482: [22, 150, 151, 2237, 2238, 2239, 2240, 2241], +1191: [1298, 3386, 3284, 3387, 21, 1299], +67: [687, 166], +139: [509, 543], +515: [687, 1795], +182: [509, 543], +875: [4329], +1193: [4767, 4766, 4269, 1200, 3788, 9663, 5156, 9675, 2569, 7462, 7463, 402, 4330, 7385], +475: [1204, 648, 3076, 3077, 7178, 4697, 4698, 6647, 6648, 6649, 6650], +'\x00\x00\x00': [3993042944], +159: [509, 3123, 3124, 3125, 525, 3], +212: [687, 38, 4344, 6288], +206: [509, 543], +1742: [509, 6347], +261: [509, 2447, 1181, 2988, 2989, 641, 2368, 7499, 1180], +238: [687, 38, 4344, 6288], +82: [509, 543], +225: [509, 566, 568, 569], +144: [6194, 15, 347, 1356, 360, 4992, 2641, 354, 6816, 2343, 349, 2198, 2199, 3, 1210, 350, 351, 356, 357, 242, 2726, 2727, 3070, 4803, 4804, 2764, 400, 4980, 4981, 7189], +477: [6194, 15, 347, 1356, 360, 4992, 2641, 1246, 1247, 1248, 1250, 88], +46: [6194, 15, 68, 4531, 69, 4539, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 70, 72, 5483, 3033, 401, 1245, 2439, 2751, 96, 2747, 77, 2721, 4941, 3035, 6159, 6160, 5702, 5933], +576: [2202, 4472], +227: [576, 3021], +30: [561], +138: [6194, 817, 324], +1220: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +1219: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 712], +1405: [6194, 607, 608, 821, 823, 701, 3826, 7489, 7490, 457], +171: [6194, 420, 421, 422, 424, 165, 5206], +'361': [4471, 5075], +1740: [509, 6347], +191: [509, 2447, 1181, 2988, 2989, 641, 2368, 7499, 1180, 6821, 6822], +71: [687, 38, 4344, 6288, 648, 646, 640, 1186, 3041, 1187, 2378, 2379, 7515, 5897, 2958], +109: [265, 2956, 267], +269: [659], +618: [509, 543, 2449, 2450], +1546: [509, 543], +121: [509, 2447, 5639], +149: [382], +1594: [5739, 5909], +479: [5155, 5386, 2409, 5924, 5925, 5926], +39: [2879], +1644: [5908], +1596: [5739, 5909], +605: [2360, 2361, 4881, 5131, 5268, 5715, 7141], +1115: [2022, 2023, 4513, 4514, 7448, 2024], +794: [7193, 4516, 4478, 3758], +640: [6194, 2748], +670: [2909], +805: [2910, 603, 4034], +437: [2910, 603, 4034], +775: [2910, 603, 3653, 3654], +808: [2910, 603, 4034, 6856, 6857], +210: [520, 521, 522, 4611, 4605, 4620, 4607], +1896: [6753], +780: [3576, 3711], +520: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 3710, 3608, 5638, 634, 635, 637, 638, 639, 831, 7307, 2741, 3036, 3678], +1897: [6754], +1779: [2910, 603, 4034], +193: [3101, 3102, 2389], +678: [3101, 3102], +822: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 6430, 3988, 4365, 4571, 4583, 4463, 4476, 4364, 4480, 4481, 4482, 6306, 4643, 6528, 433, 3098, 442, 443, 444, 445, 446, 5549, 6341, 5468, 5548], +1894: [6745], +823: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 4645, 4646], +850: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 6430, 3988, 4365, 4571, 4583, 4463, 4476, 4364, 4480, 4481, 4482, 6306, 4643, 6528, 433, 3098, 442, 443, 444, 445, 446, 5549, 6341], +1124: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 4645, 4646, 4430], +849: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 6430, 3988, 4365, 4571, 4583, 4463, 4476, 4364, 4480, 4481, 4482, 6306, 4643, 6528, 433, 3098, 442, 443, 444, 445, 446, 5549, 6341], +1125: [3696, 3958, 1403, 1109, 4696, 4486, 4604, 6746, 5918, 5921, 4645, 4646, 4430], +541: [4290, 1932, 4285, 1935, 1936, 1938, 4287, 1944, 4291], +1134: [4290, 1932, 4285], +1194: [4772, 7097, 7113, 7114], +900: [4770, 4390, 4776], +1388: [5171, 5172, 5173], +228: [3814, 312, 4658, 1847, 3842, 3843, 3844, 3845, 3846, 3847, 1404, 1301, 1941, 4677, 1739, 5106, 4391, 6396, 4818, 4843, 5174, 6030] } fieldList = { -'application_version_name': 8, -'branch': 8, -'comment': 8, -'creator': 8, -'device_category': 8, -'device_description': 8, -'device_id': 8, -'device_name': 8, -'device_uuid': 21, -'is_polyphonic': 5, -'revision_id': 8, -'revision_no': 3, -'tags': 8, -'type': 8, -6194: 9, 17: 1, 18: 1, 19: 22, -612: 9, -614: 18, -615: 5, -607: 1, -608: 1, -374: 8, -821: 8, -823: 8, -701: 8, -3826: 8, +169: 6, +173: 18, +177: 18, +178: 18, +179: 1, +210: 5, +248: 9, +249: 1, 292: 7, 293: 7, -891: 7, 294: 1, 295: 1, -3014: 1, -1988: 7, 296: 1, 297: 1, 298: 1, -4433: 5, -4434: 5, -702: 9, -7489: 5, -7490: 5, -712: 7, +301: 9, +345: 1, +346: 1, +372: 1, +374: 8, +385: 21, +386: 8, +387: 8, +388: 8, +389: 8, +390: 8, +391: 1, +392: 5, +393: 18, +394: 1, +457: 1, 498: 8, -4741: 8, 499: 8, 500: 5, -1384: 5, -7174: 5, -301: 9, -248: 9, -249: 1, -1943: 5, -6443: 7, -6264: 8, -6567: 1, -6387: 8, -6386: 5, -6411: 9, -6841: 9, -6846: 9, -4755: 8, -6957: 5, -210: 5, +607: 1, +608: 1, +612: 9, +614: 18, +615: 5, 650: 1, 651: 8, -393: 18, -394: 1, +701: 8, +702: 9, +712: 7, +720: 1, +721: 1, +724: 1, +725: 1, +726: 18, +727: 1, +728: 1, +732: 1, +733: 9, +734: 7, +735: 7, +736: 7, +737: 7, +738: 7, +739: 7, +740: 7, +741: 1, +742: 1, +743: 1, +744: 18, +745: 7, +746: 7, +747: 1, +750: 7, +751: 7, +752: 8, +753: 7, +754: 1, +755: 1, +756: 8, +757: 1, +758: 7, +818: 1, +819: 8, +820: 8, +821: 8, +823: 8, 824: 1, -6958: 1, -457: 1, +828: 1, +833: 5, +835: 8, +836: 8, +842: 1, +843: 7, +844: 7, +845: 7, +846: 5, +852: 1, +858: 7, +891: 7, +964: 5, +1373: 5, +1374: 1, +1384: 5, +1750: 5, +1863: 5, +1866: 8, +1926: 5, +1943: 5, +1977: 7, +1978: 7, +1988: 7, +2012: 7, +2013: 7, +2057: 8, +2071: 1, +2072: 1, +2073: 1, +2075: 1, +2076: 5, +2077: 5, +2079: 5, +2203: 26, +2205: 1, +2207: 1, +2220: 5, +2267: 8, +2270: 5, +2291: 1, +2315: 8, +2320: 1, +2434: 5, +2435: 5, +2738: 5, +3014: 1, +3047: 1, +3048: 1, +3049: 1, +3050: 1, +3154: 5, 3639: 8, 3640: 8, -5455: 5, +3676: 7, +3682: 1, +3700: 1, +3702: 23, +3707: 8, +3771: 8, +3826: 8, +4017: 8, +4018: 8, +4313: 9, +4341: 8, +4347: 8, +4433: 5, +4434: 5, +4471: None, +4723: 1, +4724: 7, +4726: 1, +4741: 8, +4755: 8, +4763: 1, +4826: 1, +4828: 1, +4846: 5, +4847: 5, +5075: 1, +5316: 5, +5331: 1, +5332: 1, +5333: 1, +5334: 5, +5335: 1, +5336: 8, +5337: 8, +5361: 5, 5452: 20, -6533: 1, -173: 18, -6226: 9, -6309: 5, -6310: 5, -6867: 8, +5455: 5, +5768: 5, +5769: 5, +5950: 5, +5975: 22, +5976: 22, +5978: 22, +5979: 22, +5982: 1, +5983: 1, +5985: 22, +5987: 8, +6194: 9, +6209: 5, +6210: 1, 6211: 8, -6217: 1, -6218: 1, +6212: 9, +6213: 18, 6215: 1, 6216: 1, -6888: 5, -6889: 5, -6890: 5, -6891: 5, -6516: 5, -6517: 5, -6714: 5, -6499: 5, -6518: 1, -6496: 8, -6513: 9, -6553: 1, -6554: 1, -6555: 1, -6715: 5, -6895: 5, -6896: 5, -6897: 7, -6500: 7, -6501: 7, -6512: 9, -6730: 5, -6893: 1, -6894: 7, -6991: 7, -6992: 7, +6217: 1, +6218: 1, +6219: 8, +6220: 9, 6221: 18, +6223: 1, +6225: 1, +6226: 9, 6228: 1, +6232: 1, +6233: 1, +6239: 8, +6240: 1, +6241: 8, 6242: 8, 6243: 5, -6522: 1, +6244: 5, 6245: 1, -6537: 1, -7243: 7, -6731: 5, -6504: 7, -6505: 7, -6506: 1, -6507: 1, -6508: 7, -6509: 7, -6510: 1, -6511: 1, -6737: 5, -6220: 9, -6241: 8, +6255: 5, +6256: 1, +6257: 1, 6258: 8, -6212: 9, -6232: 1, -6233: 1, -6274: 8, -6275: 9, -6316: 1, -6277: 18, -6497: 7, -6503: 9, -6498: 5, -6244: 5, -6263: 1, -7525: 1, -6400: 1, -6401: 1, 6259: 8, -6521: 1, -6767: 7, -6768: 7, -6239: 8, -6240: 1, -6267: 1, -6552: 5, -6719: 5, -7527: 1, -7530: 1, -6219: 8, -6520: 1, -7188: 1, -6540: 1, -6581: 5, -7526: 1, 6262: 1, +6263: 1, +6264: 8, +6265: 5, 6266: 1, -7528: 1, -6213: 18, -372: 1, -177: 18, -178: 18, -6566: 1, -6834: 9, +6267: 1, +6274: 8, +6275: 9, +6277: 18, +6309: 5, +6310: 5, +6316: 1, 6369: 21, 6370: 8, 6371: 8, @@ -377,11 +544,124 @@ 6374: 8, 6375: 8, 6376: 5, +6384: 1, +6386: 5, +6387: 8, +6391: 8, +6400: 1, +6401: 1, +6402: 5, +6411: 9, +6417: 9, +6435: 5, +6443: 7, +6496: 8, +6497: 7, +6498: 5, +6499: 5, +6500: 7, +6501: 7, +6503: 9, +6504: 7, +6505: 7, +6506: 1, +6507: 1, +6508: 7, +6509: 7, +6510: 1, +6511: 1, +6512: 9, +6513: 9, +6515: 9, +6516: 5, +6517: 5, +6518: 1, +6520: 1, +6521: 1, +6522: 1, +6533: 1, +6537: 1, +6540: 1, +6552: 5, +6553: 1, +6554: 1, +6555: 1, +6564: 1, +6566: 1, +6567: 1, +6569: 1, +6570: 7, +6571: 7, +6572: 1, +6573: 1, +6574: 9, +6575: 1, +6577: 1, +6579: 9, +6580: 9, +6581: 5, +6582: 5, +6597: 1, +6609: 23, +6613: 1, +6614: 8, +6615: 9, +6616: 5, +6617: 9, +6618: 1, +6620: 1, +6621: 1, +6684: 1, +6685: 1, +6694: 1, 6695: 9, 6707: 5, +6714: 5, +6715: 5, +6719: 5, 6724: 5, 6725: 5, -3154: 5, +6730: 5, +6731: 5, +6736: 5, +6737: 5, +6738: 1, +6739: 1, +6740: 7, +6741: 7, +6742: 9, +6743: 7, +6767: 7, +6768: 7, +6834: 9, +6835: 9, +6836: 8, +6837: 5, +6838: 5, +6839: 8, +6840: 8, +6841: 9, +6842: 9, +6846: 9, +6867: 8, +6888: 5, +6889: 5, +6890: 5, +6891: 5, +6893: 1, +6894: 7, +6895: 5, +6896: 5, +6897: 7, +6956: 1, +6957: 5, +6958: 1, +6991: 7, +6992: 7, +7024: 9, +7055: 1, +7056: 1, +7057: 1, 7100: 8, 7101: 9, 7102: 1, @@ -390,226 +670,484 @@ 7105: 5, 7106: 5, 7107: 7, -6223: 1, -7055: 1, -7056: 1, -7057: 1, -6265: 5, +7158: 5, +7161: 5, +7174: 5, +7188: 1, +7235: 5, +7243: 7, +7293: 5, +7294: 9, +7489: 5, +7490: 5, +7525: 1, +7526: 1, +7527: 1, +7528: 1, 7529: 1, -6839: 8, -6840: 8, -6835: 9, -6837: 5, -6838: 5, -6836: 8, -'device_type': 8, -'has_audio_input': 5, -'has_audio_output': 5, -'has_note_input': 5, -'has_note_output': 5, -'suggest_for_audio_input': 5, -'suggest_for_note_input': 5, -836: 8, -2434: 5, -2435: 5, -5768: 5, -5769: 5, -1373: 5, -2076: 5, -1374: 1, -2079: 5, -2077: 5, -2220: 5, -835: 8, -2315: 8, -2270: 5, -5361: 5, -2205: 1, -2207: 1, -3676: 7, -3682: 1, -721: 1, -6572: 1, -6571: 7, -6573: 1, -6255: 5, -6256: 1, -6257: 1, +7530: 1, 7548: 1, -6574: 9, -6575: 1, -6577: 1, -6582: 5, -6579: 9, -6580: 9, -6597: 1, -179: 1, -1977: 7, -1978: 7, -385: 21, -386: 8, -2057: 8, -387: 8, -388: 8, -389: 8, -390: 8, -391: 1, -4846: 5, -4847: 5, -392: 5, -6384: 1, -6417: 9, 7549: 9, -9657: 5, -742: 1, -743: 1, -739: 7, -726: 18, -744: 18, -745: 7, -746: 7, -747: 1, -5316: 5, -345: 1, -346: 1, -6956: 1, -818: 1, -819: 8, -820: 8, -4723: 1, -4724: 7, -828: 1, -4828: 1, -4826: 1, -'additional_device_types': 1, -750: 7, -4341: 8, -4347: 8, -7161: 5, -720: 1, -5950: 5, -5975: 22, -5976: 22, -5978: 22, -5979: 22, -5982: 1, -5983: 1, -5985: 22, -6515: 9, -756: 8, -757: 1, -758: 7, -4726: 1, -741: 1, -738: 7, -2320: 1, -724: 1, -740: 7, -964: 5, -1750: 5, -727: 1, -728: 1, -2075: 1, -2012: 7, -2013: 7, -6736: 5, -6742: 9, -6738: 1, -6739: 1, -6740: 7, -6741: 7, -6743: 7, -844: 7, -845: 7, -846: 5, -2072: 1, -732: 1, -733: 9, -852: 1, -752: 8, -753: 7, -754: 1, -858: 7, -755: 1, 7552: 5, 7553: 5, -6209: 5, -6210: 1, -6225: 1, -3047: 1, -3048: 1, -3049: 1, -3050: 1, -734: 7, -735: 7, -736: 7, -737: 7, -2267: 8, -5987: 8, -1863: 5, -1926: 5, -833: 5, -2291: 1, -842: 1, -843: 7, -725: 1, -3700: 1, -3707: 8, -3702: 23, -3771: 8, -7235: 5, -2738: 5, +7555: 5, +7556: 1, +7557: 1, 7561: 9, -7564: 1, 7563: 7, +7564: 1, 7565: 7, 7566: 1, 7567: 7, 7568: 5, -2073: 1, -2203: None, -4471: None, -5075: 1, -4313: 9, -6391: 8, -6694: 1, -6402: 5, -6684: 1, -6685: 1, -6614: 8, -6609: 23, -6613: 1, -5331: 1, -5333: 1, -6435: 5, -5334: 5, -7158: 5, -5335: 1, -5332: 1, -5336: 8, -5337: 8, -6615: 9, -6616: 5, -6617: 9, -6618: 1, -6620: 1, -6621: 1, -6842: 9, -7293: 5, -7294: 9, -169: 6, -4763: 1, -2071: 1, -7555: 5, -7556: 1, -7557: 1, -751: 7, -1866: 8, -4017: 8, -4018: 8, -7024: 9, 7580: 5, -6564: 1, -6569: 1, -6570: 7, +9657: 5, +'additional_device_types': 1, +'application_version_name': 8, +'branch': 8, +'comment': 8, +'creator': 8, +'device_category': 8, +'device_description': 8, +'device_id': 8, +'device_name': 8, +'device_type': 8, +'device_uuid': 21, +'has_audio_input': 5, +'has_audio_output': 5, +'has_note_input': 5, +'has_note_output': 5, +'is_polyphonic': 5, +'revision_id': 8, +'revision_no': 1, +'suggest_for_audio_input': 5, +'suggest_for_note_input': 5, +'tags': 8, +'type': 8, +'device_creator': 8, +'preset_category': 8, +'referenced_device_ids': 25, +'referenced_packaged_file_ids': 25, +5155: 5, +5386: 5, +697: 8, +4830: 8, +154: 8, +5465: 8, +155: 8, +156: 8, +158: 8, +159: 8, +161: 8, +162: 8, +163: 5, +157: 1, +4990: 5, +6726: 18, +6389: 9, +6782: 18, +6789: 9, +6093: None, +6469: 18, +6796: 5, +6797: 5, +6825: 5, +3326: 8, +153: 21, +310: 7, +303: 5, +627: 1, +2003: 5, +524: 18, +164: 9, +5153: 9, +5154: 18, +7022: 8, +7017: 8, +7033: 8, +6779: 8, +6780: 8, +6781: 9, +6792: 1, +6778: 18, +7008: 9, +7021: 9, +'album': 8, +'artist': 8, +'copyright': 8, +'genre': 8, +'orig_artist': 8, +'producer': 8, +'structure': 13, +'title': 8, +'used_files': 25, +'writer': 8, +'year': 8, +15: 21, +68: 8, +4531: 8, +69: 8, +4539: 8, +4532: 8, +4533: 8, +4534: 8, +4535: 8, +4536: 8, +4537: 8, +4538: 8, +70: 8, +72: 8, +5483: 5, +529: 9, +7398: 1, +7358: 1, +530: 9, +252: 9, +253: 9, +254: 9, +256: 9, +257: 9, +258: 9, +531: 9, +593: 7, +594: 7, +595: 9, +532: 9, +533: None, +2839: 7, +2101: 5, +2102: 5, +2995: 5, +3392: 5, +2991: 1, +3373: 5, +3597: 5, +5207: 9, +3033: 9, +454: 5, +455: 7, +456: 5, +401: 9, +347: 8, +1356: 22, +46: 1, +314: 5, +7045: 5, +3637: 5, +360: 20, +4992: 5, +2641: 21, +1408: 5, +6823: 1, +65: 9, +4923: 8, +4922: 8, +675: 9, +3005: 1, +1253: 9, +1254: 9, +1270: 5, +1277: 1, +2866: 5, +3581: 5, +4442: 5, +4777: 26, +5170: 5, +5831: 1, +5840: 5, +5834: 5, +5836: 8, +5837: 1, +5838: 5, +354: 5, +6816: 5, +2343: 1, +509: 1, +566: 8, +687: 7, +38: 7, +4344: 5, +543: 18, +2449: 5, +2450: 9, +2444: 9, +2445: 9, +2447: 9, +1181: 18, +2988: 18, +2989: 18, +641: 5, +2368: 7, +7499: 1, +3123: None, +3124: None, +3125: None, +4767: 8, +1298: 8, +3386: 8, +3284: 8, +56: 8, +1229: 8, +58: 8, +59: 8, +3387: 9, +3163: 18, +21: 9, +22: 13, +150: 1, +151: 5, +2237: 5, +2238: 7, +2239: 7, +2240: 1, +2241: 7, +1299: 9, +4766: 9, +4269: 5, +1200: 1, +3788: 1, +9663: 1, +5156: 1, +9675: 1, +2569: 5, +7462: 5, +7463: 1, +166: 7, +402: 9, +1795: 7, +4329: 9, +4330: 9, +7385: None, +1204: 9, +648: 9, +3076: 7, +3077: 7, +7178: 7, +4697: 7, +4698: 7, +6647: 7, +6648: 7, +6649: 1, +6650: 1, +525: 9, +3993042944: 'end here', +6288: 9, +6347: 18, +1180: 9, +568: 9, +349: 9, +1246: 18, +1245: 9, +'beat_length': 7, +'bpm': 7, +569: 18, +2202: 26, +4472: None, +2198: 9, +2199: 9, +1210: 18, +576: 9, +3021: 5, +561: 18, +350: 9, +351: None, +817: 20, +324: 18, +356: 9, +420: 9, +421: 9, +422: 9, +424: 5, +165: 18, +5206: 9, +357: 9, +242: 5, +2726: 5, +2727: 5, +3070: 5, +4803: 1, +4804: 1, +2764: 5, +400: 9, +4980: 7, +4981: 7, +7189: 9, +6821: None, +6822: 5, +646: 8, +640: 22, +1186: 1, +3041: 5, +1187: 7, +2378: 1, +2379: 1, +7515: 20, +5897: 7, +2958: 8, +1247: 18, +1248: 9, +265: 8, +2956: 8, +267: 1, +659: 18, +1250: 9, +5639: 9, +88: 9, +2439: 18, +2751: 18, +382: 18, +96: 9, +2747: 18, +77: 20, +2721: 5, +4941: 5, +3035: 1, +6159: 7, +6160: 1, +5739: 18, +5909: 20, +5702: 9, +5933: 1, +2409: 9, +5924: 7, +5925: 7, +5926: 8, +'referenced_modulator_ids': 25, +'referenced_module_ids': 25, +7029: None, +2879: 5, +2360: 8, +2361: 21, +4881: 1, +5131: 18, +5268: 5, +5908: 5, +5715: 9, +7141: 18, +7193: 7, +2022: 8, +2023: 8, +4513: 8, +4514: 8, +7448: 8, +2024: 21, +4516: 18, +4478: 5, +3758: 8, +2748: 8, +2909: 9, +2910: 9, +603: 18, +4034: 5, +3814: 9, +312: 9, +4658: 5, +3653: 7, +3654: 7, +3696: 9, +6856: 7, +6857: 7, +3958: 9, +1403: 5, +1109: 7, +4696: 1, +4486: 5, +520: 5, +521: 5, +522: 5, +4611: 5, +4605: 1, +4620: 1, +4607: 1, +4604: 9, +6753: 1, +6746: 9, +5918: 5, +5921: 5, +3576: 5, +3711: 18, +3710: 9, +3608: 5, +5638: 1, +634: 1, +635: 1, +637: 5, +638: 5, +639: 5, +831: 5, +7307: 5, +2741: 7, +3036: 5, +3678: 5, +1847: 9, +6754: 1, +6430: 9, +3988: 1, +4365: 5, +4571: 5, +4583: 5, +4463: 5, +4476: 5, +4364: 5, +4480: 5, +4481: 8, +4482: 1, +6306: 5, +4643: 1, +6528: 1, +3101: 1, +3102: 7, +2389: 1, +433: 9, +3098: 9, +442: 1, +443: 1, +444: 1, +445: 1, +446: 1, +5549: 5, +6341: 1, +5468: 9, +5548: 5, +3842: 9, +6745: 1, +4645: 9, +4646: 9, +3843: 9, +3844: 9, +4430: 1, +3845: 9, +3846: 9, +3847: 9, +1404: 1, +1301: 9, +4290: 5, +1932: 1, +4285: 1, +1935: 7, +1936: 7, +1938: 7, +4287: 7, +1944: 1, +4291: 5, +1941: 9, +4677: 9, +1739: 5, +5106: 5, +4770: 1, +4390: 1, +4772: 1, +7097: 5, +7113: 1, +7114: 5, +4776: 9, +4391: 9, +6396: 5, +4818: 5, +4843: 1, +5171: 8, +5172: 7, +5173: 7, +5174: 9, +6030: 1 } \ No newline at end of file From 0e4c6f919dc3c9e6368be6fe9e6da572ee6d4469 Mon Sep 17 00:00:00 2001 From: jaxter184 Date: Sat, 7 Apr 2018 03:42:56 -0500 Subject: [PATCH 3/4] single deletion --- src/__pycache__/decoder.cpython-36.pyc | Bin 6961 -> 6961 bytes src/__pycache__/encoder.cpython-36.pyc | Bin 1423 -> 1423 bytes src/__pycache__/extractor.cpython-36.pyc | Bin 4563 -> 4563 bytes src/lib/__pycache__/atoms.cpython-36.pyc | Bin 22694 -> 22694 bytes .../__pycache__/backupFields.cpython-36.pyc | Bin 156329 -> 156329 bytes .../__pycache__/backupObjects.cpython-36.pyc | Bin 98027 -> 98027 bytes .../luts/__pycache__/tables.cpython-36.pyc | Bin 21701 -> 21701 bytes .../luts/__pycache__/typeLists.cpython-36.pyc | Bin 11248 -> 11248 bytes typeLists.py | 1 - 9 files changed, 1 deletion(-) diff --git a/src/__pycache__/decoder.cpython-36.pyc b/src/__pycache__/decoder.cpython-36.pyc index aa1ca684b389a7fd09e9eef414ec98a0bb080d61..57c2e268c64c15171bf73791438c6a2bc9572f90 100644 GIT binary patch delta 22 ecmdmJw$Y5;n3tDJsO7{)c5f-hTa$yO?g0Q!7zbeh delta 22 ecmdmJw$Y5;n3tF9{k|<5*}bJ0qb3JS-2(tvtq0@) diff --git a/src/__pycache__/encoder.cpython-36.pyc b/src/__pycache__/encoder.cpython-36.pyc index 001479fe737a1708890a8ea73b9086d57a59d5b6..4edaea0756f4ca6b6d0ac762591ad5a9a49d8765 100644 GIT binary patch delta 16 XcmeC@?&oGV=H=xQYB{lyy@M41AwC2) delta 16 XcmeC@?&oGV=H=z``><&vdj~53B>V)( diff --git a/src/__pycache__/extractor.cpython-36.pyc b/src/__pycache__/extractor.cpython-36.pyc index 4ce4c28e453c00df82300be1666f2825bfdc4a17..1e1f7cf0a74562557953fa101fa6c94dae3f91a2 100644 GIT binary patch delta 16 Xcmcbtd|8>@n3tDJsO7{)_A`P2ENTTl delta 16 Ycmcbtd|8>@n3tF9=+P}3+0O_905Wj~9smFU diff --git a/src/lib/__pycache__/atoms.cpython-36.pyc b/src/lib/__pycache__/atoms.cpython-36.pyc index 10b890c6c1eb1bb4d3a46a181b04ddc47dd7ca0f..cf2da16d0e5836ff9b89383b996181a917902e08 100644 GIT binary patch delta 3537 zcmbVOdr*{B6z49>?!wBe#aIjl0z@zpL4(LrFw~Sxh|nynO_m}TR_`tv7Fqd9?SY=M zm-Ze^OVPH+RHkW7r7@Yk+bOk&_V7_t&D2;;o!`B?pDQLc{qy^N-?`_WbM86!obT)0 zBsw<evDyz z3n5#iWsAXY(|ifIwoMmjY;^efU5KbCpP7lxWHw1ZC6}fJhGbR?(M&gHt?YXXwk!h} z!N@ksJH5YXr>fH*o7c=s6WJv}g-zi&cZX#6K(zGJ${l!3{7qp??9)Tj^0H}HxrMe5Y#)Hc&y8#L zHne(Ney=Q-swy~hNHs@1Otvc12Io?>|}wQ2n3+`yF__6WjXG@(cU* zdj#)~0v-cA4tN6aFl`;wU))Zg56WWXI*~K~E-urP`2)pL+LeEK?i#3tituCve;Rx} z14p)jCKcp6k)WWp!QJR;_4tEUzt`*WH_eo5Ia`a8J9%*`oADvHHk0h6_(^Gjiott@ z*g%Da1F~LZdDzb@5qt}C6m2VARalgvim(aG&j8i}o&`Jyc$vBiHxJryoRGJ^3IRGQ zKU(G=TjXk`(3&%+ThxXvlr-d?G(|TD%t$>*VnSU7rPnfcq0 zt72H>HdxCH`F&@v|>7G!O_*9Gt%-Y zysAJ`KVtexWC3ikHnaRlb?V{tEHaN+lX0?erMeqW(asTfSDh?aRhrKbPE06B_}&O` z0#w(8lDJf*_N8;BBgjif5S20GgPgo|H7AQC7}wC$>~8Tjd0TwFWNt4!BIVqtY6R|v>yWyd`3q1__`&UMf>$uIbUoPWtr+=;Jf)hMTUMg`nGYO+{IITdZx_6$xM14t8=!~i=*8zB_g-@Ft3SJB-0Tckf1AGrS4Ctko z_w#xt&aHbnA=VaSi;?>=hv;Bcr8q!mj%k~u?u>Dwpxu4_OzHON%0J{FE&}LlPPB6JNAf#(4L9ql|2H9{SR3Pnte@k-SUrc zLZ)6czqgqFWIc?9$eZye$Mowp5wSoA27?K{YrS)>obB?oy05(2B~Pr=e~D0;k})E5 zm1oq<5;637jbE6lwsvrtg%^73xM*I#1rh6xgsFOfR-}wFjOs#HRj78 z5AirQDD4a^@52xL0>_7*38AN9hu*EvqsB|FNQvc@)yIVqtHVgFpWJA;(vINaXl&+0 zuiu^NZS`v}%7=u5e~T?i>zoi9b=NO)B=X|=f6e^^_=sL=t48STXois+n@h-`epT A4*&oF delta 3518 zcmbVOdr;I>6y`3=vas$dEy`jjARrGV5mbmQ1w&2Agb2+t+hi%^v37Uym1bsY+6z5u zR@!UESA~jeHE9LW^gvCsvZ-y%URwF8razn>Gj+au*JahDrhmTs?K$V3bM86!p5Jb2 z5t~{>WS-R;-P*pZC31V5nBsdi?hiw6XINO6%mE|-Y=9`h4B!6Vt)j;aaHXFKCh4y% z2l*15qSn{5Ppeqyg|v|&(;#Po&(?enc#-CF!RKjy5BPk|?*(6|`6BT9HDAojX!iF2 zWJ|PcDflwY9|YIF>Bhtzb`Sp+A}q{fWMVcL4bnp~`SHF%Nu@&6(fs7KJ@3Po6@Xwe zat@{U>m%kR$i zukin5;P+F!;)v_jYL1ZxCb|VUjjW~FDY=&ApepMPv@$D>_N6QkkJ8=4;)I)=sdH&; zs)Jc_f`cq+Ho<-5i^zWZdeW@}d%knUOK7wuCXyx_2 z#WVC=hJ&}ZX7mvc(UFW~Ms5l@G9TlfY{~2|meaw^ThlgSU!dZfL->o}FTtNdHq*qc zOb4prkF0W4I~(h~{z$LeUFWTtDYtNGmd0#kN^cf)2e&w`b=hs*3M`x&^QW-~;Re?56G6uV=ttr;xX{LXg0a87?zB zmE4$E+I+=yliKhG^%%4!UeP@;6?%t3@7Tk}b~-d@fwp+Eu$cL47K z-lOh=6D{qaR=`fWa`5G1CpC?U_caU-7X`u7`Xi^i>l*7DJo052A{Wj+sAj$wa@7oz zY@@BYnaTfDkR({eVz-d(^lR>V(M(Nw+1$`K^U&5~c}Zd)nTCwd-v`V00o~34_JFHg zJD9CS*UU`ta!sO#MRw4LYvSp-A?acpbqqO?jd_3;A>_HM@<9k63O(kbTTR z&yI}cCxwSNu3)nDAd6V78jeS3r}lyh@rjDlz`FNB<3yWfgF4mJE1M=`*hqEnW59y9 z-fx`lu5zgv#Eydo%!4M(Kjl5=kE(DzJ+{&5p(%7%;k&Ugx!{6*%6Z#4yUMFZm_9>P zm1x{yrk{m2z#L^Z%ERiVo=!+6T`CiQbX85gtHD#_Zt!$bxi1kBCFggl=B=*S z)Dcem5tbTR)*0~#9U9?tY=yN!e#HxF{xz?-6W`GKkq*(K65c;@lGsYAMRUcs=)L_Y z+r)Ib;?5uSbrkgyR&{0JiEGhDr-~C3)QnNLTIr6nPJRyqysPw4OHyDhL&c#}M$6UB z`)1TEZ5woUuKj_Dq~*%?(QB8hk47vFEGcmwLxgg~G|R!@xqv)C7T^cKkAPEvF5dEY ztWUzZ^;@<@nIp^*@;l5SI$2UIj?opP=T202CU_#h#WiQ9ba`~=!etv`sJQB&CjGj8 zf;6~CUptgemFev0LW??tf-^LHOlnRSS)S&7g~-yx1QQ@k$kV>2F$E%}jU^$$1C>)f z`ju5G+R3rY)CjQifLnH5>Ck^0aKG@zv7zB?QSui$GrpL{jT_4)nO#~+N5{pKpFr#) z07CiA)irgl24}sCZ)zK)oi&NnHBo5=yB$)UlWeY1EgoOV0iGD2)>S#qvh|eE{J0!v zIltrL1RX9-&Hul_bFROqtFXUu*y;gdtFKHMz4;dVn_t|x7@mGn~QRz{gq4YHdZ#Dmxqm9lSYZ@v~|+JY7fr& z5MU!e;5*N}NW4CYw;=W9Xn?5{rv{GK))Yai(Ra=A?j_D;bJx85n@X=BsMb FtN<9U6662? delta 53 zcmewm{vn**n3tDp$=WR&+1IPdM{y?SBo-I@WEPj);!Mj-%}D_ Date: Sat, 7 Apr 2018 03:46:23 -0500 Subject: [PATCH 4/4] fixing merge conflicts --- src/__pycache__/decoder.cpython-36.pyc | Bin 6961 -> 0 bytes src/__pycache__/encoder.cpython-36.pyc | Bin 1423 -> 0 bytes src/__pycache__/extractor.cpython-36.pyc | Bin 4563 -> 0 bytes src/lib/__pycache__/atoms.cpython-36.pyc | Bin 22694 -> 0 bytes src/lib/__pycache__/fs.cpython-36.pyc | Bin 990 -> 0 bytes src/lib/__pycache__/util.cpython-36.pyc | Bin 3103 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/__pycache__/decoder.cpython-36.pyc delete mode 100644 src/__pycache__/encoder.cpython-36.pyc delete mode 100644 src/__pycache__/extractor.cpython-36.pyc delete mode 100644 src/lib/__pycache__/atoms.cpython-36.pyc delete mode 100644 src/lib/__pycache__/fs.cpython-36.pyc delete mode 100644 src/lib/__pycache__/util.cpython-36.pyc diff --git a/src/__pycache__/decoder.cpython-36.pyc b/src/__pycache__/decoder.cpython-36.pyc deleted file mode 100644 index 57c2e268c64c15171bf73791438c6a2bc9572f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6961 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 Im<@ve0de5T&;S4c diff --git a/src/lib/__pycache__/atoms.cpython-36.pyc b/src/lib/__pycache__/atoms.cpython-36.pyc deleted file mode 100644 index cf2da16d0e5836ff9b89383b996181a917902e08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22694 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 diff --git a/src/lib/__pycache__/util.cpython-36.pyc b/src/lib/__pycache__/util.cpython-36.pyc deleted file mode 100644 index a1706807beca0a2f4b7517da5767e3c98aba0ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3103 zcmZ`*-ESMm5x?F0Y?##{nc4mIG zx*G3%^^aD%>Nx*#zVYK2zm2E-2t+u7WlqZxT)3Y&EhaqSgL4sx5Zo1!sDXPT7AxSs zsEbwbK&**%@K9V5m%$^^5Ldu!g6%oU)l;18G<%E~e#AXIxABx~Alm7(3YrD~ltbQa zo{~`sYXxa8WUdo#ynb2a#uuZ(uuPa?&U!U2K z&rO}-vzYzUT=UAAFre2XL>Z9Uq; z+{64g6%!1+S@~0rvHufi%Iw>Kq|e_DH51{CeauMWO-P)tZ&gmkD_{5<&L8-uGY#Q= z$W5cl>$_D%E+AdMb}A3Ch?7>4!A9u4MRaZ+>duQB}L!B16^}PwY!=cPYQZt^GW8DgKS!$fvS}Ao`=?(#P+;V$*Y{Fu{ zFMGN)EVYqtMOf(2F5_Z!G4NLou(t!Wb~1S^GmDYSFtGd~h{L?|e}hH%djJGKA4TUQ zT94QzJQgZj*tLWTMUQ}FqqmLk#wBwyc++x*DB{v(eBe%9=2WcjRW8M{@57@WqU(?U zTX~4=zuSoGG@M5CuY!vADOLwnC@vp`N?;yN15vBOXAzP7Gb<57;;&WMk3>9U>M!(G ztcV6htzVQxXr*IF{|gdpN4)$e_&Uw?N(D=R7EgVNm|xj+#0s8Ec!znvKEoZ% z-&kn-6I0$oAC1p7UcIOhJ6EwMJm3~BKL%DSj~yy;K5auP6$lS_hf%_BGYO;EX*uW3MNHdY)c= zm&gl5zDH!6$oD}`zs66!L{lQkx`}jgB=d9v8|=vNv{29CU2FYN<`%F35JXB7DcKcS zn#-2g{Mq~Ow1T~lKHP1-Yhnx2@^Pvkno!AM*6qm_zxRQ0GnpHASPa!ObYMKn7s`^F zdX|iMnaC?dtjf7D&}#xE%TcCVWK=3z0T`~6VVw&QS1~rfj;H(qh-2Ye2VgyRmB*L` zEC!F+7T;peV_au-_8rz>cHa`pl!TUv=wnP4P^R3c`3!JOk(S1HE2rc&~TlclBZ6@%d|tAg|e&g8XkIqAkuR`h`5 zTNo_%C86O;nm8@f95Bgy0J%te+W4uKgVMO=XkSq_G9K+oe6@**x=G{)ExSkZ#Q2E) zNL~y*ZF?6_Nok2fA0zAywuVsy`HMghV`h(E`s}GtzlVK`P+N|yh2ZfSs!HV|=Q|YM zdGW*C$GWE}Lxq)xcE+XKFT77}eNO!IfcYbRaQ)3wDxPq=zkj0PU^Em|5rTQMU;>dIBKN~9S{d*D{oOloh`lI3#cAqokXB&BrWB>!3m!3RbadxH z6$4uneg%=T4l=(N^F*$Gf%(!ME+)%IIFmYYQfNfca;mWO|!` znegF);P38~W2aYf5pDv*#CPZ{T8YkAq8*F+q}Eh~q{+*R5?QG2yvVO3aiFO{E!+Ni zsvoC^+d>|vJ$d>ngl(y{X)ke2@DPbe!b1b8yC&)t*p=&2?ULYKki>_V(TyoWhNASK z=z3TrVE@Ye;0}D>RU3E#$6Hkw{dr~BRVA*BHK#L|`7Pv2%D4^^OPxg?RmQs4prq2o z>e98;2`pVpHc%T1XYma<24k1pvhidNciK6+4_yDCsR*4D9>-6<%di;j78PBv_rWe2 zyn${tMcXmCVDu2O^A^liAJF#Lc9Hfd+k_};%;xT*jA}h)kz&8e?)io;>W-CdEu)=5 ZAx4?JML@D{iFo8j0iNgZUyq`w@jsh>vh@G}