diff --git a/UI.hpp b/UI.hpp index 01a9319..e48851e 100644 --- a/UI.hpp +++ b/UI.hpp @@ -275,6 +275,7 @@ void UI_func_seq_lenght(uint8_t param); void UI_func_seq_tempo(uint8_t param); void UI_func_seq_pat_chain(uint8_t param); void UI_func_seq_track_setup(uint8_t param); +void UI_func_seq_display_style(uint8_t param); void UI_func_seq_pattern_load(uint8_t param); void UI_func_seq_pattern_save(uint8_t param); void UI_func_volume(uint8_t param); @@ -3878,6 +3879,92 @@ const char* seq_find_shortname(uint8_t sstep) // } //} +void UI_func_seq_display_style(uint8_t param) +{ + + if (LCDML.FUNC_setup()) // ****** SETUP ********* + { + encoderDir[ENC_R].reset(); + lcd.setCursor(0, 0); + lcd.print("Seq. Disp. Style"); + lcd.setCursor(0, 1); + lcd.print("Seq."); + lcd.setCursor(8, 1); + lcd.print("="); + lcd.setCursor(11, 1); + if (seq_content_type[seq_active_track] == 0) + lcd.print("Drum"); + else + lcd.print("Inst"); + } + if (LCDML.FUNC_loop()) // ****** LOOP ********* + { + if (menu_select_toggle == false) { + 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()) + { + seq_active_track = constrain(seq_active_track + ENCODER[ENC_R].speed(), 0, 9); + } + else if (LCDML.BT_checkUp()) + { + seq_active_track = constrain(seq_active_track - ENCODER[ENC_R].speed(), 0, 9); + } + } + } else { + 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()) + { + seq_content_type[seq_active_track] = constrain(seq_content_type[seq_active_track] + ENCODER[ENC_R].speed(), 0, 1); + } + else if (LCDML.BT_checkUp()) + { + seq_content_type[seq_active_track] = constrain(seq_content_type[seq_active_track] - ENCODER[ENC_R].speed(), 0, 1); + } + } + } + if (LCDML.BT_checkEnter()) + { + if (menu_select_toggle) { + menu_select_toggle = false; + } else + { menu_select_toggle = true; + } + } + if (menu_select_toggle == false) { + lcd.setCursor(10, 1); + lcd.print(" "); + lcd.setCursor(15, 1); + lcd.print(" "); + lcd.setCursor(4, 1); + lcd.print("["); + lcd.print(seq_active_track); + lcd.print("]"); + lcd.setCursor(11, 1); + if (seq_content_type[seq_active_track] == 0) lcd.print("Drum"); + else + lcd.print("Inst"); + } else { + lcd.setCursor(4, 1); + lcd.print(" "); + lcd.setCursor(6, 1); + lcd.print(" "); + lcd.setCursor(10, 1); + lcd.print("["); + if (seq_content_type[seq_active_track] == 0) + lcd.print("Drum"); + else + lcd.print("Inst"); + lcd.print("]"); + } + } + if (LCDML.FUNC_close()) // ****** STABLE END ********* + { + encoderDir[ENC_R].reset(); + } +} + void UI_func_seq_live_transpose_oct(uint8_t param) { //Select octave for live transpose of sequencer instrument track. Should be one of the lowest octaves available on the keyboard. //Allowed range: C1-C5 to not restrict too much, even for very unusual user setups/configurations. diff --git a/UI_FX.h b/UI_FX.h index a2ffca9..382bcca 100644 --- a/UI_FX.h +++ b/UI_FX.h @@ -116,19 +116,22 @@ LCDML_add(82, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(83, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send); LCDML_add(84, LCDML_0, 5, "Sequencer", NULL); LCDML_add(85, LCDML_0_5, 1, "Sequencer", UI_func_sequencer); -LCDML_add(86, LCDML_0_5, 2, "Pattern Chain", UI_func_seq_pat_chain); -LCDML_add(87, LCDML_0_5, 3, "Seq. Length", UI_func_seq_lenght); -LCDML_add(88, LCDML_0_5, 4, "Tempo", NULL); -LCDML_add(89, LCDML_0_5, 5, "L.Transp.Key", UI_func_seq_live_transpose_oct); -LCDML_add(90, LCDML_0_5, 6, "L.Trp.Offset", NULL); -LCDML_add(91, LCDML_0_5, 7, "LOAD Patterns", UI_func_seq_pattern_load); -LCDML_add(92, LCDML_0_5, 8, "SAVE Patterns", UI_func_seq_pattern_save); -LCDML_add(93, LCDML_0, 6, "System", NULL); -LCDML_add(94, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(95, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); -LCDML_add(96, LCDML_0_6, 3, "Favorites", UI_func_favorites); -LCDML_add(97, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); -LCDML_add(98, LCDML_0, 7, "Info", UI_func_information); -LCDML_addAdvanced(99, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); -#define _LCDML_DISP_cnt 99 +LCDML_add(86, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor); +LCDML_add(87, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); +LCDML_add(88, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght); +LCDML_add(89, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo); +LCDML_add(90, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct); +LCDML_add(91, LCDML_0_5, 7, "L.Trp.Offset", NULL); +LCDML_add(92, LCDML_0_5, 8, "Track Setup", UI_func_seq_track_setup); +LCDML_add(93, LCDML_0_5, 9, "Seq.Disp.Style", UI_func_seq_display_style); +LCDML_add(94, LCDML_0_5, 10, "LOAD Patterns", UI_func_seq_pattern_load); +LCDML_add(95, LCDML_0_5, 11, "SAVE Patterns", UI_func_seq_pattern_save); +LCDML_add(96, LCDML_0, 6, "System", NULL); +LCDML_add(97, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); +LCDML_add(98, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(99, LCDML_0_6, 3, "Favorites", UI_func_favorites); +LCDML_add(100, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); +LCDML_add(101, LCDML_0, 7, "Info", UI_func_information); +LCDML_addAdvanced(102, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); +#define _LCDML_DISP_cnt 102 #endif diff --git a/UI_FX_T4.h b/UI_FX_T4.h index d68b4cb..1125007 100644 --- a/UI_FX_T4.h +++ b/UI_FX_T4.h @@ -119,18 +119,21 @@ LCDML_add(85, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(86, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send); LCDML_add(87, LCDML_0, 5, "Sequencer", NULL); LCDML_add(88, LCDML_0_5, 1, "Sequencer", UI_func_sequencer); -LCDML_add(89, LCDML_0_5, 2, "Pattern Chain", UI_func_seq_pat_chain); -LCDML_add(90, LCDML_0_5, 3, "Seq. Length", UI_func_seq_lenght); -LCDML_add(91, LCDML_0_5, 4, "Tempo", NULL); -LCDML_add(92, LCDML_0_5, 5, "L.Transp.Key", UI_func_seq_live_transpose_oct); -LCDML_add(93, LCDML_0_5, 6, "LOAD Patterns", UI_func_seq_pattern_load); -LCDML_add(94, LCDML_0_5, 7, "SAVE Patterns", UI_func_seq_pattern_save); -LCDML_add(95, LCDML_0, 6, "System", NULL); -LCDML_add(96, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(97, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); -LCDML_add(98, LCDML_0_6, 3, "Favorites", UI_func_favorites); -LCDML_add(99, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); -LCDML_add(100, LCDML_0, 7, "Info", UI_func_information); -LCDML_addAdvanced(101, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); -#define _LCDML_DISP_cnt 101 +LCDML_add(89, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor); +LCDML_add(90, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); +LCDML_add(91, LCDML_0_5, 4, "Seq. Length", UI_func_seq_lenght); +LCDML_add(92, LCDML_0_5, 5, "Tempo", UI_func_seq_tempo); +LCDML_add(93, LCDML_0_5, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct); +LCDML_add(94, LCDML_0_5, 7, "Track Setup", UI_func_seq_track_setup); +LCDML_add(95, LCDML_0_5, 8, "Seq.Disp.Style", UI_func_seq_display_style); +LCDML_add(96, LCDML_0_5, 9, "LOAD Patterns", UI_func_seq_pattern_load); +LCDML_add(97, LCDML_0_5, 10, "SAVE Patterns", UI_func_seq_pattern_save); +LCDML_add(98, LCDML_0, 6, "System", NULL); +LCDML_add(99, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); +LCDML_add(100, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(101, LCDML_0_6, 3, "Favorites", UI_func_favorites); +LCDML_add(102, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); +LCDML_add(103, LCDML_0, 7, "Info", UI_func_information); +LCDML_addAdvanced(104, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); +#define _LCDML_DISP_cnt 104 #endif diff --git a/UI_NO_FX.h b/UI_NO_FX.h index 38b2c41..8fc7e9d 100644 --- a/UI_NO_FX.h +++ b/UI_NO_FX.h @@ -91,19 +91,22 @@ LCDML_add(57, LCDML_0_3, 2, "Drum Volumes", UI_func_drum_volume); LCDML_add(58, LCDML_0_3, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(59, LCDML_0, 4, "Sequencer", NULL); LCDML_add(60, LCDML_0_4, 1, "Sequencer", UI_func_sequencer); -LCDML_add(61, LCDML_0_4, 2, "Pattern Chain", UI_func_seq_pat_chain); -LCDML_add(62, LCDML_0_4, 3, "Seq. Length", UI_func_seq_lenght); -LCDML_add(63, LCDML_0_4, 4, "Tempo", NULL); -LCDML_add(64, LCDML_0_4, 5, "L.Transp.Key", UI_func_seq_live_transpose_oct); -LCDML_add(65, LCDML_0_4, 6, "LOAD Patterns", UI_func_seq_pattern_load); -LCDML_add(66, LCDML_0_4, 7, "SAVE Patterns", UI_func_seq_pattern_save); -LCDML_add(67, LCDML_0, 5, "System", NULL); -LCDML_add(68, LCDML_0_5, 1, "Stereo/Mono", UI_func_stereo_mono); -LCDML_add(69, LCDML_0_5, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); -LCDML_add(70, LCDML_0_5, 3, "Favorites", UI_func_favorites); -LCDML_add(71, LCDML_0_5, 4, "EEPROM Reset", UI_func_eeprom_reset); -LCDML_add(72, LCDML_0, 6, "Info", UI_func_information); -LCDML_addAdvanced(73, LCDML_0, 5, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); -#define _LCDML_DISP_cnt 73 +LCDML_add(61, LCDML_0_5, 2, "Velocity Edit", UI_func_seq_vel_editor); +LCDML_add(62, LCDML_0_4, 3, "Pattern Chain", UI_func_seq_pat_chain); +LCDML_add(63, LCDML_0_4, 4, "Seq. Length", UI_func_seq_lenght); +LCDML_add(64, LCDML_0_4, 5, "Tempo", UI_func_seq_tempo); +LCDML_add(65, LCDML_0_4, 6, "L.Transp.Key", UI_func_seq_live_transpose_oct); +LCDML_add(66, LCDML_0_5, 7, "Track Setup", UI_func_seq_track_setup); +LCDML_add(67, LCDML_0_5, 8, "Seq.Disp.Style", UI_func_seq_display_style); +LCDML_add(68, LCDML_0_4, 9, "LOAD Patterns", UI_func_seq_pattern_load); +LCDML_add(69, LCDML_0_4, 10, "SAVE Patterns", UI_func_seq_pattern_save); +LCDML_add(70, LCDML_0, 5, "System", NULL); +LCDML_add(71, LCDML_0_5, 1, "Stereo/Mono", UI_func_stereo_mono); +LCDML_add(72, LCDML_0_5, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); +LCDML_add(73, LCDML_0_5, 3, "Favorites", UI_func_favorites); +LCDML_add(74, LCDML_0_5, 4, "EEPROM Reset", UI_func_eeprom_reset); +LCDML_add(75, LCDML_0, 6, "Info", UI_func_information); +LCDML_addAdvanced(76, LCDML_0, 5, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); +#define _LCDML_DISP_cnt 76 #endif