Fixes for handling SYSEX.

dev
Holger Wirtz 3 years ago
parent 42ec36b607
commit b55e7afb56
  1. 268
      MicroDexed.ino
  2. 132
      drumset.h

@ -1584,8 +1584,10 @@ void handleProgramChange(byte inChannel, byte inProgram)
}
}
void handleSystemExclusive(byte * sysex, uint len)
void handleSystemExclusive(byte* sysex, unsigned int len)
{
int16_t sysex_return;
for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++)
{
if (!checkMidiChannel((sysex[2] & 0x0f) + 1 , instance_id))
@ -1624,61 +1626,97 @@ void handleSystemExclusive(byte * sysex, uint len)
Serial.println();
#endif
// Check for SYSEX end byte
if (sysex[len - 1] != 0xf7)
{
sysex_return = MicroDexed[instance_id]->handleSystemExclusive(sysex, len);
#ifdef DEBUG
Serial.println(F("E: SysEx end status byte not detected."));
Serial.print(F("SYSEX handler return value:"));
Serial.print(sysex_return, DEC);
Serial.println();
#endif
return;
}
if (sysex[1] != 0x43) // check for Yamaha sysex
switch (sysex_return)
{
case -1:
#ifdef DEBUG
Serial.println(F("E: SysEx end status byte not detected."));
#endif
break;
case -2:
#ifdef DEBUG
Serial.println(F("E: SysEx vendor not Yamaha."));
#endif
return;
}
break;
case -3:
#ifdef DEBUG
Serial.print(F("Substatus: ["));
Serial.print((sysex[2] & 0x70) >> 4);
Serial.println(F("]"));
Serial.println(F("E: Unknown SysEx parameter change."));
#endif
// parse parameter change
if (len == 7)
{
if (((sysex[3] & 0x7c) >> 2) != 0 && ((sysex[3] & 0x7c) >> 2) != 2)
{
break;
case -4:
#ifdef DEBUG
Serial.println(F("E: Not a SysEx parameter or function parameter change."));
Serial.println(F("E: Unknown SysEx voice or function."));
#endif
return;
}
sysex[4] &= 0x7f;
sysex[5] &= 0x7f;
if ((sysex[3] & 0x7c) >> 2 == 0)
{
break;
case -5:
#ifdef DEBUG
Serial.println(F("SysEx Voice parameter:"));
Serial.print("Parameter #");
Serial.print(sysex[4] + ((sysex[3] & 0x03) * 128), DEC);
Serial.print(" Value: ");
Serial.println(sysex[5], DEC);
Serial.println(F("E: Not a SysEx voice bulk upload."));
#endif
MicroDexed[instance_id]->setVoiceDataElement(sysex[4] + ((sysex[3] & 0x03) * 128), sysex[5]);
}
else if ((sysex[3] & 0x7c) >> 2 == 2)
{
break;
case -6:
#ifdef DEBUG
Serial.println(F("E: Wrong length for SysEx voice bulk upload (not 155)."));
#endif
break;
case -7:
#ifdef DEBUG
Serial.println(F("E: Checksum error for one voice."));
#endif
break;
case -8:
#ifdef DEBUG
Serial.println(F("E: Not a SysEx bank bulk upload."));
#endif
display.setCursor(0, 1);
display.print(F("Error (TYPE) "));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
break;
case -9:
#ifdef DEBUG
Serial.println(F("E: Wrong length for SysEx bank bulk upload (not 4096)."));
#endif
display.setCursor(0, 1);
display.print(F("Error (SIZE) "));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
break;
case -10:
#ifdef DEBUG
Serial.println(F("SysEx Function parameter:"));
Serial.print("Parameter #");
Serial.println(F("E: Checksum error for bank."));
#endif
break;
case -11:
#ifdef DEBUG
Serial.println(F("E: Unknown SysEx message."));
#endif
break;
case 64:
case 65:
case 66:
case 67:
case 68:
case 69:
case 70:
case 71:
case 72:
case 73:
case 74:
case 75:
case 76:
case 77:
#ifdef DEBUG
Serial.println(F("SysEx Function parameter change : "));
Serial.print(F("Parameter #"));
Serial.print(sysex[4], DEC);
Serial.print(" Value: ");
Serial.print(F(" Value : "));
Serial.println(sysex[5], DEC);
#endif
switch (sysex[4])
@ -1800,64 +1838,9 @@ void handleSystemExclusive(byte * sysex, uint len)
LCDML.loop_menu();
}
break;
default:
MicroDexed[instance_id]->setVoiceDataElement(sysex[4], sysex[5]); // set function parameter
break;
}
MicroDexed[instance_id]->ControllersRefresh();
}
#ifdef DEBUG
else
{
Serial.println(F("E: Unknown SysEx voice or function."));
}
#endif
}
else if (len == 163)
{
int32_t bulk_checksum_calc = 0;
int8_t bulk_checksum = sysex[161];
// 1 Voice bulk upload
#ifdef DEBUG
Serial.println(F("One Voice bulk upload"));
#endif
if ((sysex[3] & 0x7f) != 0)
{
#ifdef DEBUG
Serial.println(F("E: Not a SysEx voice bulk upload."));
#endif
return;
}
if (((sysex[4] << 7) | sysex[5]) != 0x9b)
{
#ifdef DEBUG
Serial.println(F("E: Wrong length for SysEx voice bulk upload (not 155)."));
#endif
return;
}
// checksum calculation
for (uint8_t i = 0; i < 155 ; i++)
{
bulk_checksum_calc -= sysex[i + 6];
}
bulk_checksum_calc &= 0x7f;
if (bulk_checksum_calc != bulk_checksum)
{
#ifdef DEBUG
Serial.print(F("E: Checksum error for one voice [0x"));
Serial.print(bulk_checksum, HEX);
Serial.print(F("/0x"));
Serial.print(bulk_checksum_calc, HEX);
Serial.println(F("]"));
#endif
return;
}
break;
case 100:
// fix voice name
for (uint8_t i = 0; i < 10; i++)
{
@ -1869,10 +1852,9 @@ void handleSystemExclusive(byte * sysex, uint len)
MicroDexed[instance_id]->loadVoiceParameters(&sysex[6]);
#ifdef DEBUG
Serial.println(F("One Voice bulk upload"));
show_patch(instance_id);
#endif
// show voice name
strncpy(g_voice_name[instance_id], (char*)&sysex[151], VOICE_NAME_LEN - 1);
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select))
@ -1880,74 +1862,13 @@ void handleSystemExclusive(byte * sysex, uint len)
LCDML.OTHER_updateFunc();
LCDML.loop_menu();
}
}
else if (len == 4104)
{
break;
case 200:
if (strlen(receive_bank_filename) > 0 && LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_sysex_receive_bank))
{
int32_t bulk_checksum_calc = 0;
int8_t bulk_checksum = sysex[4102];
// 1 Bank bulk upload
if ((sysex[3] & 0x7f) != 9)
{
#ifdef DEBUG
Serial.println(F("E: Not a SysEx bank bulk upload."));
#endif
display.setCursor(0, 1);
display.print(F("Error (TYPE) "));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
return;
}
#ifdef DEBUG
Serial.println(F("Bank bulk upload."));
#endif
if (((sysex[4] << 7) | sysex[5]) != 0x1000)
{
#ifdef DEBUG
Serial.println(F("E: Wrong length for SysEx bank bulk upload (not 4096)."));
#endif
display.setCursor(0, 1);
display.print(F("Error (SIZE) "));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
return;
}
#ifdef DEBUG
Serial.println(F("Bank type ok"));
#endif
// checksum calculation
for (uint16_t i = 0; i < 4096 ; i++)
{
bulk_checksum_calc -= sysex[i + 6];
}
bulk_checksum_calc &= 0x7f;
if (bulk_checksum_calc != bulk_checksum)
{
#ifdef DEBUG
Serial.print(F("E: Checksum error for bank [0x"));
Serial.print(bulk_checksum, HEX);
Serial.print(F("/0x"));
Serial.print(bulk_checksum_calc, HEX);
Serial.println(F("]"));
#endif
display.setCursor(0, 1);
display.print(F("Error (CHECKSUM)"));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
return;
}
#ifdef DEBUG
Serial.println(F("Bank checksum ok"));
#endif
if (save_sd_bank(receive_bank_filename, sysex))
{
#ifdef DEBUG
@ -1978,11 +1899,26 @@ void handleSystemExclusive(byte * sysex, uint len)
else
Serial.println(F("E : Not in MIDI receive bank mode."));
#endif
}
break;
case 300:
#ifdef DEBUG
else
Serial.println(F("E: SysEx parameter length wrong."));
Serial.println(F("SysEx Voice parameter:"));
Serial.print(F("Parameter #"));
Serial.print(sysex[4] + ((sysex[3] & 0x03) * 128), DEC);
Serial.print(F(" Value: "));
Serial.println(sysex[5], DEC);
#endif
break;
default:
#ifdef DEBUG
Serial.println(F("SysEx Voice parameter change : "));
Serial.print(F("Parameter #"));
Serial.print(sysex_return);
Serial.print(F(" Value : "));
Serial.println(sysex[5], DEC);
#endif
break;
}
}
}

@ -5338,7 +5338,8 @@ PROGMEM const uint8_t DRUM_SQBass[] = {
0x00, 0x00, 0xfa, 0xff, 0x01, 0x00, 0xfa, 0xff, 0x00, 0x00, 0xfc, 0xff,
0xfe, 0xff, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xfd, 0xff, 0xff, 0xff,
0x01, 0x00, 0xfc, 0xff, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00
,0x00, 0x00, 0x00, 0x00, };
, 0x00, 0x00, 0x00, 0x00,
};
// Converted from I_CALLIOP.wav, length = 45056 bytes
PROGMEM const uint8_t DRUM_CALLIOP[] = {
0x95, 0x03, 0x2b, 0x24, 0x6a, 0x46, 0xd9, 0x57, 0x59, 0x58, 0xa8, 0x54,
@ -16403,7 +16404,8 @@ PROGMEM const uint8_t DRUM_ARR1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from I_FVoicG2.wav, length = 39040 bytes
PROGMEM const uint8_t DRUM_FVoice[] = {
0x00, 0x00, 0x0e, 0x00, 0x10, 0x00, 0xfd, 0xff, 0xd9, 0xff, 0xb6, 0xff,
@ -22918,7 +22920,8 @@ PROGMEM const uint8_t DRUM_FVoice[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from S_kick_1.wav, length = 19520 bytes
PROGMEM const uint8_t DRUM_Clap808[] = {
0x6c, 0x00, 0x9c, 0x00, 0xd9, 0x00, 0x2e, 0x01, 0xae, 0x01, 0x88, 0x02,
@ -31131,7 +31134,8 @@ PROGMEM const uint8_t DRUM_S_Stick_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_snare_Ghost_1.wav, length = 19008 bytes
PROGMEM const uint8_t DRUM_S_snare_Ghost_1[] = {
0xf6, 0xff, 0xf6, 0xff, 0xf6, 0xff, 0xf0, 0xff, 0xf2, 0xff, 0xee, 0xff,
@ -34305,7 +34309,8 @@ PROGMEM const uint8_t DRUM_S_snare_Ghost_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_snare2_Ghost_1.wav, length = 22464 bytes
PROGMEM const uint8_t DRUM_S_snare2_Ghost_1[] = {
0x09, 0x00, 0x3f, 0x00, 0x79, 0x00, 0xce, 0x01, 0x1b, 0x06, 0x2c, 0x0e,
@ -41048,7 +41053,8 @@ PROGMEM const uint8_t DRUM_S_snare_2[] = {
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_loTom_1.wav, length = 40320 bytes
PROGMEM const uint8_t DRUM_S_loTom_1[] = {
0x4e, 0x00, 0x59, 0x00, 0x58, 0x00, 0x57, 0x00, 0x5e, 0x00, 0x53, 0x00,
@ -47775,7 +47781,8 @@ PROGMEM const uint8_t DRUM_S_loTom_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from S_hhClosed_1.wav, length = 6784 bytes
PROGMEM const uint8_t DRUM_S_hhClosed_1[] = {
0xd4, 0x00, 0xca, 0xff, 0x86, 0x01, 0x89, 0xff, 0x13, 0x01, 0x37, 0xfe,
@ -51959,7 +51966,8 @@ PROGMEM const uint8_t DRUM_S_hh_o_1_2[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_hiTom_5.wav, length = 23040 bytes
PROGMEM const uint8_t DRUM_S_hiTom_5[] = {
0x46, 0x00, 0x8e, 0x00, 0x3f, 0x00, 0x9e, 0x00, 0x0e, 0x00, 0x6b, 0x00,
@ -55803,7 +55811,8 @@ PROGMEM const uint8_t DRUM_S_hiTom_5[] = {
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from S_hh_o_5_4.wav, length = 80320 bytes
PROGMEM const uint8_t DRUM_S_hh_o_5_4[] = {
0xb0, 0x00, 0xf6, 0xff, 0x55, 0x00, 0x82, 0xff, 0x45, 0x01, 0xf3, 0x00,
@ -69194,7 +69203,8 @@ PROGMEM const uint8_t DRUM_S_hh_o_5_4[] = {
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from S_splash1_1.wav, length = 57856 bytes
PROGMEM const uint8_t DRUM_S_splash1_1[] = {
0x03, 0x00, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0x04, 0x00, 0x05, 0x00,
@ -78842,7 +78852,8 @@ PROGMEM const uint8_t DRUM_S_splash1_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_china1_4.wav, length = 75840 bytes
PROGMEM const uint8_t DRUM_S_china1_4[] = {
0xfa, 0xff, 0x01, 0x00, 0xfb, 0xff, 0x00, 0x00, 0xfd, 0xff, 0xff, 0xff,
@ -102971,7 +102982,8 @@ PROGMEM const uint8_t DRUM_S_china2_1[] = {
0x02, 0x00, 0xfc, 0xff, 0x04, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x01, 0x00,
0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0xfe, 0xff, 0x02, 0x00, 0xff, 0xff,
0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x04, 0x00, 0xfc, 0xff
,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from S_ride1Bell_1.wav, length = 58752 bytes
PROGMEM const uint8_t DRUM_S_ride1Bell_1[] = {
0x17, 0x00, 0xbe, 0xff, 0x69, 0x00, 0x5a, 0x00, 0x2d, 0x00, 0x70, 0x07,
@ -112769,7 +112781,8 @@ PROGMEM const uint8_t DRUM_S_ride1Bell_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from S_crash1_1.wav, length = 112064 bytes
PROGMEM const uint8_t DRUM_S_crash1_1[] = {
0x24, 0x00, 0xdf, 0xff, 0x5f, 0x00, 0xb0, 0xff, 0xdd, 0x00, 0x6c, 0xfc,
@ -134520,7 +134533,8 @@ PROGMEM const uint8_t DRUM_S_cowbell_2[] = {
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from S_ride2Crash_2.wav, length = 132160 bytes
PROGMEM const uint8_t DRUM_S_ride2Crash_2[] = {
0xf3, 0xfe, 0xe6, 0x00, 0x98, 0xfc, 0x84, 0x03, 0x91, 0x1c, 0x2d, 0xf3,
@ -169479,7 +169493,8 @@ PROGMEM const uint8_t DRUM_S_ride2_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from Kick808.wav, length = 26688 bytes
PROGMEM const uint8_t DRUM_808Kick[] = {
0x08, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0xfe, 0xff,
@ -173933,7 +173948,8 @@ PROGMEM const uint8_t DRUM_808Kick[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from phKick1.wav, length = 4800 bytes
PROGMEM const uint8_t DRUM_phkick1[] = {
0x02, 0x00, 0x51, 0xfd, 0x2d, 0x10, 0xce, 0xfc, 0xaa, 0xef, 0xed, 0xe4,
@ -174738,7 +174754,8 @@ PROGMEM const uint8_t DRUM_phkick1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from Rim808.wav, length = 768 bytes
PROGMEM const uint8_t DRUM_rims1[] = {
0xe1, 0xff, 0x33, 0xff, 0xd3, 0xfd, 0x2d, 0xfd, 0x3e, 0xfc, 0xb9, 0xfa,
@ -174874,7 +174891,8 @@ PROGMEM const uint8_t DRUM_rims1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from Shaker.wav, length = 1792 bytes
PROGMEM const uint8_t DRUM_Shaker[] = {
0x44, 0x00, 0x8d, 0xfb, 0xf2, 0x00, 0x64, 0x02, 0xc8, 0xfd, 0xa3, 0x00,
@ -175179,7 +175197,8 @@ PROGMEM const uint8_t DRUM_Shaker[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from LnClap.wav, length = 6976 bytes
PROGMEM const uint8_t DRUM_LNclap1[] = {
0x03, 0x00, 0xeb, 0xff, 0x4b, 0xfb, 0xf9, 0xf4, 0x3e, 0xee, 0x98, 0xea,
@ -178115,7 +178134,8 @@ PROGMEM const uint8_t DRUM_LNsnare1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from BDTrancy.wav, length = 7872 bytes
PROGMEM const uint8_t DRUM_Bdtrancy[] = {
0xfe, 0xff, 0x9f, 0xfe, 0x31, 0xfc, 0x05, 0xfd, 0x0f, 0xfe, 0x82, 0xfa,
@ -179430,7 +179450,8 @@ PROGMEM const uint8_t DRUM_Bdtrancy[] = {
0xf8, 0xff, 0xf3, 0xff, 0xf9, 0xff, 0xf6, 0xff, 0xfb, 0xff, 0xf9, 0xff,
0xfb, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x02, 0x00, 0xfb, 0xff
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from HhCL1-808.wav, length = 6208 bytes
PROGMEM const uint8_t DRUM_hhcl1[] = {
0xb1, 0xff, 0x6d, 0x00, 0x8c, 0xff, 0x6f, 0x00, 0x75, 0xff, 0xc9, 0x00,
@ -180471,7 +180492,8 @@ PROGMEM const uint8_t DRUM_hhcl1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from Belltree.wav, length = 121408 bytes
PROGMEM const uint8_t DRUM_Belltree[] = {
0x11, 0x03, 0x4a, 0xfe, 0xb9, 0xfb, 0x65, 0xfc, 0x93, 0x04, 0x40, 0xff,
@ -203755,7 +203777,8 @@ PROGMEM const uint8_t DRUM_Bongo27[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from Casta.wav, length = 2048 bytes
PROGMEM const uint8_t DRUM_Casta[] = {
0x74, 0x00, 0x79, 0xff, 0x80, 0x00, 0x79, 0xff, 0x81, 0x00, 0x79, 0xff,
@ -204104,7 +204127,8 @@ PROGMEM const uint8_t DRUM_Casta[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from CR78Kick.wav, length = 10048 bytes
PROGMEM const uint8_t DRUM_Cr78kick[] = {
0x3b, 0x00, 0xa7, 0xff, 0x10, 0x00, 0x29, 0xf9, 0xdc, 0xf1, 0x8a, 0xf7,
@ -205785,7 +205809,8 @@ PROGMEM const uint8_t DRUM_Cr78kick[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from CR78Tmb1.wav, length = 7552 bytes
PROGMEM const uint8_t DRUM_Cr78tmb1[] = {
0xff, 0xff, 0xf7, 0xff, 0xf8, 0xff, 0x0b, 0x00, 0x00, 0x00, 0xf7, 0xff,
@ -207050,7 +207075,8 @@ PROGMEM const uint8_t DRUM_Cr78tmb1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from CR78Tmb2.wav, length = 10880 bytes
PROGMEM const uint8_t DRUM_Cr78tmb2[] = {
0x07, 0x00, 0x28, 0x00, 0x40, 0x00, 0x4d, 0x00, 0x2f, 0x00, 0xb5, 0xff,
@ -208866,7 +208892,8 @@ PROGMEM const uint8_t DRUM_Cr78tmb2[] = {
0x2f, 0x00, 0x9a, 0x00, 0xba, 0x00, 0x67, 0x00, 0x08, 0x00, 0xac, 0xff,
0x56, 0xff, 0x58, 0xff, 0xb2, 0xff, 0x1a, 0x00, 0x77, 0x00, 0x9e, 0x00,
0x71, 0x00, 0x1c, 0x00, 0xc7, 0xff, 0x7f, 0xff, 0x68, 0xff, 0x8c, 0xff
,0x00, 0x00, 0x00, 0x00, };
, 0x00, 0x00, 0x00, 0x00,
};
// Converted from Crash1.wav, length = 72768 bytes
PROGMEM const uint8_t DRUM_Crash1[] = {
0x75, 0x00, 0x74, 0x00, 0x89, 0x00, 0x5f, 0x00, 0x70, 0x00, 0x4e, 0x00,
@ -222306,7 +222333,8 @@ PROGMEM const uint8_t DRUM_Dmpop[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from Electr1.wav, length = 2880 bytes
PROGMEM const uint8_t DRUM_Electr1[] = {
0x00, 0x00, 0xd2, 0x10, 0x97, 0x13, 0x9f, 0x0c, 0x29, 0xfb, 0xa5, 0xe8,
@ -227219,7 +227247,8 @@ PROGMEM const uint8_t DRUM_Tamb[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from CowBell.wav, length = 7296 bytes
PROGMEM const uint8_t DRUM_Cowbell[] = {
0x00, 0x00, 0x47, 0x00, 0x72, 0x00, 0x8b, 0x00, 0x82, 0x00, 0x64, 0x00,
@ -228440,7 +228469,8 @@ PROGMEM const uint8_t DRUM_Cowbell[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from HatC660.wav, length = 5952 bytes
PROGMEM const uint8_t DRUM_660HatC1[] = {
0x4d, 0xfb, 0x32, 0xe7, 0x25, 0x21, 0x90, 0xf9, 0x49, 0xc4, 0xdd, 0x2f,
@ -229437,7 +229467,8 @@ PROGMEM const uint8_t DRUM_660HatC1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from HHopen1.wav, length = 11200 bytes
PROGMEM const uint8_t DRUM_Hhopen1[] = {
0x90, 0xff, 0x0d, 0x00, 0x0e, 0xfe, 0xd4, 0xfe, 0x45, 0x02, 0x90, 0xfe,
@ -231311,7 +231342,8 @@ PROGMEM const uint8_t DRUM_Hhopen1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from HiSticks.wav, length = 2432 bytes
PROGMEM const uint8_t DRUM_Histicks[] = {
0x15, 0x00, 0xe1, 0xff, 0x0f, 0x00, 0xef, 0xff, 0x21, 0x00, 0x57, 0xff,
@ -231720,7 +231752,8 @@ PROGMEM const uint8_t DRUM_Histicks[] = {
0xec, 0xff, 0xe7, 0xff, 0xea, 0xff
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from HR16Snr2.wav, length = 15168 bytes
PROGMEM const uint8_t DRUM_Hr16snr2[] = {
0x6b, 0xfe, 0xde, 0xfb, 0x62, 0xf7, 0xd2, 0xf0, 0x07, 0xea, 0x14, 0xe3,
@ -234253,7 +234286,8 @@ PROGMEM const uint8_t DRUM_Hr16snr2[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from XRHiTom.wav, length = 13504 bytes
PROGMEM const uint8_t DRUM_Xrhitom[] = {
0x00, 0x00, 0xf9, 0xff, 0xfe, 0xff, 0xf9, 0xff, 0xd6, 0xff, 0x45, 0xff,
@ -236619,7 +236653,8 @@ PROGMEM const uint8_t DRUM_Tick1[] = {
0x95, 0x00, 0x79, 0x00, 0x47, 0x00, 0x85, 0x00, 0x43, 0x00, 0x37, 0x00,
0x91, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x4c, 0x00, 0x3d, 0x00, 0x4d, 0x00,
0xf7, 0xff
,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from M1-18.wav, length = 2240 bytes
PROGMEM const uint8_t DRUM_M1_18[] = {
0xdd, 0xfe, 0xa0, 0xfd, 0xe4, 0xfd, 0x73, 0xfd, 0x7f, 0xfd, 0x2b, 0xfd,
@ -236997,7 +237032,8 @@ PROGMEM const uint8_t DRUM_M1_18[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from MD16_CLP.wav, length = 13312 bytes
PROGMEM const uint8_t DRUM_Md16_clp[] = {
0x16, 0x00, 0x39, 0x00, 0x3f, 0xff, 0xd8, 0xfd, 0xff, 0xff, 0x19, 0x01,
@ -239224,7 +239260,8 @@ PROGMEM const uint8_t DRUM_Md16_clp[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from OHH909.wav, length = 23488 bytes
PROGMEM const uint8_t DRUM_Ohhwav[] = {
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0x02, 0xe6, 0xf2, 0xbb, 0xf3,
@ -243147,7 +243184,8 @@ PROGMEM const uint8_t DRUM_Ohhwav[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from Quijada.wav, length = 36096 bytes
PROGMEM const uint8_t DRUM_Quijada[] = {
0xff, 0xff, 0x2a, 0x00, 0xde, 0x00, 0x82, 0x01, 0x89, 0x02, 0xe7, 0x02,
@ -249168,7 +249206,8 @@ PROGMEM const uint8_t DRUM_Quijada[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from R8Tabla1.wav, length = 15488 bytes
PROGMEM const uint8_t DRUM_tabla1[] = {
0x26, 0x00, 0x6d, 0xff, 0x6f, 0xfd, 0xf8, 0xfb, 0xd2, 0xfa, 0xba, 0xfa,
@ -251754,7 +251793,8 @@ PROGMEM const uint8_t DRUM_tabla1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from Ride808.wav, length = 21696 bytes
PROGMEM const uint8_t DRUM_Ride808[] = {
0x58, 0x00, 0x54, 0xfb, 0x0f, 0xf7, 0xfc, 0xed, 0xc5, 0xf5, 0xf6, 0x2d,
@ -255374,7 +255414,8 @@ PROGMEM const uint8_t DRUM_Ride808[] = {
0x00, 0x00, 0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00,
};
// Converted from scratch1.wav, length = 5888 bytes
PROGMEM const uint8_t DRUM_Scratch1[] = {
0xd5, 0xfb, 0xa9, 0xfa, 0x05, 0xfb, 0x0a, 0xfb, 0x3a, 0xfb, 0xb6, 0xfa,
@ -258926,7 +258967,8 @@ PROGMEM const uint8_t DRUM_Tomlow[] = {
0x00, 0x00
, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from Tom808.wav, length = 6272 bytes
PROGMEM const uint8_t DRUM_Tom808[] = {
0x97, 0xfc, 0xf7, 0xeb, 0x0f, 0xd6, 0xb2, 0xc2, 0x55, 0xb2, 0xe7, 0xa2,
@ -259978,7 +260020,8 @@ PROGMEM const uint8_t DRUM_Tom808[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, };
0x00, 0x00,
};
// Converted from vl1-Lbeep.wav, length = 3008 bytes
PROGMEM const uint8_t DRUM_Vl1lbeep[] = {
0xeb, 0xf9, 0x17, 0x07, 0xe8, 0x63, 0x8b, 0x7b, 0x80, 0x6f, 0x4d, 0x75,
@ -260486,7 +260529,8 @@ PROGMEM const uint8_t DRUM_Vl1lbeep[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
// Converted from vl1-Hbeep.wav, length = 1984 bytes
PROGMEM const uint8_t DRUM_Vl1hbeep[] = {
0x06, 0x04, 0x16, 0xfd, 0xc9, 0x05, 0x94, 0x63, 0x7c, 0x79, 0xd6, 0x6e,

Loading…
Cancel
Save