Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 26 additions & 18 deletions maxdiff/patch_printer.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,50 +374,58 @@ def get_parameters_string_block(patcher: dict) -> str:
"""
parameters = patcher["parameters"]
parameters_string = ""
for key, value in parameters.items():
if key in ["parameter_overrides", "parameterbanks"]:
for bankindex, bank in parameters.items():
if bankindex in ["parameter_overrides", "parameterbanks"]:
continue

parsed_key = key
if key.startswith("obj"):
id_tokens = key.split("::")
parsed_key = bankindex
if bankindex.startswith("obj"):
id_tokens = bankindex.split("::")
parsed_key = get_object_names_from_ids_recursive(id_tokens, patcher["boxes"])

parameters_string += f"\t{parsed_key}: {value}"
parameters_string += f"\t{parsed_key}: {bank}"

if (
"parameter_overrides" in parameters
and key in parameters["parameter_overrides"]
and bankindex in parameters["parameter_overrides"]
):
override = parameters["parameter_overrides"][key]
override = parameters["parameter_overrides"][bankindex]
override_print = [
override.get("parameter_longname", "-"),
override.get("parameter_shortname", "-"),
str(override.get("parameter_linknames", "-")),
]

for key2, value2 in override.items():
if key2 in [
for key, value in override.items():
if key in [
"parameter_longname",
"parameter_shortname",
"parameter_linknames",
]:
continue
override_print.append(f"{key2}: {value2}")
override_print.append(f"{key}: {value}")

parameters_string += f" > override > {str(override_print)}"
parameters_string += "\n"

if "parameterbanks" in parameters:
parameters_string += "banks:\n"
for key, value in parameters["parameterbanks"].items():
parameters_string += (
f"\t{value['index']}"
+ (f" ({value['name']})" if value["name"] != "" else "")
+ f": {value['parameters']}"
)
for bankindex, bank in parameters["parameterbanks"].items():
for key, value in bank.items():
parameters_string += "\t"
if key == "index":
parameters_string += f"{value}:"
elif key == "name":
parameters_string += f"({value})" if value != "" else ""
elif key == "parameters":
parameters_string += f"encoders: {bank['parameters']}"
elif key == "buttons":
parameters_string += f"buttons: {bank['buttons']}"
else:
parameters_string += f"{value}"
parameters_string += "\n"

return f"parameters:\n{parameters_string}\n"
return f"parameters:\n{parameters_string}"


def get_dependency_cache_string_block(dependency_cache: list):
Expand Down
8 changes: 5 additions & 3 deletions maxdiff/tests/test_baselines/Test.amxd.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,20 @@ parameters:
[live.dial]: ['live.dial[1]', 'live.dial', 0]
inherited_shortname: 1
banks:
0 (MyBank): ['live.dial', 'InsideBpatcher', '-', '-', '-', '-', '-', '-']
0: (MyBank) encoders: ['live.dial', 'InsideBpatcher', '-', '-', '-', '-', '-', '-'] buttons: ['live.text', '-', '-', '-', '-', '-', '-', 'live.menu']
dependency_cache:
{'name': 'AbstractionWithParameter.maxpat', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'JSON', 'implicit': 1}
{'name': 'MyAbstraction.maxpat', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'JSON', 'implicit': 1}
{'name': 'ParamAbstraction.maxpat', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'JSON', 'implicit': 1}
{'name': 'TestScript.js', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'TEXT', 'implicit': 1}
{'name': 'VisibleBang.js', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'TEXT', 'implicit': 1}
{'name': 'beat-icon.svg', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'svg', 'implicit': 1}
{'name': 'collContent.txt', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'TEXT', 'implicit': 1}
{'name': 'fpic.png', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'PNG', 'implicit': 1}
{'name': 'hz-icon.svg', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'svg', 'implicit': 1}
{'name': 'my-maxnode-basic.js', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'TEXT', 'implicit': 1}
{'name': 'myTestTable', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'TEXT', 'implicit': 1}
{'name': 'mystorage.json', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'JSON', 'implicit': 1}
{'name': 'myxfade.genjit', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'gJIT', 'implicit': 1}
{'name': 'shakerkicksnare.aif', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'AIFF', 'implicit': 1}
{'name': 'times3.gendsp', 'bootpath': '~/maxdevtools/maxdiff/tests/test_files', 'type': 'gDSP', 'implicit': 1}
Expand Down Expand Up @@ -69,8 +71,8 @@ appversion: 9.0.10-x64-1 | rect: [91, 153, 1288, 310] | openrect: [0, 0, 0, 169]
[node.script my-maxnode-basic.js] autostart: 0 | defer: 0 | watch: 0 | textfile: {'filename': 'my-maxnode-basic.js', 'flags': 0, 'embed': 0, 'autowatch': 1}
[comment JSUI using script file] bubble: 1
[jsui] filename: VisibleBang.js
[live.menu] pictures: [hz-icon.svg, beat-icon.svg] | remapsvgcolors: 1 | parameter: <enum: [one, two, three] | longname: live.menu | mmax: 2 | modmode: 0 | shortname: live.menu | type: 2> | usepicture: 1 | usesvgviewbox: 1
[live.text] pictures: [hz-icon.svg, beat-icon.svg] | remapsvgcolors: 1 | parameter: <enum: [val1, val2] | longname: live.text | mmax: 1 | modmode: 0 | shortname: live.text | type: 2> | usepicture: 1 | usesvgviewbox: 1
[live.menu] pictures: [hz-icon.svg, beat-icon.svg] | remapsvgcolors: 1 | parameter: <button_mode: Cycle | enum: [one, two, three] | longname: live.menu | mmax: 2 | modmode: 0 | shortname: live.menu | type: 2> | usepicture: 1 | usesvgviewbox: 1
[live.text] pictures: [hz-icon.svg, beat-icon.svg] | remapsvgcolors: 1 | parameter: <button_mode: Momentary | enum: [val1, val2] | longname: live.text | mmax: 1 | modmode: 0 | shortname: live.text | type: 2> | usepicture: 1 | usesvgviewbox: 1
[playlist~] basictuning: 440 | clipheight: 28.0 | data: {'clips': [{'absolutepath': 'shakerkicksnare.aif', 'filename': 'shakerkicksnare.aif', 'filekind': 'audiofile', 'id': 'u400003311', 'loop': 1, 'content_state': {'loop': 1}}]} | mode: basic | originallength: [0, ticks] | originaltempo: 120.0 | quality: basic
[pictslider] bkgndpict: fpic.png | clickedimage: 0 | knobpict: fpic.png
[pictctrl] name: fpic.png
Expand Down
Binary file modified maxdiff/tests/test_files/Test.amxd
Binary file not shown.