Skip to content

Commit

Permalink
Merge branch 'master' into synths/yamaha_fs1r
Browse files Browse the repository at this point in the history
  • Loading branch information
christofmuc committed Feb 12, 2025
2 parents 6071633 + eeb965d commit 1817452
Show file tree
Hide file tree
Showing 19 changed files with 562 additions and 57 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Questions and help with implementing new synths wanted! Or if you have found a b
| Pioneer | Toraiz AS-1 | works | adaptation | Thanks to @zzort! |
| Roland | JX-8P | alpha | adaptation | |
| Roland | Juno-DS | works | adaptation | contributed by @mslinn! Thank you! |
| Roland | D-50 | in progress | adaptation | |
| Roland | D-50 | works | adaptation | Shout out to @summersetter for testing! |
| Roland | JV-80/880/90/1000 | beta | adaptation | |
| Roland | JV-1080/2080 | beta | adaptation | |
| Roland | MKS-50 | alpha | native | |
Expand All @@ -74,7 +74,7 @@ Questions and help with implementing new synths wanted! Or if you have found a b
| Sequential | Prophet-6 | beta | adaptation | |
| Sequential | Prophet X | works | adaptation | |
| Sequential | Take 5 | beta | adaptation | |
| Sequential | Trigon-6 | beta | adaptation | |
| Sequential | Trigon-6 | works | adaptation | |
| Studiologic | Sledge | beta | adaptation | |
| Waldorf | Blofeld | beta | adaptation | |
| Waldorf | M | works | adaptation | Thanks to @RadekPilich for testing! |
Expand Down
2 changes: 1 addition & 1 deletion adaptations/Adaptation Programming Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ It should return a list of banks, and each bank is described by a the following

* "bank" [int] - The number of the bank. Should be zero-based
* "name" [str] - The friendly name of the bank
* "size" [int] - The number of items in this bank. This allows for banks of differenct sizes for one synth
* "size" [int] - The number of items in this bank. This allows for banks of different sizes for one synth
* "type" [str] - A text describing the type of data in this bank. Could be "Patch", "Tone", "Song", "Rhythm" or whatever else is stored in banks. Will be displayed in the metadata.
* "isROM" [bool] - Use this to indicate for later bank management functionality that the bank can be read, but not written to

Expand Down
2 changes: 1 addition & 1 deletion adaptations/Elektron_AnalogRytm.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def renamePatch(message: List[int], new_name: str) -> List[int]:
# No way to rename these
return message
data, checksum = unescapeSysexElektron(message[10:-5])
data[12:12 + 16] = [ord(c) for c in new_name.ljust(16, chr(0x00))]
data[12:12 + 16] = [ord(c) for c in new_name.ljust(16, chr(0x00))[:16]]
escaped_data, new_checksum = escapeSysexElektron(data)
checksum_hi = (new_checksum >> 7) & 0x7f
checksum_lo = new_checksum & 0x7f
Expand Down
2 changes: 1 addition & 1 deletion adaptations/Elektron_Digitone.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def nameFromDump(message):
def renamePatch(message: List[int], new_name: str) -> List[int]:
if isSingleProgramDump(message):
data, checksum = unescapeSysexElektron(message[10:-5])
data[12:12 + 16] = [ord(c) for c in new_name.ljust(16, chr(0x00))]
data[12:12 + 16] = [ord(c) for c in new_name.ljust(16, chr(0x00))[:16]]
escaped_data, new_checksum = escapeSysexElektron(data)
checksum_hi = (new_checksum >> 7) & 0x7f
checksum_lo = new_checksum & 0x7f
Expand Down
2 changes: 1 addition & 1 deletion adaptations/Emu_Morpheus.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def convertToProgramDump(device_id, message, program_number):

def renamePatch(message: List[int], new_name: str) -> List[int]:
if isSingleProgramDump(message):
name_params = [(ord(c), 0) for c in new_name.ljust(12, " ")]
name_params = [(ord(c), 0) for c in new_name.ljust(12, " ")][:12]
return message[:8] + [item for sublist in name_params for item in sublist] + message[32:]
raise Exception("Can only rename Presets!")

Expand Down
2 changes: 1 addition & 1 deletion adaptations/Korg_M1.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def nameFromDump(message):

def renamePatch(message: List[int], new_name: str) -> List[int]:
if isEditBufferDump(message):
new_name_list = [ord(c) for c in new_name.ljust(10, " ")]
new_name_list = [ord(c) for c in new_name.ljust(10, " ")][:10]
data = unescapeSysex(message[5:-1])
return message[:5] + escapeSysex(new_name_list + data[10:]) + [0xf7]
raise Exception("Can only rename program data dumps!")
Expand Down
9 changes: 7 additions & 2 deletions adaptations/OberheimOBX8.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ def name_info(message: List[int]) -> Tuple[int, int]:

sequential.GenericSequential(name="Oberheim OB-X8",
manufacturer=0x10, # Oberheim, not Sequential
id_list=[0x58, 0x59], # 0x58 the synth, 0x59 the module
device_id=0x58,
program_data_ids=[SINGLE_PROGRAM, COMBI_PROGRAM],
banks=8,
patches_per_bank=128,
name_len=13,
name_len=20,
name_info_function=name_info,
friendlyBankName=bankName
).install(this_module)
Expand All @@ -57,4 +58,8 @@ def programs(data: testing.TestData) -> List[testing.ProgramTestData]:

yield testing.ProgramTestData(message=data.all_messages[0], name="Jersey Girl B", number=22)

return testing.TestData(sysex="testData/Oberheim_OBX8/OBx8-prest.syx", program_generator=programs, friendly_bank_name=(5, "User"))
return testing.TestData(sysex="testData/Oberheim_OBX8/OBx8-prest.syx",
program_generator=programs,
friendly_bank_name=(5, "User"),
device_detect_call="f0 7e 00 06 01 f7", # The test tests with channel 0x00, even if in real life we will use 0x7f
device_detect_reply=("f0 7e 7f 06 02 10 59 01 00 00 02 00 00 f7", 1))
Loading

0 comments on commit 1817452

Please sign in to comment.