# Copyright (c) 2021 Christof Ruch. All rights reserved. # # Dual licensed: Distributed under Affero GPL license by default, an MIT license is available for purchase # import sequential import sys this_module = sys.modules[__name__] # # Configure the GenericSequential module # sequential.GenericSequential(name="DSI Tetra", device_id=0b00100110, banks=2, patches_per_bank=128, name_position=184, name_len=16 ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/Tetra_ProgramsCombos_1.0.syx") unittest.TextTestRunner().run(sequential.TestAdaptation.create_tests(this_module, program_dump=messages[1], program_name='Tom Sawyer'))
# synth = sequential.GenericSequential( name="DSI Pro 2", device_id=0b00101100, # See Page 134 of the Pro 2 manual banks=8, patches_per_bank=99, name_len=20, name_position=378, ).install(this_module) def setupHelp(): return "The DSI Pro 2 has two relevant global settings:\n\n" \ "1. You must set MIDI Sysex Enable to On\n" \ "2. You must choose the MIDI Sysex Cable.\n\n" \ "Options are DIN MIDI cable or the USB for sysex. USB is much faster.\n\n" \ "Both settings are accessible via the GLOBALS menu." # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/Pro_2_Programs_v1.0a.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests(this_module, program_dump=messages[0], program_name='Cascades'))
import sequential import sys this_module = sys.modules[__name__] # TODO Support for the original Prophet 5 (Rev1-Rev3) sysex dumps. They started with F0 01 01, but lacked the F7 # # Configure the GenericSequential module # synth = sequential.GenericSequential( name="Sequential Prophet-5", device_id= 0b00110010, # This is the ID used in the factory programs available from the website banks=10, patches_per_bank=40, name_len=20, name_position=65, ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/P5_Factory_Programs_v1.02.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests(this_module, program_dump=messages[2], program_name='Forever Keys'))
synth = sequential.GenericSequential( name="Sequential Prophet X", device_id=0b00110000, # See Page 153 of the prophet X manual banks=8, patches_per_bank=128, name_len=20, name_position=418, blank_out_zones=[(2466, 20)] # Blank out Layer B name as well ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/PX_Programs_v2.0.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests(this_module, program_dump=messages[2], program_name='Poly Super')) import binascii message = binascii.unhexlify( "f0 7e 09 06 02 01 30 01 00 00 02 02 00 f7".replace(" ", "")) validResponse = channelIfValidDeviceResponse(message) assert validResponse == 0x09 programDump = binascii.unhexlify( "f0 01 30 02 03 00 00 18 32 05 00 01 01 01 20 00 00 03 7c 00 73 03 05 67 01 7d 01 00 01 3c 00 00 00 01 46 00 40 00 00 00 00 01 1c 40 00 00 00 1d 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 03 00 00 00 00 00 00 00 18 32 00 00 01 20 01 00 00 00 03 67 03 15 67 03 67 01 73 00 00 00 00 3c 00 00 01 46 00 00 40 00 00 00 01 14 40 00 00 00 16 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 00 40 00 00 00 00 00 18 32 7f 01 2a 00 46 01 01 40 00 00 00 00 00 00 32 11 01 0f 46 00 01 01 40 00 00 00 00 00 05 00 40 00 00 00 00 00 00 00 00 00 2b 44 78 00 21 59 00 00 00 20 7f 20 01 05 4e 59 28 04 00 00 03 00 00 01 0c 5d 65 40 28 3d 00 03 00 00 7e 00 00 00 0a 1d 3a 10 00 00 00 00 00 00 7f 00 00 00 00 0b 56 0b 00 00 00 04 00 00 09 01 07 61 40 00 00 00 01 00 00 00 00 01 7e 00 00 7f 50 00 00 00 00 00 00 00 00 15 00 03 43 52 00 00 1b 00 08 20 00 00 00 00 00 44 0d 00 03 00 16 00 23 00 04 10 00 00 00 09 7e 04 00 00 46 00 2f 00 1b 00 00 04 00 2d 7e 04 01 45 00 00 06 00 38 00 00 00 0d 00 0e 05 01 01 01 10 10 00 10 10 10 10 00 00 00 76 00 7e 7e 7f 7e 03 0a 1f 7e 76 29 3a 7e 00 00 00 7f 7f 7f 4a 49 01 0d 00 10 16 1f 25 1d 1e 58 00 2b 28 00 00 00 41 0d 00 7f 00 7f 00 7f 00 7f 00 00 00 00 00 00 00 00 00 7f 7f 7f 7f 7f 7f 7f 00 00 07 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 06 00 02 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 07 00 00 00 00 00 00 00 00 57 61 00 62 62 6c 65 20 41 20 00 20 20 20 20 20 20 20 00 20 20 20 20 64 48 3c 00 4f 4d 3c 4d 4c 3c 48 00 3c 48 43 3c 3c 4a 43 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 40 3c 3c 3c 3c 3c 3c 51 7f 00 28 55 00 53 53 00 7f 4b 00 4b 56 00 00 4b 01 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 00 00 00 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 0f 7f 7f 7f 7f 18 32 7f 00 00 01 00 00 00 00 03 55 67 03 67 03 67 01 73 00 00 00 64 3c 00 00 01 00 46 00 40 00 00 00 01 00 14 40 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 00 18 00 32 00 00 01 00 00 00 54 00 03 67 03 67 03 67 02 01 73 00 00 00 3c 00 00 00 01 46 00 40 00 00 00 00 01 14 40 00 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 00 40 00 00 00 00 18 00 32 7f 02 40 46 01 01 00 40 00 00 00 00 18 32 00 64 00 40 46 01 01 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 02 00 24 00 00 00 52 00 00 00 00 00 7f 00 02 40 00 00 28 7f 00 03 00 00 00 00 0c 40 7f 28 00 00 00 03 00 00 7f 00 00 00 00 1d 16 10 00 00 00 00 00 00 7f 00 00 00 00 7f 00 28 00 00 00 00 00 7f 00 00 00 00 1e 00 00 00 00 00 00 00 00 7f 00 00 00 00 1e 00 00 00 00 00 10 00 00 00 00 06 7f 00 00 00 0d 00 00 00 00 00 04 00 00 06 7f 00 00 00 00 00 00 00 00 00 00 00 01 06 7f 00 00 00 00 00 20 00 00 00 00 00 06 7f 00 00 00 00 00 00 00 00 00 00 00 00 0d 0e 05 00 00 00 00 00 00 00 00 00 60 00 00 00 00 00 48 48 00 7f 7f 7f 7f 7f 7f 7f 00 7f 7f 7f 7f 7f 7f 7f 00 1d 10 01 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 16 28 7f 00 7f 00 00 7f 00 7f 00 00 00 00 00 00 00 00 7f 7f 7f 00 7f 7f 7f 7f 00 07 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 06 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 07 00 00 00 00 00 00 00 00 57 61 62 62 6c 00 65 20 41 20 20 20 20 00 20 20 20 20 20 20 20 00 20 64 48 3c 4f 4d 3c 00 4d 4c 3c 48 3c 48 43 00 3c 3c 4a 43 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 78 3c 3c 3c 51 00 28 55 7f 00 53 53 00 4b 00 4b 1f 56 00 00 4b 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 3c 00 3c 3c 3c 3c 3c 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7e 00 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 01 7f 00 f7" .replace(" ", "")) assert isSingleProgramDump(programDump) print(nameFromDump(programDump))
# # Dual licensed: Distributed under Affero GPL license by default, an MIT license is available for purchase # import sequential import sys this_module = sys.modules[__name__] # # Configure the GenericSequential module # synth = sequential.GenericSequential(name="DSI Prophet 08", # DSI product name is Prophet '08 (for the year introduced) device_id=0b00100011, # See Page 82 of the prophet 12 manual banks=2, patches_per_bank=128, name_len=16, name_position=184, id_list=[0b00100011, 0b00100100], # Prophet 08 or special edition Prophet 08 ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/Prophet_08_Programs_v1.0.syx") unittest.TextTestRunner().run(sequential.TestAdaptation.create_tests(this_module, program_dump=messages[2], program_name='T8 Strings'))
# Dual licensed: Distributed under Affero GPL license by default, an MIT license is available for purchase # import sequential import sys this_module = sys.modules[__name__] # # Configure the GenericSequential module # synth = sequential.GenericSequential( name="Sequential Pro 3", device_id=0b00110001, # See Page 147 of the Pro 3 manual banks=8, patches_per_bank=128, name_len=20, name_position=321, ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/P3_Factory_Sounds_v1.01.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests(this_module, program_dump=messages[2], program_name='Staircase'))
# Dual licensed: Distributed under Affero GPL license by default, an MIT license is available for purchase # import sequential import sys this_module = sys.modules[__name__] # # Configure the GenericSequential module # sequential.GenericSequential( name="DSI Mopho", device_id=0x25, banks=3, patches_per_bank=128, name_position=184, name_len=16, id_list=[0x25, 0x27, 0x29] # this adds Mopho Keyboard, SE, and X4 ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/Mopho_Programs_v1.0.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests(this_module, program_dump=messages[1], program_name='Wagnerian'))
synth = sequential.GenericSequential(name="DSI Prophet 12", device_id=0b00101010, # See Page 82 of the prophet 12 manual banks=8, patches_per_bank=99, name_len=20, name_position=402, id_list=[0b00101010, 0x2b], # The Pro12 Desktop module calls itself 0x2b, blank_out_zones=[(914, 20)] # Make sure to blank out the layer B name as well ).install(this_module) # # Synth specific functions # def setupHelp(): return "The DSI Prophet 12 has two relevant global settings:\n\n" \ "1. You must set MIDI Sysex Enable to On\n" \ "2. You must choose the MIDI Sysex Cable.\n\n" \ "Options are DIN MIDI cable or the USB for sysex. USB is much faster.\n\n" \ "Both settings are accessible via the GLOBALS menu." if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/P12_Programs_v1.1c.syx") unittest.TextTestRunner().run(sequential.TestAdaptation.create_tests(this_module, program_dump=messages[5], program_name='Wurly Trem ModWheel'))
import sys this_module = sys.modules[__name__] # The Mopho X4 has 4 banks, not 3 like the original Mopho # # Configure the GenericSequential module # sequential.GenericSequential( name="DSI Mopho X4", device_id=0x29, banks=4, patches_per_bank=128, name_position=184, name_len=16, id_list=[0x25, 0x27, 0x29] # this adds Mopho Keyboard, SE, and X4 ).install(this_module) # # If this is not loaded as a module, but called as a script, run our unit tests # if __name__ == "__main__": import unittest messages = sequential.load_sysex("testData/Mopho_x4_AllBanks_V1.01.syx") unittest.TextTestRunner().run( sequential.TestAdaptation.create_tests( this_module, program_dump=messages[0], program_name='Moonster '))