|
|
@ -368,7 +368,7 @@ void setup_ui(void) { |
|
|
|
lcd.clear(); |
|
|
|
lcd.clear(); |
|
|
|
lcd.setFont(u8x8_font_amstrad_cpc_extended_f); |
|
|
|
lcd.setFont(u8x8_font_amstrad_cpc_extended_f); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
lcd.setCursor(1, 0); |
|
|
|
lcd.setCursor(3, 0); |
|
|
|
lcd.print(F("MicroDexed")); |
|
|
|
lcd.print(F("MicroDexed")); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.print(F("(c)parasiTstudio")); |
|
|
|
lcd.print(F("(c)parasiTstudio")); |
|
|
@ -556,14 +556,14 @@ void encoder_right_up(void) |
|
|
|
switch (menu_voice) |
|
|
|
switch (menu_voice) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case MENU_VOICE_BANK: |
|
|
|
case MENU_VOICE_BANK: |
|
|
|
if (configuration.bank[instance_id] < MAX_BANKS) |
|
|
|
if (configuration.dexed[instance_id].bank < MAX_BANKS) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bank[instance_id]++; |
|
|
|
configuration.dexed[instance_id].bank++; |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(false); |
|
|
|
change_disp_sd(false); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
load_sysex(configuration.bank[instance_id], configuration.voice[instance_id], instance_id); |
|
|
|
load_sysex(configuration.dexed[instance_id].bank, configuration.dexed[instance_id].voice, instance_id); |
|
|
|
get_voice_names_from_bank(configuration.bank[instance_id], instance_id); |
|
|
|
get_voice_names_from_bank(configuration.dexed[instance_id].bank, instance_id); |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(true); |
|
|
|
change_disp_sd(true); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -571,21 +571,21 @@ void encoder_right_up(void) |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case MENU_VOICE_SOUND: |
|
|
|
case MENU_VOICE_SOUND: |
|
|
|
if (configuration.voice[instance_id] < MAX_VOICES - 1) |
|
|
|
if (configuration.dexed[instance_id].voice < MAX_VOICES - 1) |
|
|
|
configuration.voice[instance_id]++; |
|
|
|
configuration.dexed[instance_id].voice++; |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bank[instance_id] < MAX_BANKS) |
|
|
|
if (configuration.dexed[instance_id].bank < MAX_BANKS) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bank[instance_id]++; |
|
|
|
configuration.dexed[instance_id].bank++; |
|
|
|
configuration.voice[instance_id] = 0; |
|
|
|
configuration.dexed[instance_id].voice = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(false); |
|
|
|
change_disp_sd(false); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
load_sysex(configuration.bank[instance_id], configuration.voice[instance_id], instance_id); |
|
|
|
load_sysex(configuration.dexed[instance_id].bank, configuration.dexed[instance_id].voice, instance_id); |
|
|
|
get_voice_names_from_bank(configuration.bank[instance_id], instance_id); |
|
|
|
get_voice_names_from_bank(configuration.dexed[instance_id].bank, instance_id); |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(true); |
|
|
|
change_disp_sd(true); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -618,15 +618,15 @@ void encoder_right_down(void) |
|
|
|
switch (menu_voice) |
|
|
|
switch (menu_voice) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case MENU_VOICE_BANK: |
|
|
|
case MENU_VOICE_BANK: |
|
|
|
if (configuration.bank[instance_id] > 0) |
|
|
|
if (configuration.dexed[instance_id].bank > 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bank[instance_id]--; |
|
|
|
configuration.dexed[instance_id].bank--; |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(false); |
|
|
|
change_disp_sd(false); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
load_sysex(configuration.bank[instance_id], configuration.voice[instance_id], instance_id); |
|
|
|
load_sysex(configuration.dexed[instance_id].bank, configuration.dexed[instance_id].voice, instance_id); |
|
|
|
get_voice_names_from_bank(configuration.bank[instance_id], instance_id); |
|
|
|
get_voice_names_from_bank(configuration.dexed[instance_id].bank, instance_id); |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(true); |
|
|
|
change_disp_sd(true); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -634,21 +634,21 @@ void encoder_right_down(void) |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case MENU_VOICE_SOUND: |
|
|
|
case MENU_VOICE_SOUND: |
|
|
|
if (configuration.voice[instance_id] > 0) |
|
|
|
if (configuration.dexed[instance_id].voice > 0) |
|
|
|
configuration.voice[instance_id]--; |
|
|
|
configuration.dexed[instance_id].voice--; |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bank[instance_id] > 0) |
|
|
|
if (configuration.dexed[instance_id].bank > 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bank[instance_id]--; |
|
|
|
configuration.dexed[instance_id].bank--; |
|
|
|
configuration.voice[instance_id] = 31; |
|
|
|
configuration.dexed[instance_id].voice = 31; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(false); |
|
|
|
change_disp_sd(false); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
load_sysex(configuration.bank[instance_id], configuration.voice[instance_id], instance_id); |
|
|
|
load_sysex(configuration.dexed[instance_id].bank, configuration.dexed[instance_id].voice, instance_id); |
|
|
|
get_voice_names_from_bank(configuration.bank[instance_id], instance_id); |
|
|
|
get_voice_names_from_bank(configuration.dexed[instance_id].bank, instance_id); |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
#ifdef DISPLAY_LCD_SPI |
|
|
|
change_disp_sd(true); |
|
|
|
change_disp_sd(true); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -906,6 +906,11 @@ void UI_func_reverb_roomsize(uint8_t param) |
|
|
|
// setup function
|
|
|
|
// setup function
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Reverb Roomsize")); |
|
|
|
lcd.print(F("Reverb Roomsize")); |
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_reverb_roomsize()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.roomsize=")); |
|
|
|
|
|
|
|
Serial.println(configuration.reverb_roomsize, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
@ -937,7 +942,11 @@ void UI_func_reverb_roomsize(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Leaving UI_func_reverb_roomsize()")); |
|
|
|
|
|
|
|
Serial.print(F("reverb_roomsize=")); |
|
|
|
|
|
|
|
Serial.println(configuration.reverb_roomsize, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
#else |
|
|
|
#else |
|
|
@ -953,6 +962,11 @@ void UI_func_reverb_damping(uint8_t param) |
|
|
|
// setup function
|
|
|
|
// setup function
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Reverb Damping")); |
|
|
|
lcd.print(F("Reverb Damping")); |
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_reverb_damping()")); |
|
|
|
|
|
|
|
Serial.print(F("reverb_damping=")); |
|
|
|
|
|
|
|
Serial.println(configuration.reverb_damping, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
@ -984,7 +998,11 @@ void UI_func_reverb_damping(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Leaving UI_func_reverb_damping()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.reverb_damping=")); |
|
|
|
|
|
|
|
Serial.println(configuration.reverb_damping, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
#else |
|
|
|
#else |
|
|
@ -1005,6 +1023,13 @@ void UI_func_reverb_level(uint8_t param) |
|
|
|
// setup function
|
|
|
|
// setup function
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Reverb Level")); |
|
|
|
lcd.print(F("Reverb Level")); |
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_reverb_level()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.dexed[")); |
|
|
|
|
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
|
|
|
|
Serial.print(F("].reverb_level=")); |
|
|
|
|
|
|
|
Serial.println(configuration.dexed[instance_id].reverb_level, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
@ -1015,30 +1040,36 @@ void UI_func_reverb_level(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.reverb_level[instance_id] < REVERB_LEVEL_MAX) |
|
|
|
if (configuration.dexed[instance_id].reverb_level < REVERB_LEVEL_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.reverb_level[instance_id]++; |
|
|
|
configuration.dexed[instance_id].reverb_level++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.reverb_level[instance_id] > REVERB_LEVEL_MIN) |
|
|
|
if (configuration.dexed[instance_id].reverb_level > REVERB_LEVEL_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.reverb_level[instance_id]--; |
|
|
|
configuration.dexed[instance_id].reverb_level--; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.reverb_level[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].reverb_level, 3, true, true, false); |
|
|
|
|
|
|
|
|
|
|
|
master_mixer_r.gain(REVERB, configuration.reverb_level[instance_id] / 100.0); |
|
|
|
master_mixer_r.gain(REVERB, configuration.dexed[instance_id].reverb_level / 100.0); |
|
|
|
master_mixer_l.gain(REVERB, configuration.reverb_level[instance_id] / 100.0); |
|
|
|
master_mixer_l.gain(REVERB, configuration.dexed[instance_id].reverb_level / 100.0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Leaving UI_func_reverb_level()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.dexed[")); |
|
|
|
|
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
|
|
|
|
Serial.print(F("].reverb_level=")); |
|
|
|
|
|
|
|
Serial.println(configuration.dexed[instance_id].reverb_level, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
#else |
|
|
|
#else |
|
|
@ -1053,6 +1084,11 @@ void UI_func_chorus_frequency(uint8_t param) |
|
|
|
// setup function
|
|
|
|
// setup function
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Chorus Frequency")); |
|
|
|
lcd.print(F("Chorus Frequency")); |
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_chorus_frequency()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.chorus_frequency=")); |
|
|
|
|
|
|
|
Serial.println(configuration.chorus_frequency, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
@ -1085,7 +1121,11 @@ void UI_func_chorus_frequency(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Leaving UI_func_chorus_frequency()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.chorus_frequency=")); |
|
|
|
|
|
|
|
Serial.println(configuration.chorus_frequency, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1210,24 +1250,24 @@ void UI_func_chorus_level(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.chorus_level[instance_id] < CHORUS_LEVEL_MAX) |
|
|
|
if (configuration.dexed[instance_id].chorus_level < CHORUS_LEVEL_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.chorus_level[instance_id]++; |
|
|
|
configuration.dexed[instance_id].chorus_level++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.chorus_level[instance_id] > CHORUS_LEVEL_MIN) |
|
|
|
if (configuration.dexed[instance_id].chorus_level > CHORUS_LEVEL_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.chorus_level[instance_id]--; |
|
|
|
configuration.dexed[instance_id].chorus_level--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.chorus_level[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].chorus_level, 3, true, true, false); |
|
|
|
|
|
|
|
|
|
|
|
master_mixer_r.gain(CHORUS, configuration.chorus_level[instance_id] / 100.0); |
|
|
|
master_mixer_r.gain(CHORUS, configuration.dexed[instance_id].chorus_level / 100.0); |
|
|
|
master_mixer_l.gain(CHORUS, configuration.chorus_level[instance_id] / 100.0); |
|
|
|
master_mixer_l.gain(CHORUS, configuration.dexed[instance_id].chorus_level / 100.0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1347,24 +1387,24 @@ void UI_func_delay_level(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.delay_level[instance_id] < DELAY_LEVEL_MAX) |
|
|
|
if (configuration.dexed[instance_id].delay_level < DELAY_LEVEL_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.delay_level[instance_id]++; |
|
|
|
configuration.dexed[instance_id].delay_level++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.delay_level[instance_id] > DELAY_LEVEL_MIN) |
|
|
|
if (configuration.dexed[instance_id].delay_level > DELAY_LEVEL_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.delay_level[instance_id]--; |
|
|
|
configuration.dexed[instance_id].delay_level--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.delay_level[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].delay_level, 3, true, true, false); |
|
|
|
|
|
|
|
|
|
|
|
master_mixer_r.gain(DELAY, configuration.delay_level[instance_id] / 100.0); |
|
|
|
master_mixer_r.gain(DELAY, configuration.dexed[instance_id].delay_level / 100.0); |
|
|
|
master_mixer_l.gain(DELAY, configuration.delay_level[instance_id] / 100.0); |
|
|
|
master_mixer_l.gain(DELAY, configuration.dexed[instance_id].delay_level / 100.0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1396,30 +1436,27 @@ void UI_func_filter_cutoff(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.filter_cutoff[instance_id] < FILTER_CUTOFF_MAX) |
|
|
|
if (configuration.dexed[instance_id].filter_cutoff < FILTER_CUTOFF_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.filter_cutoff[instance_id]++; |
|
|
|
configuration.dexed[instance_id].filter_cutoff++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.filter_cutoff[instance_id] > FILTER_CUTOFF_MIN) |
|
|
|
if (configuration.dexed[instance_id].filter_cutoff > FILTER_CUTOFF_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.filter_cutoff[instance_id]--; |
|
|
|
configuration.dexed[instance_id].filter_cutoff--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.filter_cutoff[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].filter_cutoff, 3, true, true, false); |
|
|
|
Serial.print(LCDML.FUNC_getID(), DEC); |
|
|
|
Serial.print(LCDML.FUNC_getID(), DEC); |
|
|
|
Serial.print(" "); |
|
|
|
|
|
|
|
Serial.print(MENU_ID_OF_INSTANCE_2, DEC); |
|
|
|
|
|
|
|
Serial.print(" INSTANCE: "); |
|
|
|
|
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
Serial.print(" value: "); |
|
|
|
Serial.print(" value: "); |
|
|
|
Serial.println(configuration.filter_cutoff[instance_id] / 100.0, 3); |
|
|
|
Serial.println(configuration.dexed[instance_id].filter_cutoff / 100.0, 3); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->fx.Cutoff = configuration.filter_cutoff[instance_id] / 100.0; |
|
|
|
MicroDexed[instance_id]->fx.Cutoff = configuration.dexed[instance_id].filter_cutoff / 100.0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1451,23 +1488,23 @@ void UI_func_filter_resonance(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.filter_resonance[instance_id] < FILTER_RESONANCE_MAX) |
|
|
|
if (configuration.dexed[instance_id].filter_resonance < FILTER_RESONANCE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.filter_resonance[instance_id]++; |
|
|
|
configuration.dexed[instance_id].filter_resonance++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.filter_resonance[instance_id] > FILTER_RESONANCE_MIN) |
|
|
|
if (configuration.dexed[instance_id].filter_resonance > FILTER_RESONANCE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.filter_resonance[instance_id]--; |
|
|
|
configuration.dexed[instance_id].filter_resonance--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.filter_resonance[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].filter_resonance, 3, true, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->fx.Reso = configuration.filter_resonance[instance_id] / 100.0; |
|
|
|
MicroDexed[instance_id]->fx.Reso = configuration.dexed[instance_id].filter_resonance / 100.0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1499,27 +1536,27 @@ void UI_func_midi_channel(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.midi_channel[instance_id] < MIDI_CHANNEL_MAX) |
|
|
|
if (configuration.dexed[instance_id].midi_channel < MIDI_CHANNEL_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.midi_channel[instance_id]++; |
|
|
|
configuration.dexed[instance_id].midi_channel++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.midi_channel[instance_id] > MIDI_CHANNEL_MIN) |
|
|
|
if (configuration.dexed[instance_id].midi_channel > MIDI_CHANNEL_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.midi_channel[instance_id]--; |
|
|
|
configuration.dexed[instance_id].midi_channel--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
|
|
|
|
|
|
|
|
if (configuration.midi_channel[instance_id] == 0) |
|
|
|
if (configuration.dexed[instance_id].midi_channel == 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
lcd.print(F("[OMNI]")); |
|
|
|
lcd.print(F("[OMNI]")); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
lcd_display_int(configuration.midi_channel[instance_id], 4, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].midi_channel, 4, false, true, false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1552,23 +1589,23 @@ void UI_func_loudness(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.loudness[instance_id] < LOUDNESS_MAX) |
|
|
|
if (configuration.dexed[instance_id].loudness < LOUDNESS_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.loudness[instance_id]++; |
|
|
|
configuration.dexed[instance_id].loudness++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.loudness[instance_id] > LOUDNESS_MIN) |
|
|
|
if (configuration.dexed[instance_id].loudness > LOUDNESS_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.loudness[instance_id]--; |
|
|
|
configuration.dexed[instance_id].loudness--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.loudness[instance_id], 3, true, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].loudness, 3, true, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->fx.Gain = configuration.loudness[instance_id] / 100.0; |
|
|
|
MicroDexed[instance_id]->fx.Gain = configuration.dexed[instance_id].loudness / 100.0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1605,25 +1642,25 @@ void UI_func_panorama(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown() && configuration.mono == 0) |
|
|
|
else if (LCDML.BT_checkDown() && configuration.mono == 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pan[instance_id] < PANORAMA_MAX) |
|
|
|
if (configuration.dexed[instance_id].pan < PANORAMA_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pan[instance_id]++; |
|
|
|
configuration.dexed[instance_id].pan++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp() && configuration.mono == 0) |
|
|
|
else if (LCDML.BT_checkUp() && configuration.mono == 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pan[instance_id] > PANORAMA_MIN) |
|
|
|
if (configuration.dexed[instance_id].pan > PANORAMA_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pan[instance_id]--; |
|
|
|
configuration.dexed[instance_id].pan--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (configuration.mono == 0) |
|
|
|
if (configuration.mono == 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.pan[instance_id], 2, false, true, true); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].pan, 2, false, true, true); |
|
|
|
|
|
|
|
|
|
|
|
set_volume(configuration.vol, configuration.pan[instance_id], configuration.mono); |
|
|
|
set_volume(configuration.vol, configuration.dexed[instance_id].pan, configuration.mono); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1688,7 +1725,7 @@ void UI_func_stereo_mono(uint8_t param) |
|
|
|
stereomono1.stereo(false); |
|
|
|
stereomono1.stereo(false); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
set_volume(configuration.vol, configuration.pan[instance_id], configuration.mono); |
|
|
|
set_volume(configuration.vol, configuration.dexed[instance_id].pan, configuration.mono); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1720,23 +1757,23 @@ void UI_func_polyphony(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.polyphony[instance_id] < POLYPHONY_MAX) |
|
|
|
if (configuration.dexed[instance_id].polyphony < POLYPHONY_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.polyphony[instance_id]++; |
|
|
|
configuration.dexed[instance_id].polyphony++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.polyphony[instance_id] > POLYPHONY_MIN) |
|
|
|
if (configuration.dexed[instance_id].polyphony > POLYPHONY_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.polyphony[instance_id]--; |
|
|
|
configuration.dexed[instance_id].polyphony--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.polyphony[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].polyphony, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setMaxNotes(configuration.polyphony[instance_id]); |
|
|
|
MicroDexed[instance_id]->setMaxNotes(configuration.dexed[instance_id].polyphony); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1768,21 +1805,21 @@ void UI_func_engine(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.engine[instance_id] < ENGINE_MAX) |
|
|
|
if (configuration.dexed[instance_id].engine < ENGINE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.engine[instance_id]++; |
|
|
|
configuration.dexed[instance_id].engine++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.engine[instance_id] > ENGINE_MIN) |
|
|
|
if (configuration.dexed[instance_id].engine > ENGINE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.engine[instance_id]--; |
|
|
|
configuration.dexed[instance_id].engine--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.engine[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].engine) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[MODERN]")); |
|
|
|
lcd.print(F("[MODERN]")); |
|
|
@ -1795,7 +1832,7 @@ void UI_func_engine(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setEngineType(configuration.engine[instance_id]); |
|
|
|
MicroDexed[instance_id]->setEngineType(configuration.dexed[instance_id].engine); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1827,21 +1864,21 @@ void UI_func_mono_poly(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.monopoly[instance_id] < MONOPOLY_MAX) |
|
|
|
if (configuration.dexed[instance_id].monopoly < MONOPOLY_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.monopoly[instance_id]++; |
|
|
|
configuration.dexed[instance_id].monopoly++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.monopoly[instance_id] > MONOPOLY_MIN) |
|
|
|
if (configuration.dexed[instance_id].monopoly > MONOPOLY_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.monopoly[instance_id]--; |
|
|
|
configuration.dexed[instance_id].monopoly--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.monopoly[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].monopoly) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[MONOPHONIC]")); |
|
|
|
lcd.print(F("[MONOPHONIC]")); |
|
|
@ -1851,7 +1888,7 @@ void UI_func_mono_poly(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setMonoMode(configuration.monopoly[instance_id]); |
|
|
|
MicroDexed[instance_id]->setMonoMode(configuration.dexed[instance_id].monopoly); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1873,6 +1910,13 @@ void UI_func_pb_range(uint8_t param) |
|
|
|
// setup function
|
|
|
|
// setup function
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("PB Range")); |
|
|
|
lcd.print(F("PB Range")); |
|
|
|
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_pb_range()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.dexed[")); |
|
|
|
|
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
|
|
|
|
Serial.print(F("].pb_range=")); |
|
|
|
|
|
|
|
Serial.println(configuration.dexed[instance_id].pb_range, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
|
if (LCDML.FUNC_loop()) // ****** LOOP *********
|
|
|
@ -1883,28 +1927,34 @@ void UI_func_pb_range(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pb_range[instance_id] < PB_RANGE_MAX) |
|
|
|
if (configuration.dexed[instance_id].pb_range < PB_RANGE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pb_range[instance_id]++; |
|
|
|
configuration.dexed[instance_id].pb_range++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pb_range[instance_id] > PB_RANGE_MIN) |
|
|
|
if (configuration.dexed[instance_id].pb_range > PB_RANGE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pb_range[instance_id]--; |
|
|
|
configuration.dexed[instance_id].pb_range--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.pb_range[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].pb_range, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setPBController(configuration.pb_range[instance_id], configuration.pb_step[instance_id]); |
|
|
|
MicroDexed[instance_id]->setPBController(configuration.dexed[instance_id].pb_range, configuration.dexed[instance_id].pb_step); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// you can here reset some global vars or do nothing
|
|
|
|
#ifdef DEBUG |
|
|
|
|
|
|
|
Serial.println(F("Entering UI_func_pb_range()")); |
|
|
|
|
|
|
|
Serial.print(F("configuration.dexed[")); |
|
|
|
|
|
|
|
Serial.print(instance_id, DEC); |
|
|
|
|
|
|
|
Serial.print(F("].pb_range=")); |
|
|
|
|
|
|
|
Serial.println(configuration.dexed[instance_id].pb_range, DEC); |
|
|
|
|
|
|
|
#endif |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1931,23 +1981,23 @@ void UI_func_pb_step(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pb_step[instance_id] < PB_STEP_MAX) |
|
|
|
if (configuration.dexed[instance_id].pb_step < PB_STEP_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pb_step[instance_id]++; |
|
|
|
configuration.dexed[instance_id].pb_step++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.pb_step[instance_id] > PB_STEP_MIN) |
|
|
|
if (configuration.dexed[instance_id].pb_step > PB_STEP_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.pb_step[instance_id]--; |
|
|
|
configuration.dexed[instance_id].pb_step--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.pb_step[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].pb_step, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setPBController(configuration.pb_range[instance_id], configuration.pb_step[instance_id]); |
|
|
|
MicroDexed[instance_id]->setPBController(configuration.dexed[instance_id].pb_range, configuration.dexed[instance_id].pb_step); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -1979,23 +2029,23 @@ void UI_func_mw_range(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.mw_range[instance_id] < MW_RANGE_MAX) |
|
|
|
if (configuration.dexed[instance_id].mw_range < MW_RANGE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.mw_range[instance_id]++; |
|
|
|
configuration.dexed[instance_id].mw_range++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.mw_range[instance_id] > MW_RANGE_MIN) |
|
|
|
if (configuration.dexed[instance_id].mw_range > MW_RANGE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.mw_range[instance_id]--; |
|
|
|
configuration.dexed[instance_id].mw_range--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.mw_range[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].mw_range, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setMWController(configuration.mw_range[instance_id], configuration.mw_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setMWController(configuration.dexed[instance_id].mw_range, configuration.dexed[instance_id].mw_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2027,21 +2077,21 @@ void UI_func_mw_assign(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.mw_assign[instance_id] < MW_ASSIGN_MAX) |
|
|
|
if (configuration.dexed[instance_id].mw_assign < MW_ASSIGN_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.mw_assign[instance_id]++; |
|
|
|
configuration.dexed[instance_id].mw_assign++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.mw_assign[instance_id] > MW_ASSIGN_MIN) |
|
|
|
if (configuration.dexed[instance_id].mw_assign > MW_ASSIGN_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.mw_assign[instance_id]--; |
|
|
|
configuration.dexed[instance_id].mw_assign--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.mw_assign[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].mw_assign) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
@ -2069,7 +2119,7 @@ void UI_func_mw_assign(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setMWController(configuration.mw_range[instance_id], configuration.mw_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setMWController(configuration.dexed[instance_id].mw_range, configuration.dexed[instance_id].mw_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2101,23 +2151,23 @@ void UI_func_fc_range(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.fc_range[instance_id] < FC_RANGE_MAX) |
|
|
|
if (configuration.dexed[instance_id].fc_range < FC_RANGE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.fc_range[instance_id]++; |
|
|
|
configuration.dexed[instance_id].fc_range++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.fc_range[instance_id] > FC_RANGE_MIN) |
|
|
|
if (configuration.dexed[instance_id].fc_range > FC_RANGE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.fc_range[instance_id]--; |
|
|
|
configuration.dexed[instance_id].fc_range--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.fc_range[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].fc_range, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setFCController(configuration.fc_range[instance_id], configuration.fc_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setFCController(configuration.dexed[instance_id].fc_range, configuration.dexed[instance_id].fc_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2149,21 +2199,21 @@ void UI_func_fc_assign(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.fc_assign[instance_id] < FC_ASSIGN_MAX) |
|
|
|
if (configuration.dexed[instance_id].fc_assign < FC_ASSIGN_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.fc_assign[instance_id]++; |
|
|
|
configuration.dexed[instance_id].fc_assign++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.fc_assign[instance_id] > FC_ASSIGN_MIN) |
|
|
|
if (configuration.dexed[instance_id].fc_assign > FC_ASSIGN_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.fc_assign[instance_id]--; |
|
|
|
configuration.dexed[instance_id].fc_assign--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.fc_assign[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].fc_assign) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
@ -2191,7 +2241,7 @@ void UI_func_fc_assign(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setFCController(configuration.fc_range[instance_id], configuration.fc_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setFCController(configuration.dexed[instance_id].fc_range, configuration.dexed[instance_id].fc_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2223,23 +2273,23 @@ void UI_func_bc_range(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bc_range[instance_id] < BC_RANGE_MAX) |
|
|
|
if (configuration.dexed[instance_id].bc_range < BC_RANGE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bc_range[instance_id]++; |
|
|
|
configuration.dexed[instance_id].bc_range++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bc_range[instance_id] > BC_RANGE_MIN) |
|
|
|
if (configuration.dexed[instance_id].bc_range > BC_RANGE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bc_range[instance_id]--; |
|
|
|
configuration.dexed[instance_id].bc_range--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.bc_range[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].bc_range, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setBCController(configuration.bc_range[instance_id], configuration.bc_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setBCController(configuration.dexed[instance_id].bc_range, configuration.dexed[instance_id].bc_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2271,21 +2321,21 @@ void UI_func_bc_assign(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bc_assign[instance_id] < BC_ASSIGN_MAX) |
|
|
|
if (configuration.dexed[instance_id].bc_assign < BC_ASSIGN_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bc_assign[instance_id]++; |
|
|
|
configuration.dexed[instance_id].bc_assign++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.bc_assign[instance_id] > BC_ASSIGN_MIN) |
|
|
|
if (configuration.dexed[instance_id].bc_assign > BC_ASSIGN_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.bc_assign[instance_id]--; |
|
|
|
configuration.dexed[instance_id].bc_assign--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.bc_assign[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].bc_assign) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
@ -2313,7 +2363,7 @@ void UI_func_bc_assign(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setBCController(configuration.bc_range[instance_id], configuration.bc_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setBCController(configuration.dexed[instance_id].bc_range, configuration.dexed[instance_id].bc_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2345,23 +2395,23 @@ void UI_func_at_range(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.at_range[instance_id] < AT_RANGE_MAX) |
|
|
|
if (configuration.dexed[instance_id].at_range < AT_RANGE_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.at_range[instance_id]++; |
|
|
|
configuration.dexed[instance_id].at_range++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.at_range[instance_id] > AT_RANGE_MIN) |
|
|
|
if (configuration.dexed[instance_id].at_range > AT_RANGE_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.at_range[instance_id]--; |
|
|
|
configuration.dexed[instance_id].at_range--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd_display_int(configuration.at_range[instance_id], 2, false, true, false); |
|
|
|
lcd_display_int(configuration.dexed[instance_id].at_range, 2, false, true, false); |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setATController(configuration.at_range[instance_id], configuration.at_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setATController(configuration.dexed[instance_id].at_range, configuration.dexed[instance_id].at_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2393,21 +2443,21 @@ void UI_func_at_assign(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
else if (LCDML.BT_checkDown()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.at_assign[instance_id] < AT_ASSIGN_MAX) |
|
|
|
if (configuration.dexed[instance_id].at_assign < AT_ASSIGN_MAX) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.at_assign[instance_id]++; |
|
|
|
configuration.dexed[instance_id].at_assign++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
else if (LCDML.BT_checkUp()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (configuration.at_assign[instance_id] > AT_ASSIGN_MIN) |
|
|
|
if (configuration.dexed[instance_id].at_assign > AT_ASSIGN_MIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
configuration.at_assign[instance_id]--; |
|
|
|
configuration.dexed[instance_id].at_assign--; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 1); |
|
|
|
lcd.setCursor(0, 1); |
|
|
|
switch (configuration.at_assign[instance_id]) |
|
|
|
switch (configuration.dexed[instance_id].at_assign) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
|
lcd.print(F("[ NONE ]")); |
|
|
@ -2435,7 +2485,7 @@ void UI_func_at_assign(uint8_t param) |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
MicroDexed[instance_id]->setATController(configuration.at_range[instance_id], configuration.at_assign[instance_id]); |
|
|
|
MicroDexed[instance_id]->setATController(configuration.dexed[instance_id].at_range, configuration.dexed[instance_id].at_assign); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
@ -2480,17 +2530,17 @@ void UI_func_voice_selection(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
menu_state = MENU_VOICE; |
|
|
|
menu_state = MENU_VOICE; |
|
|
|
|
|
|
|
|
|
|
|
strip_extension(bank_names[selected_dexed_instance][configuration.bank[selected_dexed_instance]], bank_name[selected_dexed_instance]); |
|
|
|
strip_extension(bank_names[selected_dexed_instance][configuration.dexed[selected_dexed_instance].bank], bank_name[selected_dexed_instance]); |
|
|
|
|
|
|
|
|
|
|
|
//LCDML.DISP_clear();
|
|
|
|
//LCDML.DISP_clear();
|
|
|
|
|
|
|
|
|
|
|
|
// display bank and voice number
|
|
|
|
// display bank and voice number
|
|
|
|
lcd.show(0, 0, 2, configuration.bank[selected_dexed_instance]); |
|
|
|
lcd.show(0, 0, 2, configuration.dexed[selected_dexed_instance].bank); |
|
|
|
lcd.show(1, 0, 2, configuration.voice[selected_dexed_instance] + 1); |
|
|
|
lcd.show(1, 0, 2, configuration.dexed[selected_dexed_instance].voice + 1); |
|
|
|
|
|
|
|
|
|
|
|
// display names
|
|
|
|
// display names
|
|
|
|
lcd.show(0, 4, 10, bank_name[selected_dexed_instance]); |
|
|
|
lcd.show(0, 4, 10, bank_name[selected_dexed_instance]); |
|
|
|
lcd.show(1, 4, 10, voice_names[selected_dexed_instance][configuration.voice[selected_dexed_instance]]); |
|
|
|
lcd.show(1, 4, 10, voice_names[selected_dexed_instance][configuration.dexed[selected_dexed_instance].voice]); |
|
|
|
|
|
|
|
|
|
|
|
// display selected Dexed instance
|
|
|
|
// display selected Dexed instance
|
|
|
|
if (selected_dexed_instance == 1) |
|
|
|
if (selected_dexed_instance == 1) |
|
|
@ -2564,7 +2614,7 @@ void UI_func_volume(uint8_t param) |
|
|
|
else |
|
|
|
else |
|
|
|
lcd.print(F(" ")); |
|
|
|
lcd.print(F(" ")); |
|
|
|
} |
|
|
|
} |
|
|
|
set_volume(configuration.vol, configuration.pan[instance_id], configuration.mono); |
|
|
|
set_volume(configuration.vol, configuration.dexed[instance_id].pan, configuration.mono); |
|
|
|
eeprom_write(); |
|
|
|
eeprom_write(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|