|
|
|
@ -212,7 +212,6 @@ void UI_func_panorama(uint8_t param); |
|
|
|
|
void UI_func_stereo_mono(uint8_t param); |
|
|
|
|
void UI_func_note_refresh(uint8_t param); |
|
|
|
|
void UI_func_polyphony(uint8_t param); |
|
|
|
|
void UI_func_engine(uint8_t param); |
|
|
|
|
void UI_func_mono_poly(uint8_t param); |
|
|
|
|
void UI_func_pb_range(uint8_t param); |
|
|
|
|
void UI_func_pb_step(uint8_t param); |
|
|
|
@ -1375,11 +1374,18 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
lcd_special_chars(BLOCKBAR); |
|
|
|
|
if (configuration.fx.delay_sync[selected_instance_id] > 0) |
|
|
|
|
{ |
|
|
|
|
lcd_display_bar_int("Delay Sync", configuration.fx.delay_sync[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 4, false, false, true); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
#if DELAY_TIME_MAX >= 100 |
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 4, false, false, true); |
|
|
|
|
#else |
|
|
|
|
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); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
lcd_active_instance_number(selected_instance_id); |
|
|
|
|
UI_update_instance_icons(); |
|
|
|
|
} |
|
|
|
@ -1389,15 +1395,36 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
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()) |
|
|
|
|
{ |
|
|
|
|
if (configuration.fx.delay_time[selected_instance_id] == DELAY_TIME_MIN && configuration.fx.delay_sync[selected_instance_id] > DELAY_SYNC_MIN) |
|
|
|
|
{ |
|
|
|
|
// MIDI-sync delay
|
|
|
|
|
configuration.fx.delay_sync[selected_instance_id] = constrain(configuration.fx.delay_sync[selected_instance_id] - 1, DELAY_SYNC_MIN, DELAY_SYNC_MAX); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
configuration.fx.delay_time[selected_instance_id] = constrain(configuration.fx.delay_time[selected_instance_id] + ENCODER[ENC_R].speed(), DELAY_TIME_MIN, DELAY_TIME_MAX); |
|
|
|
|
MD_sendControlChange(configuration.dexed[selected_instance_id].midi_channel, 105, configuration.fx.delay_time[selected_instance_id]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
|
{ |
|
|
|
|
if (configuration.fx.delay_time[selected_instance_id] == DELAY_TIME_MIN && configuration.fx.delay_sync[selected_instance_id] > DELAY_SYNC_MIN) |
|
|
|
|
{ |
|
|
|
|
// MIDI-sync delay
|
|
|
|
|
configuration.fx.delay_sync[selected_instance_id] = constrain(configuration.fx.delay_sync[selected_instance_id] + 1, DELAY_SYNC_MIN, DELAY_SYNC_MAX); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
if (configuration.fx.delay_time[selected_instance_id] == DELAY_TIME_MIN) |
|
|
|
|
configuration.fx.delay_sync[selected_instance_id] = DELAY_SYNC_MIN + 1; |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
configuration.fx.delay_time[selected_instance_id] = constrain(configuration.fx.delay_time[selected_instance_id] - ENCODER[ENC_R].speed(), DELAY_TIME_MIN, DELAY_TIME_MAX); |
|
|
|
|
MD_sendControlChange(configuration.dexed[selected_instance_id].midi_channel, 105, configuration.fx.delay_time[selected_instance_id]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
else if (LCDML.BT_checkEnter()) |
|
|
|
|
{ |
|
|
|
@ -1408,6 +1435,12 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (configuration.fx.delay_sync[selected_instance_id] > 0) |
|
|
|
|
{ |
|
|
|
|
lcd_display_bar_int("Delay Sync", configuration.fx.delay_sync[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 4, false, false, true); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
#if DELAY_TIME_MAX >= 100 |
|
|
|
|
lcd_display_bar_int("Delay Time", configuration.fx.delay_time[selected_instance_id], 10.0, DELAY_TIME_MIN, DELAY_TIME_MAX, 4, false, false, true); |
|
|
|
|
#else |
|
|
|
@ -1418,14 +1451,17 @@ void UI_func_delay_time(uint8_t param) |
|
|
|
|
else |
|
|
|
|
delay_fx[selected_instance_id]->delay(0, constrain(configuration.fx.delay_time[selected_instance_id], DELAY_TIME_MIN, DELAY_TIME_MAX) * 10); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
{ |
|
|
|
|
lcd_special_chars(SCROLLBAR); |
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.delay_time[0]), configuration.fx.delay_time[0]); |
|
|
|
|
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.delay_sync[0]), configuration.fx.delay_sync[0]); |
|
|
|
|
#if NUM_DEXED > 1 |
|
|
|
|
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.delay_time[1]), configuration.fx.delay_time[1]); |
|
|
|
|
EEPROM.update(EEPROM_START_ADDRESS + offsetof(configuration_s, fx.delay_sync[1]), configuration.fx.delay_sync[1]); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -2287,11 +2323,6 @@ void UI_func_polyphony(uint8_t param) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UI_func_engine(uint8_t param) |
|
|
|
|
{ |
|
|
|
|
; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UI_func_mono_poly(uint8_t param) |
|
|
|
|
{ |
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
|