Skip to content

Commit

Permalink
[Novation Summit] Integrating the Novation summit into the test suite…
Browse files Browse the repository at this point in the history
…. Allowing to test a friendly Bank Name as well.
  • Loading branch information
christofmuc committed Oct 2, 2022
1 parent e7cf385 commit f0d37d5
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 32 deletions.
36 changes: 8 additions & 28 deletions adaptions/Novation_Summit.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,12 @@ def renamePatch(message, new_name):
raise Exception("Neither edit buffer nor program dump can't be converted")


def bankName(bank):
def friendlyBankName(bank):
return f"Bank {chr(ord('A')+(bank % 4))}"


def friendlyProgramName(program):
return "%s%d" % (bankName(program // 128), program % 128)
return "%s%d" % (friendlyBankName(program // 128), program % 128)


def calculateFingerprint(message):
Expand All @@ -129,29 +129,9 @@ def calculateFingerprint(message):
return hashlib.md5(bytearray(data)).hexdigest()


def run_tests():
with open("testData/NovationPeak-Reflections.syx", "rb") as sysex:
raw_data = list(sysex.read())
assert isEditBufferDump(raw_data)
assert numberFromDump(raw_data) == 0

buffer = convertToEditBuffer(0, raw_data)
assert isEditBufferDump(buffer)
assert numberFromDump(buffer) == 0

back_dump = convertToProgramDump(1, buffer, 130)
assert numberFromDump(back_dump) == 130

assert nameFromDump(raw_data) == "Reflections"
assert nameFromDump(buffer) == nameFromDump(back_dump)
same_patch = renamePatch(raw_data, "Different")
assert nameFromDump(same_patch) == "Different"
same_same = renamePatch(same_patch, "Cr4zy Name°$ overflow")
assert nameFromDump(same_same) == "Cr4zy Name_$"

assert calculateFingerprint(same_same) == calculateFingerprint(raw_data)
assert bankName(2) == 'Bank C'


if __name__ == "__main__":
run_tests()
def test_data():
def programs(messages):
yield {"message": messages[0], "name": "Reflections", "number": 0, "is_edit_buffer": True}
return {"sysex": "testData/NovationPeak-Reflections.syx", "program_generator": programs,
"rename_name": "Cr4zy Name_$",
"friendly_bank_name": (2, 'Bank C')}
4 changes: 3 additions & 1 deletion adaptions/implementation_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Note that not all synths need to implement all functions, so it is not necessari
|Korg 03R/W|X|X|X|X|X|X|X|-|-|-|X|-|X|X|-|-|-|-|-|-|-|-|
|Matrix 6/6R|X|X|X|X|X|-|X|-|X|-|-|-|X|-|-|-|-|-|-|-|-|-|
|Matrix 1000 Adaptation|-|-|X|X|X|-|X|-|X|-|-|-|X|-|X|-|-|-|-|-|-|-|
|Novation Summit|-|-|X|X|X|X|X|-|X|-|-|X|X|-|X|-|X|-|X|-|-|-|
|Novation Summit|-|-|X|X|X|X|X|-|X|-|-|X|X|-|X|-|X|X|X|-|-|-|
|Novation UltraNova|X|X|X|X|X|X|X|-|X|-|-|X|X|X|X|X|X|X|-|-|-|X|
|Oberheim OB-8|X|X|X|X|X|X|-|-|X|-|-|X|X|-|-|X|X|X|X|-|-|-|
|Oberheim OB-X (Encore)|X|X|X|X|X|X|-|-|X|-|-|X|X|-|-|X|X|-|-|-|-|-|
Expand All @@ -41,6 +41,8 @@ Note that not all synths need to implement all functions, so it is not necessari
|Roland JX-8P|X|X|X|X|X|X|X|-|-|-|-|-|X|-|-|-|-|-|-|-|-|-|
|Roland D-50|-|-|X|X|-|-|-|-|-|-|-|-|X|-|-|-|-|-|-|-|-|-|
|Roland S-10|-|-|X|X|-|-|-|-|-|-|-|-|X|-|-|-|-|-|-|-|-|-|
|Roland JV-1080|-|-|X|X|X|-|X|X|X|X|-|X|X|-|-|-|X|-|-|-|-|-|
|Roland JV-80|-|-|X|X|X|-|X|X|X|X|-|X|X|-|-|-|X|-|-|-|-|-|
|Roland XV-3080|-|-|X|X|X|-|X|X|X|X|-|X|X|-|-|-|X|-|-|-|-|X|
|Sequential Pro 3|X|X|X|X|X|X|X|-|X|-|-|X|X|-|X|-|X|-|-|-|-|-|
|Sequential Prophet-5|X|X|X|X|X|X|X|-|X|-|-|X|X|-|X|-|X|-|-|-|-|-|
Expand Down
16 changes: 13 additions & 3 deletions adaptions/test_adaptations.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,10 @@ def test_rename(adaptation, test_data: TestData):
@skip_targets("test_data")
def test_is_program_dump(adaptation, test_data: TestData):
for program in test_data.programs:
assert adaptation.isSingleProgramDump(program["message"])
if "is_edit_buffer" in program:
assert adaptation.isEditBufferDump(program["message"])
else:
assert adaptation.isSingleProgramDump(program["message"])


@skip_targets("test_data")
Expand All @@ -116,9 +119,9 @@ def test_convert_to_edit_buffer(adaptation, test_data: TestData):
assert knobkraft.list_compare(idempotent, program)
program_buffer = adaptation.convertToProgramDump(0x00, edit_buffer, 11)
elif adaptation.isEditBufferDump(program):
program_buffer = adaptation.convertToProgramDump(program, 11)
program_buffer = adaptation.convertToProgramDump(0x00, program, 11)
assert adaptation.isSingleProgramDump(program_buffer)
edit_buffer = adaptation.convertToEditBuffer(program_buffer)
edit_buffer = adaptation.convertToEditBuffer(0x00, program_buffer)
else:
program_buffer = program
edit_buffer = None
Expand Down Expand Up @@ -173,3 +176,10 @@ def test_device_detection(adaptation, test_data: TestData):
def test_program_dump_request(adaptation, test_data: TestData):
if "program_dump_request" in test_data.test_dict:
assert knobkraft.list_compare(adaptation.createProgramDumpRequest(0x00, 0x00), knobkraft.stringToSyx(test_data.test_dict["program_dump_request"]))


@skip_targets("test_data")
def test_friendly_bank_name(adaptation, test_data: TestData):
if "friendly_bank_name" in test_data.test_dict:
bank_data = test_data.test_dict["friendly_bank_name"]
assert adaptation.friendlyBankName(bank_data[0]) == bank_data[1]

0 comments on commit f0d37d5

Please sign in to comment.