|
|
|
@ -157,7 +157,7 @@ const uint8_t meter_bar[5][8] = { |
|
|
|
|
}; |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
const uint8_t special_chars[17][8] = { |
|
|
|
|
const uint8_t special_chars[18][8] = { |
|
|
|
|
{B11111, B11011, B10011, B11011, B11011, B11011, B11011, B11111}, // [0] 1 small invers
|
|
|
|
|
{B11111, B11011, B10101, B11101, B11011, B10111, B10001, B11111}, // [1] 2 small invers
|
|
|
|
|
{B11111, B11011, B10011, B11011, B11011, B11011, B11011, B11111}, // [2] 1 OP invers
|
|
|
|
@ -174,7 +174,8 @@ const uint8_t special_chars[17][8] = { |
|
|
|
|
{B00000, B00000, B11111, B11111, B11111, B11111, B11111, B11111}, // [13] Level 6
|
|
|
|
|
{B00000, B11111, B11111, B11111, B11111, B11111, B11111, B11111}, // [14] Level 7
|
|
|
|
|
{B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111}, // [15] Level 8
|
|
|
|
|
{B00100, B00110, B00101, B00101, B01101, B11101, B11100, B11000} // [16] Note
|
|
|
|
|
{B00100, B00110, B00101, B00101, B01101, B11101, B11100, B11000}, // [16] Note
|
|
|
|
|
{B01110, B10001, B10001, B11111, B11011, B11011, B11111, B00000} // [17] Disabled 2nd instance symbol
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
enum { SCROLLBAR, BLOCKBAR, METERBAR }; |
|
|
|
@ -592,16 +593,6 @@ void lcdml_menu_control(void) |
|
|
|
|
#endif |
|
|
|
|
//LCDML.BT_quit();
|
|
|
|
|
encoderDir[ENC_R].ButtonLong(true); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
if (LCDML.FUNC_getID() < 0xff) |
|
|
|
|
LCDML.FUNC_setGBAToLastFunc(); |
|
|
|
|
else |
|
|
|
|
LCDML.FUNC_setGBAToLastCursorPos(); |
|
|
|
|
|
|
|
|
|
//LCDML.FUNC_setGBA();
|
|
|
|
|
LCDML.OTHER_jumpToFunc(UI_func_voice_select); |
|
|
|
|
*/ |
|
|
|
|
} |
|
|
|
|
else if ((millis() - g_LCDML_CONTROL_button_press_time[ENC_R]) >= BUT_DEBOUNCE_MS) |
|
|
|
|
{ |
|
|
|
@ -622,12 +613,27 @@ void lcdml_menu_control(void) |
|
|
|
|
#endif |
|
|
|
|
encoderDir[ENC_R].ButtonLong(true); |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_getID() < 0xff) |
|
|
|
|
LCDML.FUNC_setGBAToLastFunc(); |
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_voice_select)) |
|
|
|
|
{ |
|
|
|
|
selected_instance_id = !selected_instance_id; |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
LCDML.OTHER_updateFunc(); |
|
|
|
|
LCDML.loop_menu(); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
LCDML.FUNC_setGBAToLastCursorPos(); |
|
|
|
|
{ |
|
|
|
|
#endif |
|
|
|
|
if (LCDML.FUNC_getID() < 0xff) |
|
|
|
|
LCDML.FUNC_setGBAToLastFunc(); |
|
|
|
|
else |
|
|
|
|
LCDML.FUNC_setGBAToLastCursorPos(); |
|
|
|
|
|
|
|
|
|
LCDML.OTHER_jumpToFunc(UI_func_voice_select); |
|
|
|
|
LCDML.OTHER_jumpToFunc(UI_func_voice_select); |
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// LEFT
|
|
|
|
@ -708,10 +714,6 @@ void lcdml_menu_control(void) |
|
|
|
|
#endif |
|
|
|
|
//encoderDir[ENC_L].ButtonLong(true);
|
|
|
|
|
//LCDML.BT_quit();
|
|
|
|
|
/*
|
|
|
|
|
for (uint8_t i = 0; i < NUM_DEXED; i++) |
|
|
|
|
MicroDexed[i]->panic(); |
|
|
|
|
*/ |
|
|
|
|
} |
|
|
|
|
else if ((millis() - g_LCDML_CONTROL_button_press_time[ENC_L]) >= BUT_DEBOUNCE_MS) |
|
|
|
|
{ |
|
|
|
@ -907,7 +909,7 @@ void UI_func_reverb_roomsize(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Reverb Room", configuration.fx.reverb_roomsize, 1.0, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Reverb Room", configuration.fx.reverb_roomsize, 1.0, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 2, false, false, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -919,7 +921,7 @@ void UI_func_reverb_roomsize(uint8_t param) |
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
|
configuration.fx.reverb_roomsize = constrain(configuration.fx.reverb_roomsize - ENCODER[ENC_R].speed(), REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX); |
|
|
|
|
} |
|
|
|
|
lcd_display_bar_int("Reverb Room", configuration.fx.reverb_roomsize, 1.0, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Reverb Room", configuration.fx.reverb_roomsize, 1.0, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
freeverb_r.roomsize(mapfloat(configuration.fx.reverb_roomsize, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 0.0, 1.0)); |
|
|
|
|
freeverb_l.roomsize(mapfloat(configuration.fx.reverb_roomsize, REVERB_ROOMSIZE_MIN, REVERB_ROOMSIZE_MAX, 0.0, 1.0)); |
|
|
|
@ -940,7 +942,7 @@ void UI_func_reverb_damping(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Reverb Damp.", configuration.fx.reverb_damping, 1.0, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Reverb Damp.", configuration.fx.reverb_damping, 1.0, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 2, false, false, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -953,7 +955,7 @@ void UI_func_reverb_damping(uint8_t param) |
|
|
|
|
configuration.fx.reverb_damping = constrain(configuration.fx.reverb_damping - ENCODER[ENC_R].speed(), REVERB_DAMPING_MIN, REVERB_DAMPING_MAX); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Reverb Damp.", configuration.fx.reverb_damping, 1.0, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Reverb Damp.", configuration.fx.reverb_damping, 1.0, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
freeverb_l.damping(mapfloat(configuration.fx.reverb_damping, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 0.0, 1.0)); |
|
|
|
|
freeverb_r.damping(mapfloat(configuration.fx.reverb_damping, REVERB_DAMPING_MIN, REVERB_DAMPING_MAX, 0.0, 1.0)); |
|
|
|
@ -974,7 +976,7 @@ void UI_func_reverb_level(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Reverb Level", configuration.fx.reverb_level, 1.0, REVERB_LEVEL_MIN, REVERB_LEVEL_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Reverb Level", configuration.fx.reverb_level, 1.0, REVERB_LEVEL_MIN, REVERB_LEVEL_MAX, 2, false, false, true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -987,7 +989,7 @@ void UI_func_reverb_level(uint8_t param) |
|
|
|
|
configuration.fx.reverb_level = constrain(configuration.fx.reverb_level - ENCODER[ENC_R].speed(), REVERB_LEVEL_MIN, REVERB_LEVEL_MAX); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Reverb Level", configuration.fx.reverb_level, 1.0, REVERB_LEVEL_MIN, REVERB_LEVEL_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Reverb Level", configuration.fx.reverb_level, 1.0, REVERB_LEVEL_MIN, REVERB_LEVEL_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
master_mixer_r.gain(3, configuration.fx.reverb_level / 100.0); |
|
|
|
|
master_mixer_l.gain(3, configuration.fx.reverb_level / 100.0); |
|
|
|
@ -1010,14 +1012,11 @@ void UI_func_chorus_frequency(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_float("Chorus Frq.", configuration.fx.chorus_frequency[selected_instance_id], 0.1, CHORUS_FREQUENCY_MIN, CHORUS_FREQUENCY_MAX, 2, 1, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1065,13 +1064,11 @@ void UI_func_chorus_waveform(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Chorus Waveform")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1128,15 +1125,13 @@ void UI_func_chorus_depth(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Chorus Dpt.", configuration.fx.chorus_depth[selected_instance_id], 1.0, CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Chorus Dpt.", configuration.fx.chorus_depth[selected_instance_id], 1.0, CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1160,7 +1155,7 @@ void UI_func_chorus_depth(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Chorus Dpt.", configuration.fx.chorus_depth[selected_instance_id], 1.0, CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Chorus Dpt.", configuration.fx.chorus_depth[selected_instance_id], 1.0, CHORUS_DEPTH_MIN, CHORUS_DEPTH_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
chorus_modulator[selected_instance_id]->amplitude(configuration.fx.chorus_depth[selected_instance_id] / 100.0); |
|
|
|
|
} |
|
|
|
@ -1183,15 +1178,13 @@ void UI_func_chorus_level(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Chorus Lvl.", configuration.fx.chorus_level[selected_instance_id], 1.0, CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Chorus Lvl.", configuration.fx.chorus_level[selected_instance_id], 1.0, CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1215,7 +1208,7 @@ void UI_func_chorus_level(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Chorus Lvl.", configuration.fx.chorus_level[selected_instance_id], 1.0, CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Chorus Lvl.", configuration.fx.chorus_level[selected_instance_id], 1.0, CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
//chorus_mixer[selected_instance_id]->gain(0, 1.0 - pseudo_log_curve(mapfloat(configuration.fx.chorus_level[selected_instance_id], CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 0.0, 1.0), true));
|
|
|
|
|
//chorus_mixer[selected_instance_id]->gain(1, pseudo_log_curve(mapfloat(configuration.fx.chorus_level[selected_instance_id], CHORUS_LEVEL_MIN, CHORUS_LEVEL_MAX, 0.0, 1.0), true));
|
|
|
|
@ -1241,15 +1234,13 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1273,7 +1264,7 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
delay_fx[selected_instance_id]->delay(0, configuration.fx.delay_time[selected_instance_id] * 10); |
|
|
|
|
} |
|
|
|
@ -1296,15 +1287,13 @@ void UI_func_delay_feedback(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Delay Feedb.", configuration.fx.delay_feedback[selected_instance_id], 1.0, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Delay Feedb.", configuration.fx.delay_feedback[selected_instance_id], 1.0, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1328,7 +1317,7 @@ void UI_func_delay_feedback(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Delay Feedb.", configuration.fx.delay_feedback[selected_instance_id], 1.0, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Delay Feedb.", configuration.fx.delay_feedback[selected_instance_id], 1.0, DELAY_FEEDBACK_MIN, DELAY_FEEDBACK_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
delay_fb_mixer[selected_instance_id]->gain(1, configuration.fx.delay_feedback[selected_instance_id] / 100.0); // amount of feedback
|
|
|
|
|
} |
|
|
|
@ -1351,15 +1340,13 @@ void UI_func_delay_level(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Delay Lvl.", configuration.fx.delay_level[selected_instance_id], 1.0, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Delay Lvl.", configuration.fx.delay_level[selected_instance_id], 1.0, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1383,7 +1370,7 @@ void UI_func_delay_level(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Delay Lvl.", configuration.fx.delay_level[selected_instance_id], 1.0, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Delay Lvl.", configuration.fx.delay_level[selected_instance_id], 1.0, DELAY_LEVEL_MIN, DELAY_LEVEL_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
delay_mixer[selected_instance_id]->gain(1, mapfloat(configuration.fx.delay_level[selected_instance_id], DELAY_LEVEL_MIN, DELAY_LEVEL_MAX, 0.0, 1.0)); |
|
|
|
|
} |
|
|
|
@ -1406,15 +1393,13 @@ void UI_func_reverb_send(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Reverb Send", configuration.fx.reverb_send[selected_instance_id], 1.0, REVERB_SEND_MIN, REVERB_SEND_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Reverb Send", configuration.fx.reverb_send[selected_instance_id], 1.0, REVERB_SEND_MIN, REVERB_SEND_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1438,7 +1423,7 @@ void UI_func_reverb_send(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Reverb Send", configuration.fx.reverb_send[selected_instance_id], 1.0, REVERB_SEND_MIN, REVERB_SEND_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Reverb Send", configuration.fx.reverb_send[selected_instance_id], 1.0, REVERB_SEND_MIN, REVERB_SEND_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
reverb_mixer_r.gain(selected_instance_id, configuration.fx.reverb_send[selected_instance_id] / 100.0); |
|
|
|
|
reverb_mixer_l.gain(selected_instance_id, configuration.fx.reverb_send[selected_instance_id] / 100.0); |
|
|
|
@ -1462,15 +1447,13 @@ void UI_func_filter_cutoff(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Filter Cut", configuration.dexed[selected_instance_id].filter_cutoff, 1.0, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Filter Cut", configuration.dexed[selected_instance_id].filter_cutoff, 1.0, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1494,7 +1477,7 @@ void UI_func_filter_cutoff(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Filter Cut", configuration.dexed[selected_instance_id].filter_cutoff, 1.0, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Filter Cut", configuration.dexed[selected_instance_id].filter_cutoff, 1.0, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
MicroDexed[selected_instance_id]->fx.Cutoff = mapfloat(configuration.dexed[selected_instance_id].filter_cutoff, FILTER_CUTOFF_MIN, FILTER_CUTOFF_MAX, 1.0, 0.0); |
|
|
|
|
} |
|
|
|
@ -1517,15 +1500,13 @@ void UI_func_filter_resonance(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Filter Res", configuration.dexed[selected_instance_id].filter_resonance, 1.0, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Filter Res", configuration.dexed[selected_instance_id].filter_resonance, 1.0, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1549,7 +1530,7 @@ void UI_func_filter_resonance(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Filter Res", configuration.dexed[selected_instance_id].filter_resonance, 1.0, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Filter Res", configuration.dexed[selected_instance_id].filter_resonance, 1.0, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
MicroDexed[selected_instance_id]->fx.Reso = mapfloat(configuration.dexed[selected_instance_id].filter_resonance, FILTER_RESONANCE_MIN, FILTER_RESONANCE_MAX, 1.0, 0.0); |
|
|
|
|
} |
|
|
|
@ -1575,13 +1556,11 @@ void UI_func_transpose(uint8_t param) |
|
|
|
|
lcd_special_chars(METERBAR); |
|
|
|
|
lcd_display_meter_int("Transpose", configuration.dexed[selected_instance_id].transpose, 1.0, -24.0, TRANSPOSE_MIN, TRANSPOSE_MAX, 2, false, true, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1631,13 +1610,11 @@ void UI_func_tune(uint8_t param) |
|
|
|
|
lcd_special_chars(METERBAR); |
|
|
|
|
lcd_display_meter_int("Fine Tune", configuration.dexed[selected_instance_id].tune, 1.0, -100.0, TUNE_MIN, TUNE_MAX, 2, false, true, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1687,13 +1664,11 @@ void UI_func_midi_channel(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("MIDI Channel")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1761,13 +1736,11 @@ void UI_func_lowest_note(uint8_t param) |
|
|
|
|
lcd.print(note_name); |
|
|
|
|
lcd.print(F("]")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1822,13 +1795,11 @@ void UI_func_highest_note(uint8_t param) |
|
|
|
|
lcd.print(note_name); |
|
|
|
|
lcd.print(F("]")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1876,13 +1847,11 @@ void UI_func_sound_intensity(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Voice Level", configuration.dexed[selected_instance_id].sound_intensity, 1.0, SOUND_INTENSITY_MIN, SOUND_INTENSITY_MAX, 3, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -1940,13 +1909,11 @@ void UI_func_panorama(uint8_t param) |
|
|
|
|
lcd_special_chars(METERBAR); |
|
|
|
|
lcd_display_meter_float("Panorama", configuration.dexed[selected_instance_id].pan, 0.05, -20.0, PANORAMA_MIN, PANORAMA_MAX, 1, 1, false, true, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2059,15 +2026,13 @@ void UI_func_polyphony(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Polyphony", configuration.dexed[selected_instance_id].polyphony, 1.0, POLYPHONY_MIN, POLYPHONY_MAX, 3, false, false, true); |
|
|
|
|
lcd_display_bar_int("Polyphony", configuration.dexed[selected_instance_id].polyphony, 1.0, POLYPHONY_MIN, POLYPHONY_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2076,7 +2041,9 @@ void UI_func_polyphony(uint8_t param) |
|
|
|
|
{ |
|
|
|
|
if (LCDML.BT_checkDown()) |
|
|
|
|
{ |
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
if (configuration.dexed[0].polyphony + configuration.dexed[1].polyphony + 1 <= POLYPHONY_MAX) |
|
|
|
|
#endif |
|
|
|
|
configuration.dexed[selected_instance_id].polyphony = constrain(configuration.dexed[selected_instance_id].polyphony + 1, POLYPHONY_MIN, POLYPHONY_MAX); |
|
|
|
|
} |
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
@ -2096,11 +2063,11 @@ void UI_func_polyphony(uint8_t param) |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
lcd_display_bar_int("Polyphony", configuration.dexed[selected_instance_id].polyphony, 1.0, POLYPHONY_MIN, POLYPHONY_MAX, 3, false, false, false); |
|
|
|
|
lcd_display_bar_int("Polyphony", configuration.dexed[selected_instance_id].polyphony, 1.0, POLYPHONY_MIN, POLYPHONY_MAX, 2, false, false, false); |
|
|
|
|
|
|
|
|
|
MicroDexed[selected_instance_id]->setMaxNotes(configuration.dexed[selected_instance_id].polyphony); |
|
|
|
|
} |
|
|
|
@ -2125,13 +2092,11 @@ void UI_func_engine(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Engine")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2191,13 +2156,11 @@ void UI_func_mono_poly(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Mono/Polyphonic")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2218,8 +2181,8 @@ void UI_func_mono_poly(uint8_t param) |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MicroDexed[selected_instance_id]->setMonoMode(!configuration.dexed[selected_instance_id].monopoly); |
|
|
|
@ -2257,13 +2220,11 @@ void UI_func_note_refresh(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Note Refresh")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2322,13 +2283,11 @@ void UI_func_pb_range(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("PB Range", configuration.dexed[selected_instance_id].pb_range, 1.0, PB_RANGE_MIN, PB_RANGE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2377,13 +2336,11 @@ void UI_func_pb_step(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("PB Step", configuration.dexed[selected_instance_id].pb_step, 1.0, PB_STEP_MIN, PB_STEP_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2432,13 +2389,11 @@ void UI_func_mw_range(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("MW Range", configuration.dexed[selected_instance_id].mw_range, 1.0, MW_RANGE_MIN, MW_RANGE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2487,13 +2442,11 @@ void UI_func_mw_assign(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("MW Assign")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2569,13 +2522,11 @@ void UI_func_mw_mode(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("MW Mode")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2637,14 +2588,11 @@ void UI_func_fc_range(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("FC Range", configuration.dexed[selected_instance_id].fc_range, 1.0, FC_RANGE_MIN, FC_RANGE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2693,13 +2641,11 @@ void UI_func_fc_assign(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("FC Assign")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2775,13 +2721,11 @@ void UI_func_fc_mode(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("FC Mode")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2843,13 +2787,11 @@ void UI_func_bc_range(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("BC Range", configuration.dexed[selected_instance_id].bc_range, 1.0, BC_RANGE_MIN, BC_RANGE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2898,13 +2840,11 @@ void UI_func_bc_assign(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("BC Assign")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -2980,13 +2920,11 @@ void UI_func_bc_mode(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("BC Mode")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3048,13 +2986,11 @@ void UI_func_at_range(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("AT Range", configuration.dexed[selected_instance_id].at_range, 1.0, AT_RANGE_MIN, AT_RANGE_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3104,13 +3040,11 @@ void UI_func_at_assign(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("AT Assign")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3186,13 +3120,11 @@ void UI_func_at_mode(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("AT Mode")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3254,13 +3186,11 @@ void UI_func_portamento_mode(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Portamento Mode")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3324,13 +3254,11 @@ void UI_func_portamento_glissando(uint8_t param) |
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
lcd.print(F("Portam. Gliss.")); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3388,13 +3316,11 @@ void UI_func_portamento_time(uint8_t param) |
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
lcd_display_bar_int("Portam. Time", configuration.dexed[selected_instance_id].portamento_time, 1.0, PORTAMENTO_TIME_MIN, PORTAMENTO_TIME_MAX, 2, false, false, true); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
@ -3450,12 +3376,10 @@ void UI_handle_OP(uint8_t param) |
|
|
|
|
for (uint8_t i = 2; i < 8; i++) |
|
|
|
|
lcd.write(i); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
lcd.setCursor(op_selected, 1); |
|
|
|
|
lcd.blink(); |
|
|
|
@ -3701,19 +3625,17 @@ void UI_func_voice_select(uint8_t param) |
|
|
|
|
if (!get_voice_by_bank_name(configuration.performance.bank[selected_instance_id], bank_name, configuration.performance.voice[selected_instance_id], voice_name, sizeof(voice_name))) |
|
|
|
|
strncpy(voice_name, "*ERROR*", sizeof(voice_name)); |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef TEENSY3 |
|
|
|
|
#ifdef TEENSY3_6 |
|
|
|
|
lcd.createChar(6, (uint8_t*)special_chars[16]); // MIDI activity note symbol
|
|
|
|
|
lcd.createChar(7, (uint8_t*)special_chars[16]); // MIDI activity note symbol
|
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
|
{ |
|
|
|
|
char bank_name[BANK_NAME_LEN]; |
|
|
|
@ -3807,7 +3729,6 @@ void UI_func_voice_select(uint8_t param) |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#if NUM_DEXED == 1 |
|
|
|
|
else if (LCDML.BT_checkEnter()) |
|
|
|
|
{ |
|
|
|
|
if (menu_voice_select == MENU_VOICE_BANK) |
|
|
|
@ -3815,38 +3736,6 @@ void UI_func_voice_select(uint8_t param) |
|
|
|
|
else |
|
|
|
|
menu_voice_select = MENU_VOICE_BANK; |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
else if (LCDML.BT_checkEnter()) |
|
|
|
|
{ |
|
|
|
|
if (menu_voice_select == MENU_VOICE_BANK) |
|
|
|
|
{ |
|
|
|
|
menu_voice_select = MENU_VOICE_SOUND; |
|
|
|
|
selected_instance_id = !selected_instance_id; |
|
|
|
|
|
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
|
|
|
|
|
char bank_name[BANK_NAME_LEN]; |
|
|
|
|
char voice_name[VOICE_NAME_LEN]; |
|
|
|
|
|
|
|
|
|
if (!get_bank_name(configuration.performance.bank[selected_instance_id], bank_name, sizeof(bank_name))) |
|
|
|
|
strncpy(bank_name, "*ERROR*", sizeof(bank_name)); |
|
|
|
|
if (!get_voice_by_bank_name(configuration.performance.bank[selected_instance_id], bank_name, configuration.performance.voice[selected_instance_id], voice_name, sizeof(voice_name))) |
|
|
|
|
strncpy(voice_name, "*ERROR*", sizeof(voice_name)); |
|
|
|
|
|
|
|
|
|
lcd.show(0, 0, 2, configuration.performance.bank[selected_instance_id]); |
|
|
|
|
lcd.show(1, 0, 2, configuration.performance.voice[selected_instance_id] + 1); |
|
|
|
|
lcd.show(0, 3, 10, bank_name); |
|
|
|
|
lcd.show(1, 3, 10, voice_name); |
|
|
|
|
|
|
|
|
|
lcd.setCursor(14, 0); |
|
|
|
|
lcd.write(0); |
|
|
|
|
lcd.setCursor(15, 0); |
|
|
|
|
lcd.write(1); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
menu_voice_select = MENU_VOICE_BANK; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (strlen(g_bank_name[selected_instance_id]) > 0) |
|
|
|
@ -5163,8 +5052,13 @@ void lcd_active_instance_number(uint8_t instance_id) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if NUM_DEXED == 1 |
|
|
|
|
lcd.createChar(0, instance_num[0]); |
|
|
|
|
lcd.createChar(1, (uint8_t*)special_chars[17]); |
|
|
|
|
#else |
|
|
|
|
lcd.createChar(0, instance_num[0]); |
|
|
|
|
lcd.createChar(1, instance_num[1]); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void lcd_OP_active_instance_number(uint8_t instance_id, uint8_t op) |
|
|
|
|