From 6fc8cf5e19df05f2311465070147c39afbf2faa4 Mon Sep 17 00:00:00 2001 From: positionhigh Date: Sat, 24 Jul 2021 23:28:45 +0200 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9E=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UI.hpp | 220 ++++++++++++++++++++++---------------------------------- drums.h | 12 +++- 2 files changed, 95 insertions(+), 137 deletions(-) diff --git a/UI.hpp b/UI.hpp index 788f114..1ccfea6 100644 --- a/UI.hpp +++ b/UI.hpp @@ -66,6 +66,7 @@ extern char receive_bank_filename[FILENAME_LEN]; extern uint8_t seqdata[3][16]; extern uint8_t seqsteptimer; extern bool seq_running; +uint8_t seq_active_function = 99; uint8_t activesample; #if NUM_DRUMS > 0 #include "drums.h" @@ -124,6 +125,7 @@ uint8_t orig_attack_values[2][7]; uint8_t orig_release_values[2][7]; uint8_t active_seq_track = 0; uint8_t seq_menu; +bool seq_button_r = false; #ifdef I2C_DISPLAY #include @@ -635,7 +637,8 @@ void lcdml_menu_control(void) Serial.println(F("ENC-R short")); #endif encoderDir[ENC_R].ButtonShort(true); - + seq_button_r = true; + //nexus LCDML.BT_enter(); } } @@ -3530,24 +3533,18 @@ void UI_handle_OP(uint8_t param) } } - void UI_func_sequencer(uint8_t param) { - + bool foundsound = false; String displayname = String(8); - if (LCDML.FUNC_setup()) // ****** SETUP ********* { - encoderDir[ENC_R].reset(); - + seq_button_r = false; // setup function - - // lcd.print(drum_config[activesample].midinote); lcd.setCursor(1, 0); displayname = drum_config[activesample].filename; lcd.print(displayname.substring(5, 11) ); - lcd.setCursor(8, 0); lcd.print("["); lcd.setCursor(9, 0); @@ -3558,50 +3555,95 @@ void UI_func_sequencer(uint8_t param) else { lcd.print("RUN"); } - lcd.setCursor(12, 0); lcd.print("]"); - lcd.setCursor(14, 0); lcd.print(active_seq_track + 1); - - lcd.setCursor(0, 1); - lcd.print("----------------" ); - lcd.setCursor(10, 0); for (int i = 0; i < 16; i++) { lcd.setCursor(i, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) + for (uint8_t d = 0; d < NUM_DRUMCONFIG - 1; d++) { if (seqdata[active_seq_track][i] == drum_config[d].midinote) { lcd.print(drum_config[d].shortname ); //one letter name of Category + foundsound = true; break; } } - + if (foundsound == false)lcd.print("-"); + foundsound = false; } - } - if (LCDML.FUNC_loop()) // ****** LOOP ********* { + if (seq_active_function == 99) { - if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) + { + if (LCDML.BT_checkDown()) + seq_menu = constrain(seq_menu + 1, 0, 18); + else if (LCDML.BT_checkUp()) + seq_menu = constrain(seq_menu - 1, 0, 18); + } + } else if (seq_active_function == 0 ) { + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) + { + if (LCDML.BT_checkDown()) + activesample = constrain(activesample + 1, 0, NUM_DRUMCONFIG - 1 ); + else if (LCDML.BT_checkUp()) + activesample = constrain(activesample - 1, 0, NUM_DRUMCONFIG - 1 ); + } + } else if (seq_active_function == 2) { + if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) + { + if (LCDML.BT_checkDown()) + active_seq_track = constrain(active_seq_track + 1, 0, 2); + else if (LCDML.BT_checkUp()) + active_seq_track = constrain(active_seq_track - 1, 0, 2); + } + } + if (seq_button_r) //handle button presses during menu >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> { - if (LCDML.BT_checkDown()) - seq_menu = constrain(seq_menu + 1, 0, 18); - else if (LCDML.BT_checkUp()) - seq_menu = constrain(seq_menu - 1, 0, 18); + seq_button_r = false; + if ( seq_menu == 0 && seq_active_function == 99) + { + seq_active_function = 0; + } else if ( seq_menu == 0 && seq_active_function == 0) + { + seq_active_function = 99; + } + if ( seq_menu == 1) + { + lcd.setCursor(9, 0); + if (seq_running == true) + { + seq_running = false; + lcd.print("RUN"); + } else + { + seq_running = true; + lcd.print("STP"); + } + } else if ( seq_menu == 2) + { + if (seq_active_function != 2) seq_active_function = 2; else seq_active_function = 99; + } + if (seq_menu > 2) + { + if (seq_active_function == 99) { + seqdata[active_seq_track][seq_menu - 3] = drum_config[activesample].midinote; + } + else + seq_active_function = 99; + } } - bool foundsound = false; + //button check end <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< if (seq_menu == 0) { lcd.setCursor(8, 0); lcd.print(" "); lcd.setCursor(12, 0); lcd.print(" "); - lcd.setCursor(0, 0); lcd.print("["); lcd.setCursor(1, 0); @@ -3610,9 +3652,7 @@ void UI_func_sequencer(uint8_t param) lcd.setCursor(7, 0); lcd.print("]"); } - if (seq_menu == 1) { - lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(7, 0); @@ -3621,7 +3661,6 @@ void UI_func_sequencer(uint8_t param) lcd.print(" "); lcd.setCursor(15, 0); lcd.print(" "); - lcd.setCursor(8, 0); lcd.print("["); lcd.setCursor(9, 0); @@ -3634,51 +3673,43 @@ void UI_func_sequencer(uint8_t param) } lcd.setCursor(12, 0); lcd.print("]"); - } if (seq_menu == 2) { lcd.setCursor(8, 0); lcd.print(" "); lcd.setCursor(12, 0); lcd.print(" "); - lcd.setCursor(13, 0); lcd.print("["); - lcd.setCursor(14, 0); lcd.print(active_seq_track + 1); - lcd.setCursor(15, 0); lcd.print("]"); - lcd.setCursor(0, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) - { - if (seqdata[active_seq_track][0] == drum_config[d].midinote) + for (int i = 0; i < 16; i++) { + lcd.setCursor(i, 1); + for (uint8_t d = 0; d < NUM_DRUMCONFIG - 1; d++) { - lcd.print(drum_config[d].shortname ); //one letter name of Category - foundsound = true; - break; + if (seqdata[active_seq_track][i] == drum_config[d].midinote) + { + lcd.print(drum_config[d].shortname ); //one letter name of Category + foundsound = true; + break; + } } + if (foundsound == false)lcd.print("-"); + foundsound = false; } - if (foundsound == false) lcd.print("-"); - foundsound = false; - } - if (seq_menu == 3) { lcd.setCursor(15, 0); lcd.print(" "); lcd.setCursor(13, 0); lcd.print(" "); - lcd.setCursor(0, 1); - lcd.print("X"); - + lcd.print("x"); lcd.setCursor(1, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) + for (uint8_t d = 0; d < NUM_DRUMCONFIG - 1; d++) { if (seqdata[active_seq_track][1] == drum_config[d].midinote) { @@ -3689,19 +3720,12 @@ void UI_func_sequencer(uint8_t param) } if (foundsound == false) lcd.print("-"); foundsound = false; - - } - if (seq_menu > 3) { - lcd.setCursor(seq_menu - 3, 1); - lcd.print("X"); - - + lcd.print("x"); lcd.setCursor(seq_menu - 4, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) + for (uint8_t d = 0; d < NUM_DRUMCONFIG - 1; d++) { if (seqdata[active_seq_track][seq_menu - 4] == drum_config[d].midinote) { @@ -3712,10 +3736,8 @@ void UI_func_sequencer(uint8_t param) } if (foundsound == false) lcd.print("-"); foundsound = false; - lcd.setCursor(seq_menu - 2, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) + for (uint8_t d = 0; d < NUM_DRUMCONFIG - 1; d++) { if (seqdata[active_seq_track][seq_menu - 2] == drum_config[d].midinote) { @@ -3726,84 +3748,12 @@ void UI_func_sequencer(uint8_t param) } if (foundsound == false) lcd.print("-"); foundsound = false; - - - } - -// if (seq_menu == 55) { -// -// if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) -// { -// if (LCDML.BT_checkDown()) -// activesample = constrain(activesample + 1, 0, NUM_DRUMCONFIG - 1); -// else if (LCDML.BT_checkUp()) -// activesample = constrain(activesample - 1, 0, NUM_DRUMCONFIG - 1); -// } -// } -// else -// -// if (seq_menu == 41) { -// -// if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) -// { -// if (LCDML.BT_checkDown()) -// activesample = constrain(activesample + 1, 0, NUM_DRUMCONFIG - 1); -// else if (LCDML.BT_checkUp()) -// activesample = constrain(activesample - 1, 0, NUM_DRUMCONFIG - 1); -// } -// -// -// lcd.setCursor(1, 0); -// displayname = drum_config[activesample].filename; -// -// lcd.print(displayname.substring(5, 11) ); -// -// } else -// -// if (seq_menu == 54) { -// -// ; -// -// } else -// -// if (seq_menu == 555) { -// -// if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up())) -// { -// if (LCDML.BT_checkDown()) -// active_seq_track = constrain(active_seq_track + 1, 0, 2); -// else if (LCDML.BT_checkUp()) -// active_seq_track = constrain(active_seq_track - 1, 0, 2); -// } -// -// } - - - lcd.setCursor(0, 1); - lcd.print("----------------" ); - - for (int i = 0; i < 16; i++) { - lcd.setCursor(i, 1); - - for (uint8_t d = 0; d < NUM_DRUMCONFIG; d++) - { - if (seqdata[active_seq_track][i] == drum_config[d].midinote) - { - lcd.print(drum_config[d].shortname ); //one letter name of Category - break; - } - } - } - } - if (LCDML.FUNC_close()) // ****** STABLE END ********* { - encoderDir[ENC_R].reset(); } - } void UI_func_information(uint8_t param) diff --git a/drums.h b/drums.h index 72f6e83..0016121 100644 --- a/drums.h +++ b/drums.h @@ -37,7 +37,7 @@ typedef struct drum_config_s { float32_t vol; // Volume (0.0 - 1.0) } drum_config_t; -#define NUM_DRUMCONFIG 14 +#define NUM_DRUMCONFIG 15 drum_config_t drum_config[NUM_DRUMCONFIG] = { { DRUM_BASS, @@ -148,6 +148,14 @@ drum_config_t drum_config[NUM_DRUMCONFIG] = { "H", 0.4, 0.6 - } + }, + { + DRUM_SNARE, + 0, + "/drm/EMPTY ", + "-", + 0.0, + 0.0 + } }; #endif