|
|
@ -816,14 +816,14 @@ void handleSystemExclusive(byte * sysex, uint len) |
|
|
|
sysex[4] &= 0x7f; |
|
|
|
sysex[4] &= 0x7f; |
|
|
|
sysex[5] &= 0x7f; |
|
|
|
sysex[5] &= 0x7f; |
|
|
|
|
|
|
|
|
|
|
|
uint8_t data_index; |
|
|
|
uint8_t data_index = 0; |
|
|
|
|
|
|
|
|
|
|
|
if (((sysex[3] & 0x7c) >> 2) == 0) |
|
|
|
if (((sysex[3] & 0x7c) >> 2) == 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
MicroDexed[instance_id]->notesOff(); |
|
|
|
MicroDexed[instance_id]->notesOff(); |
|
|
|
MicroDexed[instance_id]->data[sysex[4] + ((sysex[3] & 0x03) * 128)] = sysex[5]; // set parameter
|
|
|
|
for (uint8_t i = 0; i < 128 || sysex[5] != 0xf7; i++) |
|
|
|
|
|
|
|
MicroDexed[instance_id]->data[sysex[4] + ((sysex[3] & 0x03) * 128) + i] = sysex[5]; // set parameter
|
|
|
|
MicroDexed[instance_id]->doRefreshVoice(); |
|
|
|
MicroDexed[instance_id]->doRefreshVoice(); |
|
|
|
data_index = sysex[4] + ((sysex[3] & 0x03) * 128); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
@ -904,13 +904,19 @@ void handleSystemExclusive(byte * sysex, uint len) |
|
|
|
#ifdef DEBUG |
|
|
|
#ifdef DEBUG |
|
|
|
Serial.print(F("SysEx")); |
|
|
|
Serial.print(F("SysEx")); |
|
|
|
if (((sysex[3] & 0x7c) >> 2) == 0) |
|
|
|
if (((sysex[3] & 0x7c) >> 2) == 0) |
|
|
|
Serial.print(F(" function")); |
|
|
|
{ |
|
|
|
Serial.print(F(" parameter ")); |
|
|
|
Serial.println(F(" voice:")); |
|
|
|
|
|
|
|
show_patch(instance_id); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Serial.print(F(" function: ")); |
|
|
|
Serial.print(sysex[4], DEC); |
|
|
|
Serial.print(sysex[4], DEC); |
|
|
|
Serial.print(F(" = ")); |
|
|
|
Serial.print(F(" = ")); |
|
|
|
Serial.print(sysex[5], DEC); |
|
|
|
Serial.print(sysex[5], DEC); |
|
|
|
Serial.print(F(", data_index = ")); |
|
|
|
Serial.print(F(", data_index = ")); |
|
|
|
Serial.println(data_index, DEC); |
|
|
|
Serial.println(data_index, DEC); |
|
|
|
|
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
else if (len == 163) |
|
|
|
else if (len == 163) |
|
|
|