diff --git a/MicroDexed.ino b/MicroDexed.ino index 2cca46e..41ab449 100644 --- a/MicroDexed.ino +++ b/MicroDexed.ino @@ -557,9 +557,18 @@ void setup() { drum_reverb_send_mixer_r.gain(instance_id, 0.0); drum_reverb_send_mixer_l.gain(instance_id, 0.0); #endif - } -#endif + // Init drumset config + configuration.drums.drum_midi_channel = DRUM_MIDI_CHANNEL; + for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++) { + configuration.drums.drum_vol[i] = mapfloat((drum_config[i].vol_max - drum_config[i].vol_min) / 2.0, 0.0, 1.0, DRUMS_VOL_MIN, DRUMS_VOL_MAX); + configuration.drums.drum_pan[i] = mapfloat(drum_config[i].pan, 0.0, 1.0, DRUMS_PANORAMA_MIN, DRUMS_PANORAMA_MAX); + configuration.drums.drum_reverb_send[i] = mapfloat(drum_config[i].reverb_send, 0.0, 1.0, DRUMS_REVERB_SEND_MIN, DRUMS_REVERB_SEND_MAX); + configuration.drums.drum_pitch[i] = mapfloat(drum_config[i].pitch, 0.0, 1.0, DRUMS_PITCH_MIN, DRUMS_PITCH_MAX); + } +#endif + } + // Setup EPiano #if defined(USE_FX) #if defined(USE_EPIANO) @@ -697,20 +706,20 @@ void setup() { master_mixer_l.gain(instance_id, VOL_MAX_FLOAT); } #else - master_mixer_r.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT); - master_mixer_l.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT); - master_mixer_r.gain(MASTER_MIX_CH_DEXED2, 0.0); - master_mixer_l.gain(MASTER_MIX_CH_DEXED2, 0.0); +master_mixer_r.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT); +master_mixer_l.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT); +master_mixer_r.gain(MASTER_MIX_CH_DEXED2, 0.0); +master_mixer_l.gain(MASTER_MIX_CH_DEXED2, 0.0); #endif master_mixer_r.gain(MASTER_MIX_CH_REVERB, VOL_MAX_FLOAT); master_mixer_l.gain(MASTER_MIX_CH_REVERB, VOL_MAX_FLOAT); #if NUM_DRUMS > 0 master_mixer_r.gain(MASTER_MIX_CH_DRUMS, VOL_MAX_FLOAT); master_mixer_l.gain(MASTER_MIX_CH_DRUMS, VOL_MAX_FLOAT); - configuration.drums.vol = DRUMS_MAIN_VOL_MAX; + configuration.drums.drum_main_vol = DRUMS_MAIN_VOL_MAX; #else - master_mixer_r.gain(MASTER_MIX_CH_DRUMS, 0.0); - master_mixer_l.gain(MASTER_MIX_CH_DRUMS, 0.0); +master_mixer_r.gain(MASTER_MIX_CH_DRUMS, 0.0); +master_mixer_l.gain(MASTER_MIX_CH_DRUMS, 0.0); #endif #if defined(USE_EPIANO) master_mixer_r.gain(MASTER_MIX_CH_EPIANO, VOL_MAX_FLOAT); @@ -2085,10 +2094,6 @@ void set_sample_pitch(uint8_t sample, float playbackspeed) { drum_config[sample].pitch = playbackspeed; } -void set_sample_p_offset(uint8_t sample, float s_offset) { - drum_config[sample].p_offset = s_offset; -} - void set_sample_pan(uint8_t sample, float s_pan) { drum_config[sample].pan = s_pan; } @@ -2108,21 +2113,23 @@ void set_sample_reverb_send(uint8_t sample, float s_reverb) { uint8_t get_sample_note(uint8_t sample) { return (drum_config[sample].midinote); } + float get_sample_pitch(uint8_t sample) { return (drum_config[sample].pitch); } -float get_sample_p_offset(uint8_t sample) { - return (drum_config[sample].p_offset); -} + float get_sample_pan(uint8_t sample) { return (drum_config[sample].pan); } + float get_sample_vol_max(uint8_t sample) { return (drum_config[sample].vol_max); } + float get_sample_vol_min(uint8_t sample) { return (drum_config[sample].vol_min); } + float get_sample_reverb_send(uint8_t sample) { return (drum_config[sample].reverb_send); } diff --git a/UI.hpp b/UI.hpp index 0222928..9bffc40 100644 --- a/UI.hpp +++ b/UI.hpp @@ -74,7 +74,7 @@ extern void get_sd_performance_name_json(uint8_t number); extern bool save_sd_performance_json(uint8_t p); extern uint8_t drum_midi_channel; extern drum_config_t drum_config[NUM_DRUMSET_CONFIG]; -uint8_t activesample; // CAN BE REMOVED LATER! +uint8_t activesample = 0; #endif #ifdef SGTL5000_AUDIO_ENHANCE @@ -360,7 +360,6 @@ void UI_func_drums_main_volume(uint8_t param); void UI_func_drum_volume(uint8_t param); void UI_func_drum_pan(uint8_t param); void UI_func_drum_pitch(uint8_t param); -void UI_func_drum_tune_offset(uint8_t param); char* basename(const char* filename); char* strip_extension(char* filename); @@ -592,7 +591,7 @@ void lcdml_menu_control(void) { // Volatile Variables long g_LCDML_CONTROL_Encoder_position[NUM_ENCODER] = { ENCODER[ENC_R].read(), ENCODER[ENC_L].read() }; - bool button[NUM_ENCODER] = { digitalRead(BUT_R_PIN), digitalRead(BUT_L_PIN) }; + bool button[NUM_ENCODER] = { bool(digitalRead(BUT_R_PIN)), bool(digitalRead(BUT_L_PIN)) }; /************************************************************************************ Basic encoder handling (from LCDMenuLib2) @@ -3967,7 +3966,10 @@ void UI_handle_OP(uint8_t param) { } void UI_func_drum_reverb_send(uint8_t param) { - char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 }; + char displayname[8]; + + memset(displayname, 0, sizeof(displayname)); + if (LCDML.FUNC_setup()) // ****** SETUP ********* { encoderDir[ENC_R].reset(); @@ -4041,22 +4043,22 @@ void UI_func_drums_main_volume(uint8_t param) { encoderDir[ENC_R].reset(); lcd_special_chars(BLOCKBAR); - display_bar_int("Drum Main Vol", configuration.drums.vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, true); + display_bar_int("Drum Main Vol", configuration.drums.drum_main_vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, true); } if (LCDML.FUNC_loop()) // ****** LOOP ********* { if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) { if (LCDML.BT_checkDown()) - configuration.drums.vol = constrain(configuration.drums.vol + ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX); + configuration.drums.drum_main_vol = constrain(configuration.drums.drum_main_vol + ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX); else if (LCDML.BT_checkUp()) - configuration.drums.vol = constrain(configuration.drums.vol - ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX); + configuration.drums.drum_main_vol = constrain(configuration.drums.drum_main_vol - ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX); } - display_bar_int("Drum Main Vol", configuration.drums.vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, false); + display_bar_int("Drum Main Vol", configuration.drums.drum_main_vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, false); - master_mixer_r.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT)); - master_mixer_l.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT)); + master_mixer_r.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.drum_main_vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT)); + master_mixer_l.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.drum_main_vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT)); } if (LCDML.FUNC_close()) // ****** STABLE END ********* @@ -4066,99 +4068,16 @@ void UI_func_drums_main_volume(uint8_t param) { } } -/* void UI_func_drums_main_volume(uint8_t param) -{ - char displayname[4] = {0, 0, 0, 0}; - if (LCDML.FUNC_setup()) // ****** SETUP ********* - { - encoderDir[ENC_R].reset(); - temp_int = mapfloat(configuration.drums.vol, 0.0, VOL_MAX_FLOAT, 0, 100); - display.setCursor(0, 0); - display.print(" Drums M.Volume "); - } - if (LCDML.FUNC_loop()) // ****** LOOP ********* - { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) - { - if (LCDML.BT_checkDown()) - { - temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 100); - } - else if (LCDML.BT_checkUp()) - { - temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 100); - } - } - display.setCursor(5, 1); - snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int); - display.print(displayname); - display.setCursor(8, 1); - display.print("/100"); - master_mixer_r.gain (MASTER_MIX_CH_DRUMS, volume_transform(mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT))); - master_mixer_l.gain (MASTER_MIX_CH_DRUMS, volume_transform(mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT))); - configuration.drums.vol = mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT); - } - if (LCDML.FUNC_close()) // ****** STABLE END ********* - { - encoderDir[ENC_R].reset(); - } -} */ - -void UI_func_drum_tune_offset(uint8_t param) { - char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 }; - if (LCDML.FUNC_setup()) // ****** SETUP ********* - { - encoderDir[ENC_R].reset(); - temp_int = (int)(drum_config[activesample].p_offset * 200); - display.setCursor(0, 0); - display.print("DrumSmp. Tune"); - display.setCursor(1, 1); - display.setCursor(1, 1); - snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample); - display.print(displayname); - display.show(1, 4, 7, basename(drum_config[activesample].name)); - } - if (LCDML.FUNC_loop()) // ****** LOOP ********* - { - - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) { - if (LCDML.BT_checkDown()) { - temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 400); - } else if (LCDML.BT_checkUp()) { - temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 400); - } - } - +void UI_func_drum_pitch(uint8_t param) { + char displayname[8]; - temp_float = mapfloat(temp_int, 0, 400, 0.0, 2.0); - display.setCursor(0, 1); - display.print(" "); - display.setCursor(3, 1); - display.print(" "); - display.setCursor(11, 1); - display.print("["); - display.setCursor(15, 1); - display.print("]"); - snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int); - display.setCursor(12, 1); - display.print(displayname); - drum_config[activesample].p_offset = temp_float; - } + memset(displayname, 0, sizeof(displayname)); - if (LCDML.FUNC_close()) // ****** STABLE END ********* - { - encoderDir[ENC_R].reset(); - } -} -void UI_func_drum_pitch(uint8_t param) { - char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 }; if (LCDML.FUNC_setup()) // ****** SETUP ********* { encoderDir[ENC_R].reset(); - temp_int = (int)(drum_config[activesample].pitch * 200); display.setCursor(0, 0); - display.print("DrumSmp. Pitch"); - display.setCursor(1, 1); + display.print("Drum Pitch"); display.setCursor(1, 1); snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample); display.print(displayname); @@ -4166,27 +4085,7 @@ void UI_func_drum_pitch(uint8_t param) { } if (LCDML.FUNC_loop()) // ****** LOOP ********* { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) { - if (LCDML.BT_checkDown()) { - temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 400); - } else if (LCDML.BT_checkUp()) { - temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 400); - } - } - - temp_float = mapfloat(temp_int, 0, 400, 0.0, 2.0); - display.setCursor(0, 1); - display.print(" "); - display.setCursor(3, 1); - display.print(" "); - display.setCursor(11, 1); - display.print("["); - display.setCursor(15, 1); - display.print("]"); - snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int); - display.setCursor(12, 1); - display.print(displayname); - drum_config[activesample].pitch = temp_float; + ; } if (LCDML.FUNC_close()) // ****** STABLE END ********* @@ -4196,14 +4095,16 @@ void UI_func_drum_pitch(uint8_t param) { } void UI_func_drum_volume(uint8_t param) { - char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 }; + char displayname[8]; + + memset(displayname, 0, sizeof(displayname)); + if (LCDML.FUNC_setup()) // ****** SETUP ********* { encoderDir[ENC_R].reset(); temp_int = (int)(drum_config[activesample].vol_max * 100); display.setCursor(0, 0); - display.print("DrumSmp. Volume"); - display.setCursor(1, 1); + display.print("Drum Volume"); display.setCursor(1, 1); snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample); display.print(displayname); @@ -4211,19 +4112,7 @@ void UI_func_drum_volume(uint8_t param) { } if (LCDML.FUNC_loop()) // ****** LOOP ********* { - temp_float = mapfloat(temp_int, 0, 100, 0.0, 1.0); - display.setCursor(0, 1); - display.print(" "); - display.setCursor(3, 1); - display.print(" "); - display.setCursor(11, 1); - display.print("["); - display.setCursor(15, 1); - display.print("]"); - snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int); - display.setCursor(12, 1); - display.print(displayname); - drum_config[activesample].vol_max = temp_float; + ; } if (LCDML.FUNC_close()) // ****** STABLE END ********* @@ -4233,52 +4122,47 @@ void UI_func_drum_volume(uint8_t param) { } void UI_func_drum_pan(uint8_t param) { - char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 }; + char temp[8]; + + memset(temp, 0, sizeof(temp)); + if (LCDML.FUNC_setup()) // ****** SETUP ********* { encoderDir[ENC_R].reset(); - temp_int = mapfloat(drum_config[activesample].pan, -1.0, 1.0, -99, 99); display.setCursor(0, 0); - display.print("DrmSmp. Panorama"); - display.setCursor(1, 1); - snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample); - display.print(displayname); - display.show(1, 4, 6, basename(drum_config[activesample].name)); + display.print("Drum Panorama"); + if (configuration.drums.drum_pan[activesample] > 0) + display.show(0, 14, 4, " >"); + else if (configuration.drums.drum_pan[activesample] < 0) + display.show(0, 14, 4, "<"); + else + display.show(0, 14, 4, "=="); + snprintf_P(temp, sizeof(temp), PSTR("[%02d]"), activesample + 1); + display.show(1, 0, 4, temp); + display.show(1, 4, 9, basename(drum_config[activesample].name)); } if (LCDML.FUNC_loop()) // ****** LOOP ********* { if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) { - if (LCDML.BT_checkDown()) { - temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), -99, 99); - } else if (LCDML.BT_checkUp()) { - temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), -99, 99); + if (LCDML.BT_checkDown()) + activesample = (activesample + ENCODER[ENC_R].speed()) % (NUM_DRUMSET_CONFIG - 1); + else if (LCDML.BT_checkUp()) { + uint8_t temp_encoder = ENCODER[ENC_R].speed(); + if (activesample - temp_encoder < 0) + activesample = NUM_DRUMSET_CONFIG - (abs(activesample - temp_encoder)) - 1; + else + activesample -= temp_encoder; } } - - - display.setCursor(0, 1); - display.print(" "); - display.setCursor(3, 1); - display.print(" "); - display.setCursor(11, 1); - display.print("["); - display.setCursor(15, 1); - display.print("]"); - drum_config[activesample].pan = mapfloat(temp_int, -99, 99, -1.0, 1.0); - - temp_int = mapfloat(drum_config[activesample].pan, -1.0, 1.0, -99, 99); - - display.setCursor(12, 1); - if (temp_int > 1) { - display.print("R"); - } else if (temp_int < 0) { - display.print("L"); - } else { - display.print("C"); - } - snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), abs(temp_int)); - display.setCursor(13, 1); - display.print(displayname); + if (configuration.drums.drum_pan[activesample] > 0) + display.show(0, 14, 4, " >"); + else if (configuration.drums.drum_pan[activesample] < 0) + display.show(0, 14, 4, "<"); + else + display.show(0, 14, 4, "=="); + snprintf_P(temp, sizeof(temp), PSTR("[%02d]"), activesample + 1); + display.show(1, 0, 4, temp); + display.show(1, 4, 9, basename(drum_config[activesample].name)); } if (LCDML.FUNC_close()) // ****** STABLE END ********* @@ -5017,9 +4901,9 @@ void UI_func_save_voice(uint8_t param) { configuration.dexed[selected_instance_id].voice = constrain(configuration.dexed[selected_instance_id].voice - ENCODER[ENC_R].speed(), 0, MAX_VOICES - 1); if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); if (!get_voice_by_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, configuration.dexed[selected_instance_id].voice, voice_name, sizeof(voice_name))) - strncpy(voice_name, "*ERROR*", sizeof(voice_name)); + strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1); display.show(1, 0, 2, configuration.dexed[selected_instance_id].voice + 1); display.show(1, 3, 10, voice_name); @@ -5039,7 +4923,7 @@ void UI_func_save_voice(uint8_t param) { switch (mode) { case 1: if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); display.setCursor(0, 0); display.print(F("Save to Bank")); display.show(1, 0, 2, configuration.dexed[selected_instance_id].bank); @@ -5049,9 +4933,9 @@ void UI_func_save_voice(uint8_t param) { break; case 2: if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); if (!get_voice_by_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, configuration.dexed[selected_instance_id].voice, voice_name, sizeof(voice_name))) - strncpy(voice_name, "*ERROR*", sizeof(voice_name)); + strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1); display.show(0, 0, 16, "Save to Bank"); display.show(0, 13, 2, configuration.dexed[selected_instance_id].bank); @@ -5317,7 +5201,7 @@ void UI_func_sysex_send_bank(uint8_t param) { display.setCursor(0, 0); display.print(F("MIDI Send Bank")); if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); display.show(1, 2, 1, "["); display.show(1, 14, 1, "]"); display.show(1, 0, 2, configuration.dexed[selected_instance_id].bank); @@ -5444,9 +5328,9 @@ void UI_func_sysex_send_voice(uint8_t param) { else if (LCDML.BT_checkUp() && voice_number > 0) voice_number = constrain(voice_number - ENCODER[ENC_R].speed(), 0, MAX_VOICES - 1); if (!get_bank_name(bank_number, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); if (!get_voice_by_bank_name(bank_number, bank_name, voice_number, voice_name, sizeof(voice_name))) - strncpy(voice_name, "*ERROR*", sizeof(voice_name)); + strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1); display.show(1, 0, 2, voice_number + 1); display.show(1, 3, 10, voice_name); @@ -5458,9 +5342,9 @@ void UI_func_sysex_send_voice(uint8_t param) { switch (mode) { case 1: if (!get_bank_name(bank_number, bank_name, sizeof(bank_name))) - strncpy(bank_name, "*ERROR*", sizeof(bank_name)); + strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1); if (!get_voice_by_bank_name(bank_number, bank_name, voice_number, voice_name, sizeof(voice_name))) - strncpy(voice_name, "*ERROR*", sizeof(voice_name)); + strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1); display.show(1, 0, 2, voice_number + 1); display.show(1, 3, 10, voice_name); diff --git a/UI_FX_T4.h b/UI_FX_T4.h index 87200ce..bccd261 100644 --- a/UI_FX_T4.h +++ b/UI_FX_T4.h @@ -93,68 +93,67 @@ LCDML_add(59, LCDML_0_2, 2, "Drum Volumes", UI_func_drum_volume); LCDML_add(60, LCDML_0_2, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(61, LCDML_0_2, 4, "Drum Rev.Send", UI_func_drum_reverb_send); LCDML_add(62, LCDML_0_2, 5, "Drum Pitch", UI_func_drum_pitch); -LCDML_add(63, LCDML_0_2, 6, "Drum Tune", UI_func_drum_tune_offset); -LCDML_add(64, LCDML_0_2, 7, "MIDI Channel", UI_func_drum_midi_channel); -LCDML_add(65, LCDML_0, 3, "E-Piano", NULL); -LCDML_add(66, LCDML_0_3, 1, "Voice Level", UI_func_epiano_sound_intensity); -LCDML_add(67, LCDML_0_3, 2, "Panorama", UI_func_epiano_panorama); -LCDML_add(68, LCDML_0_3, 3, "Sound", NULL); -LCDML_add(69, LCDML_0_3_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay; -LCDML_add(70, LCDML_0_3_3, 2, "Release", UI_func_epiano_release); // uint8_t release; -LCDML_add(71, LCDML_0_3_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness; -LCDML_add(72, LCDML_0_3_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble; -LCDML_add(73, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo; -LCDML_add(74, LCDML_0_3_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune; -LCDML_add(75, LCDML_0_3_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune; -LCDML_add(76, LCDML_0_3, 4, "Effects", NULL); -LCDML_add(77, LCDML_0_3_4, 1, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive; -LCDML_add(78, LCDML_0_3_4, 2, "Tremolo", NULL); -LCDML_add(79, LCDML_0_3_4_2, 1, "Width", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo; -LCDML_add(80, LCDML_0_3_4_2, 2, "LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo; -LCDML_add(81, LCDML_0_3_4, 3, "Chorus", NULL); -LCDML_add(82, LCDML_0_3_4_3, 1, "Frequency", UI_func_epiano_chorus_frequency); -LCDML_add(83, LCDML_0_3_4_3, 2, "Waveform", UI_func_epiano_chorus_waveform); -LCDML_add(84, LCDML_0_3_4_3, 3, "Depth", UI_func_epiano_chorus_depth); -LCDML_add(85, LCDML_0_3_4_3, 4, "Level", UI_func_epiano_chorus_level); -LCDML_add(86, LCDML_0_3_4, 4, "Reverb Send", UI_func_epiano_reverb_send); -LCDML_add(87, LCDML_0_3, 6, "MIDI", NULL); -LCDML_add(88, LCDML_0_3_6, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel; -LCDML_add(89, LCDML_0_3_6, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note; -LCDML_add(90, LCDML_0_3_6, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note; -LCDML_add(91, LCDML_0_3, 7, "Setup", NULL); -LCDML_add(92, LCDML_0_3_7, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose; -LCDML_add(93, LCDML_0_3_7, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony; -LCDML_add(94, LCDML_0_3_7, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense; -LCDML_add(95, LCDML_0, 4, "Master Effects", NULL); -LCDML_add(96, LCDML_0_4, 1, "Reverb", NULL); -LCDML_add(97, LCDML_0_4_1, 1, "Roomsize", UI_func_reverb_roomsize); -LCDML_add(98, LCDML_0_4_1, 2, "Lowpass", UI_func_reverb_lowpass); -LCDML_add(99, LCDML_0_4_1, 3, "Lodamp", UI_func_reverb_lodamp); -LCDML_add(100, LCDML_0_4_1, 4, "Hidamp", UI_func_reverb_hidamp); -LCDML_add(101, LCDML_0_4_1, 5, "Diffusion", UI_func_reverb_diffusion); -LCDML_add(102, LCDML_0_4_1, 6, "Level", UI_func_reverb_level); -LCDML_add(103, LCDML_0_4_1, 7, "Reverb Send", UI_func_reverb_send); -LCDML_add(104, LCDML_0_4, 2, "EQ", NULL); -LCDML_add(105, LCDML_0_4_2, 1, "Low-Cut", UI_func_eq_1); -LCDML_add(106, LCDML_0_4_2, 2, "110Hz", UI_func_eq_2); -LCDML_add(107, LCDML_0_4_2, 3, "220Hz", UI_func_eq_3); -LCDML_add(108, LCDML_0_4_2, 4, "1000Hz", UI_func_eq_4); -LCDML_add(109, LCDML_0_4_2, 5, "2000Hz", UI_func_eq_5); -LCDML_add(110, LCDML_0_4_2, 6, "7000Hz", UI_func_eq_6); -LCDML_add(111, LCDML_0_4_2, 7, "High-Cut", UI_func_eq_7) -LCDML_add(112, LCDML_0, 5, "Load/Save", NULL); -LCDML_add(113, LCDML_0_5, 1, "Load Perf.", UI_func_load_performance); -LCDML_add(114, LCDML_0_5, 2, "Save Perf.", UI_func_save_performance); -LCDML_add(115, LCDML_0_5, 3, "Name Perf.", UI_func_set_performance_name); -LCDML_add(116, LCDML_0_5, 4, "MIDI", NULL); -LCDML_add(117, LCDML_0_5_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); -LCDML_add(118, LCDML_0_5_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); -LCDML_add(119, LCDML_0_5_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); -LCDML_add(120, LCDML_0, 6, "System", NULL); -LCDML_add(121, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(122, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); -LCDML_add(123, LCDML_0_6, 3, "Favorites", UI_func_favorites); -LCDML_add(124, LCDML_0_6, 4, "Startup", UI_func_startup); -LCDML_add(125, LCDML_0, 7, "Info", UI_func_information); -LCDML_addAdvanced(126, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); -#define _LCDML_DISP_cnt 126 +LCDML_add(63, LCDML_0_2, 6, "MIDI Channel", UI_func_drum_midi_channel); +LCDML_add(64, LCDML_0, 3, "E-Piano", NULL); +LCDML_add(65, LCDML_0_3, 1, "Voice Level", UI_func_epiano_sound_intensity); +LCDML_add(66, LCDML_0_3, 2, "Panorama", UI_func_epiano_panorama); +LCDML_add(67, LCDML_0_3, 3, "Sound", NULL); +LCDML_add(68, LCDML_0_3_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay; +LCDML_add(69, LCDML_0_3_3, 2, "Release", UI_func_epiano_release); // uint8_t release; +LCDML_add(70, LCDML_0_3_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness; +LCDML_add(71, LCDML_0_3_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble; +LCDML_add(72, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo; +LCDML_add(73, LCDML_0_3_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune; +LCDML_add(74, LCDML_0_3_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune; +LCDML_add(75, LCDML_0_3, 4, "Effects", NULL); +LCDML_add(76, LCDML_0_3_4, 1, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive; +LCDML_add(77, LCDML_0_3_4, 2, "Tremolo", NULL); +LCDML_add(78, LCDML_0_3_4_2, 1, "Width", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo; +LCDML_add(79, LCDML_0_3_4_2, 2, "LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo; +LCDML_add(80, LCDML_0_3_4, 3, "Chorus", NULL); +LCDML_add(81, LCDML_0_3_4_3, 1, "Frequency", UI_func_epiano_chorus_frequency); +LCDML_add(82, LCDML_0_3_4_3, 2, "Waveform", UI_func_epiano_chorus_waveform); +LCDML_add(83, LCDML_0_3_4_3, 3, "Depth", UI_func_epiano_chorus_depth); +LCDML_add(84, LCDML_0_3_4_3, 4, "Level", UI_func_epiano_chorus_level); +LCDML_add(85, LCDML_0_3_4, 4, "Reverb Send", UI_func_epiano_reverb_send); +LCDML_add(86, LCDML_0_3, 6, "MIDI", NULL); +LCDML_add(87, LCDML_0_3_6, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel; +LCDML_add(88, LCDML_0_3_6, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note; +LCDML_add(89, LCDML_0_3_6, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note; +LCDML_add(90, LCDML_0_3, 7, "Setup", NULL); +LCDML_add(91, LCDML_0_3_7, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose; +LCDML_add(92, LCDML_0_3_7, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony; +LCDML_add(93, LCDML_0_3_7, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense; +LCDML_add(94, LCDML_0, 4, "Master Effects", NULL); +LCDML_add(95, LCDML_0_4, 1, "Reverb", NULL); +LCDML_add(96, LCDML_0_4_1, 1, "Roomsize", UI_func_reverb_roomsize); +LCDML_add(97, LCDML_0_4_1, 2, "Lowpass", UI_func_reverb_lowpass); +LCDML_add(98, LCDML_0_4_1, 3, "Lodamp", UI_func_reverb_lodamp); +LCDML_add(99, LCDML_0_4_1, 4, "Hidamp", UI_func_reverb_hidamp); +LCDML_add(100, LCDML_0_4_1, 5, "Diffusion", UI_func_reverb_diffusion); +LCDML_add(101, LCDML_0_4_1, 6, "Level", UI_func_reverb_level); +LCDML_add(102, LCDML_0_4_1, 7, "Reverb Send", UI_func_reverb_send); +LCDML_add(103, LCDML_0_4, 2, "EQ", NULL); +LCDML_add(104, LCDML_0_4_2, 1, "Low-Cut", UI_func_eq_1); +LCDML_add(105, LCDML_0_4_2, 2, "110Hz", UI_func_eq_2); +LCDML_add(106, LCDML_0_4_2, 3, "220Hz", UI_func_eq_3); +LCDML_add(107, LCDML_0_4_2, 4, "1000Hz", UI_func_eq_4); +LCDML_add(108, LCDML_0_4_2, 5, "2000Hz", UI_func_eq_5); +LCDML_add(109, LCDML_0_4_2, 6, "7000Hz", UI_func_eq_6); +LCDML_add(110, LCDML_0_4_2, 7, "High-Cut", UI_func_eq_7) +LCDML_add(111, LCDML_0, 5, "Load/Save", NULL); +LCDML_add(112, LCDML_0_5, 1, "Load Perf.", UI_func_load_performance); +LCDML_add(113, LCDML_0_5, 2, "Save Perf.", UI_func_save_performance); +LCDML_add(114, LCDML_0_5, 3, "Name Perf.", UI_func_set_performance_name); +LCDML_add(115, LCDML_0_5, 4, "MIDI", NULL); +LCDML_add(116, LCDML_0_5_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); +LCDML_add(117, LCDML_0_5_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank); +LCDML_add(118, LCDML_0_5_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice); +LCDML_add(119, LCDML_0, 6, "System", NULL); +LCDML_add(120, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); +LCDML_add(121, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(122, LCDML_0_6, 3, "Favorites", UI_func_favorites); +LCDML_add(123, LCDML_0_6, 4, "Startup", UI_func_startup); +LCDML_add(124, LCDML_0, 7, "Info", UI_func_information); +LCDML_addAdvanced(125, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); +#define _LCDML_DISP_cnt 125 diff --git a/addon/Drums/BDTrancy.wav b/addon/Drums/BDTrancy.wav index 43aaf9f..8a8f996 100644 Binary files a/addon/Drums/BDTrancy.wav and b/addon/Drums/BDTrancy.wav differ diff --git a/addon/tools/drumset.cfg b/addon/tools/drumset.cfg index 85aa99a..449984a 100644 --- a/addon/tools/drumset.cfg +++ b/addon/tools/drumset.cfg @@ -1,64 +1,64 @@ # class, midinote, name, shortname, pitch, p_offset, pan, vol_max, vol_min, reverb_send, filename -DRUM_BASS, MIDI_A2, Clap808, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav -DRUM_BASS, MIDI_B2, S_kick_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav -DRUM_BASS, MIDI_C3, S_kick2_8, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick2_8.wav -DRUM_PERCUSSION, MIDI_CIS3, S_Stick_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snareStick_1.wav -DRUM_SNARE, MIDI_D3, S_snare_Ghost_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_Ghost_1.wav -DRUM_SNARE, MIDI_DIS3, S_snare2_Ghost_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare2_Ghost_1.wav -DRUM_SNARE, MIDI_E3, S_snare_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_2.wav -DRUM_BASS, MIDI_F3, S_loTom_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav -DRUM_BASS, MIDI_FIS3, S_hhClosed_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hhClosed_1.wav -DRUM_LOWTOM, MIDI_G3, S_loTom_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav -DRUM_BASS, MIDI_GIS3, S_hh_o_1_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_1_2.wav -DRUM_HIGHTOM, MIDI_A3, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav -DRUM_BASS, MIDI_AIS3, S_hh_o_5_4 , B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_5_4.wav -DRUM_HIGHTOM, MIDI_B3, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav -DRUM_HIGHTOM, MIDI_C4, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav -DRUM_BASS, MIDI_CIS4, S_splash1_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_splash1_1.wav -DRUM_HIGHTOM, MIDI_D4, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav -DRUM_CRASH, MIDI_DIS4, S_china1_4, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_china1_4.wav -DRUM_CRASH, MIDI_E4, S_china2_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_china2_1.wav -DRUM_RIDE, MIDI_F4, S_ride1Bell_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav -DRUM_RIDE, MIDI_FIS4, S_ride1Bell_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav -DRUM_CRASH, MIDI_G4, S_crash1_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_crash1_1.wav -DRUM_BASS, MIDI_GIS4, S_cowbell_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_cowbell_2.wav -DRUM_RIDE, MIDI_A4, S_ride2Crash_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2Crash_2.wav -DRUM_RIDE, MIDI_AIS4, S_ride2_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2_1.wav -DRUM_BASS, MIDI_B4, 808Kick, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, Kick808.wav -DRUM_BASS, MIDI_C5, phkick1, B, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, phKick1.wav -DRUM_SNARE, MIDI_CIS5, rims1, R, 0.0, 0.0, -0.2, 0.7, 0.0, 0.0, Rim808.wav -DRUM_SNARE, MIDI_D5, Shaker, R, 0.0, 0.0, -0.2, 0.5, 0.0, 0.0, Shaker.wav -DRUM_HANDCLAP, MIDI_DIS5, LNclap1, C, 0.0, 0.0, 0.1, 0.9, 0.0, 0.1, LnClap.wav -DRUM_SNARE, MIDI_E5, LNsnare1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, LnSnare1.wav -DRUM_BASS, MIDI_F5, Bdtrancy, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, BDTrancy.wav -DRUM_HIHAT, MIDI_FIS5, hhcl1, H, 0.0, 0.0, 1.0, 0.6, 0.0, 0.0, HhCL1-808.wav -DRUM_BASS, MIDI_G5, Belltree, B, 0.0, 0.0, 0.0, 0.7, 0.0, 0.0, Belltree.wav -DRUM_BASS, MIDI_GIS5, Bongo16, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo16.wav -DRUM_BASS, MIDI_A5, Bongo27, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo27.wav -DRUM_BASS, MIDI_AIS5, Casta, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Casta.wav -DRUM_BASS, MIDI_B5, Cr78kick, B, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, CR78Kick.wav -DRUM_HIHAT, MIDI_C6, Cr78tmb1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb1.wav -DRUM_HIHAT, MIDI_CIS6, Cr78tmb2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb2.wav -DRUM_BASS, MIDI_D6, Crash1, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Crash1.wav -DRUM_BASS, MIDI_DIS6, Dmpop, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, DMpop.wav -DRUM_BASS, MIDI_E6, Electr1, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Electr1.wav -DRUM_BASS, MIDI_F6, Excow, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, EXcow.wav -DRUM_PERCUSSION, MIDI_FIS6, Tamb, T, 0.0, 0.0, -0.2, 0.6, 0.0, 0.0, Tamb.wav -DRUM_PERCUSSION, MIDI_GIS6, Cowbell, S, 0.0, 0.0, 0.2, 0.6, 0.0, 0.0, CowBell.wav -DRUM_HIHAT, MIDI_G6, 660HatC1, T, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HatC660.wav -DRUM_HIHAT, MIDI_A6, Hhopen1, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HHopen1.wav -DRUM_PERCUSSION, MIDI_AIS6, Histicks, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HiSticks.wav -DRUM_PERCUSSION, MIDI_B6, Hr16snr2, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HR16Snr2.wav -DRUM_HIGHTOM, MIDI_C7, Xrhitom, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, XRHiTom.wav -DRUM_PERCUSSION, MIDI_CIS7, Tick1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Tick1.wav -DRUM_PERCUSSION, MIDI_D7, M1-18, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, M1-18.wav -DRUM_PERCUSSION, MIDI_DIS7, Md16_clp, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, MD16_CLP.wav -DRUM_HIHAT, MIDI_E7, Ohhwav, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, OHH909.wav -DRUM_PERCUSSION, MIDI_F7, Quijada, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Quijada.wav -DRUM_PERCUSSION, MIDI_FIS7, tabla1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, R8Tabla1.wav -DRUM_PERCUSSION, MIDI_G7, Ride808, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Ride808.wav -DRUM_PERCUSSION, MIDI_GIS7, Scratch1, S, 0.0, 0.0, 0.0, 0.7, 0.0, 0.0, scratch1.wav -DRUM_PERCUSSION, MIDI_A7, Tomlow, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, TomLow.wav -DRUM_PERCUSSION, MIDI_AIS7, Tom808, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Tom808.wav -DRUM_BASS, MIDI_B7, Vl1lbeep, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Lbeep.wav -DRUM_BASS, MIDI_C8, Vl1hbeep, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Hbeep.wav +DRUM_BASS, MIDI_A2, Clap808, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav +DRUM_BASS, MIDI_B2, S_kick_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav +DRUM_BASS, MIDI_C3, S_kick2_8, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick2_8.wav +DRUM_PERCUSSION, MIDI_CIS3, S_Stick_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snareStick_1.wav +DRUM_SNARE, MIDI_D3, S_snare_Ghost_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_Ghost_1.wav +DRUM_SNARE, MIDI_DIS3, S_snare2_Ghost_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare2_Ghost_1.wav +DRUM_SNARE, MIDI_E3, S_snare_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_2.wav +DRUM_BASS, MIDI_F3, S_loTom_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav +DRUM_BASS, MIDI_FIS3, S_hhClosed_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hhClosed_1.wav +DRUM_LOWTOM, MIDI_G3, S_loTom_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav +DRUM_BASS, MIDI_GIS3, S_hh_o_1_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_1_2.wav +DRUM_HIGHTOM, MIDI_A3, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav +DRUM_BASS, MIDI_AIS3, S_hh_o_5_4, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_5_4.wav +DRUM_HIGHTOM, MIDI_B3, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav +DRUM_HIGHTOM, MIDI_C4, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav +DRUM_BASS, MIDI_CIS4, S_splash1_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_splash1_1.wav +DRUM_HIGHTOM, MIDI_D4, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav +DRUM_CRASH, MIDI_DIS4, S_china1_4, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_china1_4.wav +DRUM_CRASH, MIDI_E4, S_china2_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_china2_1.wav +DRUM_RIDE, MIDI_F4, S_ride1Bell_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav +DRUM_RIDE, MIDI_FIS4, S_ride1Bell_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav +DRUM_CRASH, MIDI_G4, S_crash1_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_crash1_1.wav +DRUM_BASS, MIDI_GIS4, S_cowbell_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_cowbell_2.wav +DRUM_RIDE, MIDI_A4, S_ride2Crash_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2Crash_2.wav +DRUM_RIDE, MIDI_AIS4, S_ride2_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2_1.wav +DRUM_BASS, MIDI_B4, 808Kick, B, 0.0, 0.0, 0.8, 0.0, 0.0, Kick808.wav +DRUM_BASS, MIDI_C5, phkick1, B, 0.0, 0.0, 1.0, 0.0, 0.0, phKick1.wav +DRUM_SNARE, MIDI_CIS5, rims1, R, 0.0, -0.2, 0.7, 0.0, 0.0, Rim808.wav +DRUM_SNARE, MIDI_D5, Shaker, R, 0.0, -0.2, 0.5, 0.0, 0.0, Shaker.wav +DRUM_HANDCLAP, MIDI_DIS5, LNclap1, C, 0.0, 0.1, 0.9, 0.0, 0.1, LnClap.wav +DRUM_SNARE, MIDI_E5, LNsnare1, S, 0.0, 0.0, 0.9, 0.0, 0.0, LnSnare1.wav +DRUM_BASS, MIDI_F5, Bdtrancy, B, 0.0, 0.0, 0.9, 0.0, 0.0, BDTrancy.wav +DRUM_HIHAT, MIDI_FIS5, hhcl1, H, 0.0, 1.0, 0.6, 0.0, 0.0, HhCL1-808.wav +DRUM_BASS, MIDI_G5, Belltree, B, 0.0, 0.0, 0.7, 0.0, 0.0, Belltree.wav +DRUM_BASS, MIDI_GIS5, Bongo16, B, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo16.wav +DRUM_BASS, MIDI_A5, Bongo27, B, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo27.wav +DRUM_BASS, MIDI_AIS5, Casta, B, 0.0, 0.0, 0.9, 0.0, 0.0, Casta.wav +DRUM_BASS, MIDI_B5, Cr78kick, B, 0.0, 0.0, 1.0, 0.0, 0.0, CR78Kick.wav +DRUM_HIHAT, MIDI_C6, Cr78tmb1, B, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb1.wav +DRUM_HIHAT, MIDI_CIS6, Cr78tmb2, B, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb2.wav +DRUM_BASS, MIDI_D6, Crash1, B, 0.0, 0.0, 0.9, 0.0, 0.0, Crash1.wav +DRUM_BASS, MIDI_DIS6, Dmpop, B, 0.0, 0.0, 0.9, 0.0, 0.0, DMpop.wav +DRUM_BASS, MIDI_E6, Electr1, B, 0.0, 0.0, 0.9, 0.0, 0.0, Electr1.wav +DRUM_BASS, MIDI_F6, Excow, B, 0.0, 0.0, 0.9, 0.0, 0.0, EXcow.wav +DRUM_PERCUSSION, MIDI_FIS6, Tamb, T, 0.0, -0.2, 0.6, 0.0, 0.0, Tamb.wav +DRUM_PERCUSSION, MIDI_GIS6, Cowbell, S, 0.0, 0.2, 0.6, 0.0, 0.0, CowBell.wav +DRUM_HIHAT, MIDI_G6, 660HatC1, T, 0.0, 0.0, 0.6, 0.0, 0.0, HatC660.wav +DRUM_HIHAT, MIDI_A6, Hhopen1, S, 0.0, 0.0, 0.6, 0.0, 0.0, HHopen1.wav +DRUM_PERCUSSION, MIDI_AIS6, Histicks, S, 0.0, 0.0, 0.6, 0.0, 0.0, HiSticks.wav +DRUM_PERCUSSION, MIDI_B6, Hr16snr2, S, 0.0, 0.0, 0.6, 0.0, 0.0, HR16Snr2.wav +DRUM_HIGHTOM, MIDI_C7, Xrhitom, B, 0.0, 0.0, 0.8, 0.0, 0.0, XRHiTom.wav +DRUM_PERCUSSION, MIDI_CIS7, Tick1, S, 0.0, 0.0, 0.9, 0.0, 0.0, Tick1.wav +DRUM_PERCUSSION, MIDI_D7, M1-18, S, 0.0, 0.0, 0.9, 0.0, 0.0, M1-18.wav +DRUM_PERCUSSION, MIDI_DIS7, Md16_clp, S, 0.0, 0.0, 0.9, 0.0, 0.0, MD16_CLP.wav +DRUM_HIHAT, MIDI_E7, Ohhwav, S, 0.0, 0.0, 0.9, 0.0, 0.0, OHH909.wav +DRUM_PERCUSSION, MIDI_F7, Quijada, S, 0.0, 0.0, 0.9, 0.0, 0.0, Quijada.wav +DRUM_PERCUSSION, MIDI_FIS7, tabla1, S, 0.0, 0.0, 0.9, 0.0, 0.0, R8Tabla1.wav +DRUM_PERCUSSION, MIDI_G7, Ride808, S, 0.0, 0.0, 0.9, 0.0, 0.0, Ride808.wav +DRUM_PERCUSSION, MIDI_GIS7, Scratch1, S, 0.0, 0.0, 0.7, 0.0, 0.0, scratch1.wav +DRUM_PERCUSSION, MIDI_A7, Tomlow, S, 0.0, 0.0, 0.9, 0.0, 0.0, TomLow.wav +DRUM_PERCUSSION, MIDI_AIS7, Tom808, S, 0.0, 0.0, 0.9, 0.0, 0.0, Tom808.wav +DRUM_BASS, MIDI_B7, Vl1lbeep, B, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Lbeep.wav +DRUM_BASS, MIDI_C8, Vl1hbeep, B, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Hbeep.wav diff --git a/addon/tools/wav2c.sh b/addon/tools/wav2c.sh index 3c1694e..591d0d7 100755 --- a/addon/tools/wav2c.sh +++ b/addon/tools/wav2c.sh @@ -119,12 +119,11 @@ do sample['c_name']=`echo "DRUM_${sample[c_name]}"` sample['shortname']=`echo "${samplecfg[3]}" | xargs` sample['pitch']=`echo "${samplecfg[4]}" | xargs` - sample['p_offset']=`echo "${samplecfg[5]}" | xargs` - sample['pan']=`echo "${samplecfg[6]}" | xargs` - sample['vol_max']=`echo "${samplecfg[7]}" | xargs` - sample['vol_min']=`echo "${samplecfg[8]}" | xargs` - sample['reverb_send']=`echo "${samplecfg[9]}" | xargs` - sample['filename']=`echo "${samplecfg[10]}" | xargs` + sample['pan']=`echo "${samplecfg[5]}" | xargs` + sample['vol_max']=`echo "${samplecfg[6]}" | xargs` + sample['vol_min']=`echo "${samplecfg[7]}" | xargs` + sample['reverb_send']=`echo "${samplecfg[8]}" | xargs` + sample['filename']=`echo "${samplecfg[9]}" | xargs` if [ -f "${WAV_DIR}/${sample['filename']}" ] then @@ -194,7 +193,6 @@ do "${sample[shortname]}", ${sample[len]}, ${sample[pitch]}, - ${sample[p_offset]}, ${sample[pan]}, ${sample[vol_max]}, ${sample[vol_min]}, @@ -228,7 +226,6 @@ cat >> "${DRUMS_H}" << EOF 0.0, 0.0, 0.0, - 0.0, 0.0 } }; diff --git a/config.h b/config.h index fd257e8..a3cb0d9 100644 --- a/config.h +++ b/config.h @@ -664,6 +664,18 @@ #define DRUMS_MAIN_VOL_MAX 100 #define DRUMS_MAIN_VOL_DEFAULT 80 +#define DRUMS_PANORAMA_MIN 0 +#define DRUMS_PANORAMA_MAX 99 + +#define DRUMS_VOL_MIN 0 +#define DRUMS_VOL_MAX 99 + +#define DRUMS_REVERB_SEND_MIN 0 +#define DRUMS_REVERB_SEND_MAX 99 + +#define DRUMS_PITCH_MIN 0 +#define DRUMS_PITCH_MAX 99 + #define EQ_1_MIN 15 #define EQ_1_MAX 250 #define EQ_1_DEFAULT 50 @@ -919,7 +931,12 @@ typedef struct performance_s { } performance_t; typedef struct drums_s { - uint8_t vol; + uint8_t drum_main_vol; + uint8_t drum_midi_channel; + uint8_t drum_vol[NUM_DRUMSET_CONFIG - 1]; + int8_t drum_pan[NUM_DRUMSET_CONFIG - 1]; + uint8_t drum_reverb_send[NUM_DRUMSET_CONFIG - 1]; + uint8_t drum_pitch[NUM_DRUMSET_CONFIG - 1]; } drum_t; typedef struct configuration_s { diff --git a/dexed_sd.cpp b/dexed_sd.cpp index 2dbbb61..28f70c5 100644 --- a/dexed_sd.cpp +++ b/dexed_sd.cpp @@ -45,7 +45,6 @@ extern void check_configuration_epiano(void); extern float midi_volume_transform(uint8_t midi_amp); extern void set_sample_note(uint8_t sample, uint8_t note); extern void set_sample_pitch(uint8_t sample, float playbackspeed); -extern void set_sample_p_offset(uint8_t sample, float s_offset); extern void set_sample_pan(uint8_t sample, float s_pan); extern void set_sample_vol_max(uint8_t sample, float s_max); extern void set_sample_vol_min(uint8_t sample, float s_min); @@ -57,7 +56,6 @@ extern void dac_unmute(void); extern void check_configuration_sys(void); extern uint8_t get_sample_note(uint8_t sample); extern float get_sample_pitch(uint8_t sample); -extern float get_sample_p_offset(uint8_t sample); extern float get_sample_pan(uint8_t sample); extern float get_sample_vol_max(uint8_t sample); extern float get_sample_vol_min(uint8_t sample); @@ -466,7 +464,7 @@ bool load_sd_drumsettings_json(uint8_t number) Serial.println(); #endif - configuration.drums.vol = data_json["drums_volume"]; + configuration.drums.drum_main_vol = data_json["drums_volume"]; for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++) { @@ -475,7 +473,6 @@ bool load_sd_drumsettings_json(uint8_t number) if (((int)data_json["note"][i] > 0 && find_drum_number_from_note(data_json["note"][i]) > 0) || (i == 0 && (int)data_json["note"][i] == 210)) { set_sample_pitch( drumnumber, data_json["pitch"][i] ); - set_sample_p_offset ( drumnumber, data_json["p_offset"][i] ); set_sample_pan( drumnumber, data_json["pan"][i]) ; set_sample_vol_max( drumnumber, data_json["vol_max"][i]) ; set_sample_vol_min( drumnumber, data_json["vol_min"][i] ); @@ -535,12 +532,11 @@ bool save_sd_drumsettings_json(uint8_t number) json = SD.open(filename, FILE_WRITE); if (json) { - data_json["drums_volume"] = configuration.drums.vol; + data_json["drums_volume"] = configuration.drums.drum_main_vol; for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++) { data_json["note"][i] = get_sample_note(i); data_json["pitch"][i] = get_sample_pitch(i); - data_json["p_offset"][i] = get_sample_p_offset(i); data_json["pan"][i] = get_sample_pan(i); data_json["vol_max"][i] = get_sample_vol_max(i); data_json["vol_min"][i] = get_sample_vol_min(i); diff --git a/drums.h b/drums.h index 06af6e5..412b56a 100644 --- a/drums.h +++ b/drums.h @@ -37,7 +37,6 @@ typedef struct drum_config_s { char shortname[2]; // 1 char name for sequencer uint32_t len; // number of elements in drum_data float32_t pitch; // variable pitch per note for sequencer - float32_t p_offset; // "static" pitch offset to correct root note to root of other samples float32_t pan; // Panorama (-1.0 - +1.0) float32_t vol_max; // max. Volume (0.0 - 1.0) float32_t vol_min; // min. Volume (0.0 - 1.0, should be <= vol_max) diff --git a/drumset.h b/drumset.h index 5c0f72d..d305d4e 100644 --- a/drumset.h +++ b/drumset.h @@ -237918,7 +237918,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 19520, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -237933,7 +237932,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 19520, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -237948,7 +237946,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 19200, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -237963,7 +237960,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 10432, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -237978,7 +237974,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 19008, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -237993,7 +237988,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 22464, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238008,7 +238002,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 17920, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238023,7 +238016,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 40320, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238038,7 +238030,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 6784, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238053,7 +238044,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 40320, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238068,7 +238058,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 18240, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238083,7 +238072,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 23040, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238098,7 +238086,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 80320, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238113,7 +238100,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 23040, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238128,7 +238114,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 23040, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238143,7 +238128,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 57856, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238158,7 +238142,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 23040, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238173,7 +238156,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 75840, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238188,7 +238170,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 68864, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238203,7 +238184,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 58752, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238218,7 +238198,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 58752, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238233,7 +238212,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 112064, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238248,7 +238226,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 18368, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238263,7 +238240,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 132160, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238278,7 +238254,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 77504, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238293,7 +238268,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 26688, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238308,7 +238282,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 4800, 0.0, 0.0, - 0.0, 1.0, 0.0, 0.0 @@ -238322,7 +238295,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "R", 768, 0.0, - 0.0, -0.2, 0.7, 0.0, @@ -238337,7 +238309,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "R", 1792, 0.0, - 0.0, -0.2, 0.5, 0.0, @@ -238352,7 +238323,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "C", 6976, 0.0, - 0.0, 0.1, 0.9, 0.0, @@ -238368,7 +238338,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 10560, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238383,7 +238352,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 7872, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238397,7 +238365,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "H", 6208, 0.0, - 0.0, 1.0, 0.6, 0.0, @@ -238413,7 +238380,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 121408, 0.0, 0.0, - 0.0, 0.7, 0.0, 0.0 @@ -238428,7 +238394,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 6464, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238443,7 +238408,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 11712, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238458,7 +238422,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 2048, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238473,7 +238436,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 10048, 0.0, 0.0, - 0.0, 1.0, 0.0, 0.0 @@ -238488,7 +238450,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 7552, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238503,7 +238464,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 10880, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238518,7 +238478,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 72768, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238533,7 +238492,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 7808, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238548,7 +238506,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 2880, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238563,7 +238520,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 18368, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238577,7 +238533,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "T", 8128, 0.0, - 0.0, -0.2, 0.6, 0.0, @@ -238592,7 +238547,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = "S", 7296, 0.0, - 0.0, 0.2, 0.6, 0.0, @@ -238608,7 +238562,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 5952, 0.0, 0.0, - 0.0, 0.6, 0.0, 0.0 @@ -238623,7 +238576,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 11200, 0.0, 0.0, - 0.0, 0.6, 0.0, 0.0 @@ -238638,7 +238590,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 2432, 0.0, 0.0, - 0.0, 0.6, 0.0, 0.0 @@ -238653,7 +238604,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 15168, 0.0, 0.0, - 0.0, 0.6, 0.0, 0.0 @@ -238668,7 +238618,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 13504, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238683,7 +238632,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 640, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238698,7 +238646,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 2240, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238713,7 +238660,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 13312, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238728,7 +238674,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 23488, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238743,7 +238688,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 36096, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238758,7 +238702,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 15488, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238773,7 +238716,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 21696, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238788,7 +238730,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 5888, 0.0, 0.0, - 0.0, 0.7, 0.0, 0.0 @@ -238803,7 +238744,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 15360, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238818,7 +238758,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 6272, 0.0, 0.0, - 0.0, 0.9, 0.0, 0.0 @@ -238833,7 +238772,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 3008, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238848,7 +238786,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 1984, 0.0, 0.0, - 0.0, 0.8, 0.0, 0.0 @@ -238865,7 +238802,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] = 0.0, 0.0, 0.0, - 0.0, 0.0 } };