|
|
@ -158,6 +158,9 @@ void UI_func_bc_range(uint8_t param); |
|
|
|
void UI_func_bc_assign(uint8_t param); |
|
|
|
void UI_func_bc_assign(uint8_t param); |
|
|
|
void UI_func_at_range(uint8_t param); |
|
|
|
void UI_func_at_range(uint8_t param); |
|
|
|
void UI_func_at_assign(uint8_t param); |
|
|
|
void UI_func_at_assign(uint8_t param); |
|
|
|
|
|
|
|
void UI_func_portamento_mode(uint8_t param); |
|
|
|
|
|
|
|
void UI_func_portamento_glissando(uint8_t param); |
|
|
|
|
|
|
|
void UI_func_portamento_time(uint8_t param); |
|
|
|
void UI_func_OP1(uint8_t param); |
|
|
|
void UI_func_OP1(uint8_t param); |
|
|
|
void UI_func_OP2(uint8_t param); |
|
|
|
void UI_func_OP2(uint8_t param); |
|
|
|
void UI_func_OP3(uint8_t param); |
|
|
|
void UI_func_OP3(uint8_t param); |
|
|
@ -211,9 +214,9 @@ LCDML_add(28, LCDML_0_1_1, 17, "Aftertouch 1", NULL); |
|
|
|
LCDML_add(29, LCDML_0_1_1_17, 1, "AT Range 1", UI_func_at_range); |
|
|
|
LCDML_add(29, LCDML_0_1_1_17, 1, "AT Range 1", UI_func_at_range); |
|
|
|
LCDML_add(30, LCDML_0_1_1_17, 2, "AT Assign 1", UI_func_at_assign); |
|
|
|
LCDML_add(30, LCDML_0_1_1_17, 2, "AT Assign 1", UI_func_at_assign); |
|
|
|
LCDML_add(31, LCDML_0_1_1, 18, "Portamento 1", NULL); |
|
|
|
LCDML_add(31, LCDML_0_1_1, 18, "Portamento 1", NULL); |
|
|
|
LCDML_add(32, LCDML_0_1_1_18, 1, "Port. Mode 1", UI_function_not_enabled); |
|
|
|
LCDML_add(32, LCDML_0_1_1_18, 1, "Port. Mode 1", UI_func_portamento_mode); |
|
|
|
LCDML_add(33, LCDML_0_1_1_18, 2, "Port. Gliss 1", UI_function_not_enabled); |
|
|
|
LCDML_add(33, LCDML_0_1_1_18, 2, "Port. Gliss 1", UI_func_portamento_glissando); |
|
|
|
LCDML_add(34, LCDML_0_1_1_18, 3, "Port. Time 1", UI_function_not_enabled); |
|
|
|
LCDML_add(34, LCDML_0_1_1_18, 3, "Port. Time 1", UI_func_portamento_time); |
|
|
|
LCDML_add(35, LCDML_0_1_1, 19, "Operator 1", NULL); |
|
|
|
LCDML_add(35, LCDML_0_1_1, 19, "Operator 1", NULL); |
|
|
|
LCDML_add(36, LCDML_0_1_1_19, 1, "OP1 1", UI_func_OP1); |
|
|
|
LCDML_add(36, LCDML_0_1_1_19, 1, "OP1 1", UI_func_OP1); |
|
|
|
LCDML_add(37, LCDML_0_1_1_19, 2, "OP2 1", UI_func_OP2); |
|
|
|
LCDML_add(37, LCDML_0_1_1_19, 2, "OP2 1", UI_func_OP2); |
|
|
@ -252,9 +255,9 @@ LCDML_add(69, LCDML_0_1_2, 17, "Aftertouch 2", NULL); |
|
|
|
LCDML_add(70, LCDML_0_1_2_17, 1, "AT Range 2", UI_func_at_range); |
|
|
|
LCDML_add(70, LCDML_0_1_2_17, 1, "AT Range 2", UI_func_at_range); |
|
|
|
LCDML_add(71, LCDML_0_1_2_17, 2, "AT Assign 2", UI_func_at_assign); |
|
|
|
LCDML_add(71, LCDML_0_1_2_17, 2, "AT Assign 2", UI_func_at_assign); |
|
|
|
LCDML_add(72, LCDML_0_1_2, 18, "Portamento 2", NULL); |
|
|
|
LCDML_add(72, LCDML_0_1_2, 18, "Portamento 2", NULL); |
|
|
|
LCDML_add(73, LCDML_0_1_2_18, 1, "Port. Mode 2", UI_function_not_enabled); |
|
|
|
LCDML_add(73, LCDML_0_1_2_18, 1, "Port. Mode 2", UI_func_portamento_mode); |
|
|
|
LCDML_add(74, LCDML_0_1_2_18, 2, "Port. Gliss 2", UI_function_not_enabled); |
|
|
|
LCDML_add(74, LCDML_0_1_2_18, 2, "Port. Gliss 2", UI_func_portamento_glissando); |
|
|
|
LCDML_add(75, LCDML_0_1_2_18, 3, "Port. Time 2", UI_function_not_enabled); |
|
|
|
LCDML_add(75, LCDML_0_1_2_18, 3, "Port. Time 2", UI_func_portamento_time); |
|
|
|
LCDML_add(76, LCDML_0_1_2, 19, "Operator 2", NULL); |
|
|
|
LCDML_add(76, LCDML_0_1_2, 19, "Operator 2", NULL); |
|
|
|
LCDML_add(77, LCDML_0_1_2_19, 1, "OP1 2", UI_func_OP1); |
|
|
|
LCDML_add(77, LCDML_0_1_2_19, 1, "OP1 2", UI_func_OP1); |
|
|
|
LCDML_add(78, LCDML_0_1_2_19, 2, "OP2 2", UI_func_OP2); |
|
|
|
LCDML_add(78, LCDML_0_1_2_19, 2, "OP2 2", UI_func_OP2); |
|
|
@ -311,9 +314,9 @@ LCDML_add(27, LCDML_0_1, 17, "Aftertouch", NULL); |
|
|
|
LCDML_add(28, LCDML_0_1_17, 1, "AT Range", UI_func_at_range); |
|
|
|
LCDML_add(28, LCDML_0_1_17, 1, "AT Range", UI_func_at_range); |
|
|
|
LCDML_add(29, LCDML_0_1_17, 2, "AT Assign", UI_func_at_assign); |
|
|
|
LCDML_add(29, LCDML_0_1_17, 2, "AT Assign", UI_func_at_assign); |
|
|
|
LCDML_add(30, LCDML_0_1, 18, "Portamento", NULL); |
|
|
|
LCDML_add(30, LCDML_0_1, 18, "Portamento", NULL); |
|
|
|
LCDML_add(31, LCDML_0_1_18, 1, "Port. Mode", UI_function_not_implemented); |
|
|
|
LCDML_add(31, LCDML_0_1_18, 1, "Port. Mode", UI_func_portamento_mode); |
|
|
|
LCDML_add(32, LCDML_0_1_18, 2, "Port. Gliss", UI_function_not_implemented); |
|
|
|
LCDML_add(32, LCDML_0_1_18, 2, "Port. Gliss", UI_func_portamento_glissando); |
|
|
|
LCDML_add(33, LCDML_0_1_18, 3, "Port. Time", UI_function_not_implemented); |
|
|
|
LCDML_add(33, LCDML_0_1_18, 3, "Port. Time", UI_func_portamento_time); |
|
|
|
LCDML_add(34, LCDML_0_1, 19, "Operator", NULL); |
|
|
|
LCDML_add(34, LCDML_0_1, 19, "Operator", NULL); |
|
|
|
LCDML_add(35, LCDML_0_1_19, 1, "OP1", UI_func_OP1); |
|
|
|
LCDML_add(35, LCDML_0_1_19, 1, "OP1", UI_func_OP1); |
|
|
|
LCDML_add(36, LCDML_0_1_19, 2, "OP2", UI_func_OP2); |
|
|
|
LCDML_add(36, LCDML_0_1_19, 2, "OP2", UI_func_OP2); |
|
|
@ -2663,7 +2666,175 @@ void UI_func_at_assign(uint8_t param) |
|
|
|
lcd.print(F("[PTCH AMP EG-BS]")); |
|
|
|
lcd.print(F("[PTCH AMP EG-BS]")); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
|
|
|
|
eeprom_write(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UI_func_portamento_mode(uint8_t param) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
uint8_t instance_id = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_getID() > MENU_ID_OF_INSTANCE_2) |
|
|
|
|
|
|
|
instance_id = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// setup function
|
|
|
|
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
|
|
|
lcd.print(F("Portamento Mode")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkEnter()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
LCDML.FUNC_goBackToMenu(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkDown() || LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkDown()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_mode < PORTAMENTO_MODE_MAX) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_mode++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_mode > PORTAMENTO_MODE_MIN) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_mode--; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setPortamentoMode(configuration.dexed[instance_id].portamento_mode, configuration.dexed[instance_id].portamento_glissando, configuration.dexed[instance_id].portamento_time); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
|
|
|
|
switch (configuration.dexed[instance_id].portamento_mode) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
case 0: |
|
|
|
|
|
|
|
lcd.print(F("[RETAIN ]")); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 1: |
|
|
|
|
|
|
|
lcd.print(F("[FOLLOW ]")); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
|
|
|
|
eeprom_write(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UI_func_portamento_glissando(uint8_t param) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
uint8_t instance_id = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_getID() > MENU_ID_OF_INSTANCE_2) |
|
|
|
|
|
|
|
instance_id = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// setup function
|
|
|
|
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
|
|
|
lcd.print(F("Portam. Gliss.")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkEnter()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
LCDML.FUNC_goBackToMenu(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkDown() || LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkDown()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_glissando < PORTAMENTO_GLISSANDO_MAX) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_glissando++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_glissando > PORTAMENTO_GLISSANDO_MIN) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_glissando--; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setPortamentoMode(configuration.dexed[instance_id].portamento_mode, configuration.dexed[instance_id].portamento_glissando, configuration.dexed[instance_id].portamento_time); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
|
|
|
|
switch (configuration.dexed[instance_id].portamento_glissando) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
case 0: |
|
|
|
|
|
|
|
lcd.print(F("[OFF ]")); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case 1: |
|
|
|
|
|
|
|
lcd.print(F("[ON ]")); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
|
|
|
|
eeprom_write(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UI_func_portamento_time(uint8_t param) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
uint8_t instance_id = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_getID() > MENU_ID_OF_INSTANCE_2) |
|
|
|
|
|
|
|
instance_id = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// setup function
|
|
|
|
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
|
|
|
|
lcd.print(F("Portam. Time")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkEnter()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
LCDML.FUNC_goBackToMenu(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkDown() || LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (LCDML.BT_checkDown()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_time < PORTAMENTO_TIME_MAX) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_time++; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (configuration.dexed[instance_id].portamento_time > PORTAMENTO_TIME_MIN) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
configuration.dexed[instance_id].portamento_time--; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setPortamentoMode(configuration.dexed[instance_id].portamento_mode, configuration.dexed[instance_id].portamento_glissando, configuration.dexed[instance_id].portamento_time); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
|
|
|
|
lcd_display_int(configuration.dexed[instance_id].portamento_time, 2, false, true, false); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|