|
|
@ -64,6 +64,7 @@ extern float midi_volume_transform(uint8_t midi_amp); |
|
|
|
extern float volume_transform(float amp); |
|
|
|
extern float volume_transform(float amp); |
|
|
|
extern uint8_t selected_instance_id; |
|
|
|
extern uint8_t selected_instance_id; |
|
|
|
extern char receive_bank_filename[FILENAME_LEN]; |
|
|
|
extern char receive_bank_filename[FILENAME_LEN]; |
|
|
|
|
|
|
|
extern void eeprom_update(void); |
|
|
|
|
|
|
|
|
|
|
|
#if NUM_DRUMS > 0 |
|
|
|
#if NUM_DRUMS > 0 |
|
|
|
#include "drums.h" |
|
|
|
#include "drums.h" |
|
|
@ -157,12 +158,14 @@ extern int perform_attack_mod[NUM_DEXED]; |
|
|
|
extern int perform_release_mod[NUM_DEXED]; |
|
|
|
extern int perform_release_mod[NUM_DEXED]; |
|
|
|
extern float midi_ticks_factor[10]; |
|
|
|
extern float midi_ticks_factor[10]; |
|
|
|
extern uint8_t midi_bpm; |
|
|
|
extern uint8_t midi_bpm; |
|
|
|
|
|
|
|
extern bool save_sys_flag; |
|
|
|
|
|
|
|
extern elapsedMillis save_sys; |
|
|
|
|
|
|
|
extern bool save_sys_flag; |
|
|
|
|
|
|
|
|
|
|
|
/***********************************************************************
|
|
|
|
/***********************************************************************
|
|
|
|
GLOBAL |
|
|
|
GLOBAL |
|
|
|
************************************************************************/ |
|
|
|
************************************************************************/ |
|
|
|
elapsedMillis back_from_volume; |
|
|
|
elapsedMillis back_from_volume; |
|
|
|
extern elapsedMillis save_sys; |
|
|
|
|
|
|
|
uint8_t instance_num[8][8]; |
|
|
|
uint8_t instance_num[8][8]; |
|
|
|
const char accepted_chars[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-abcdefghijklmnopqrstuvwxyz"; |
|
|
|
const char accepted_chars[] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-abcdefghijklmnopqrstuvwxyz"; |
|
|
|
const char noteNames[12][3] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" }; |
|
|
|
const char noteNames[12][3] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B" }; |
|
|
@ -2211,9 +2214,12 @@ void UI_func_panorama(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
void UI_func_favorites(uint8_t param) |
|
|
|
void UI_func_favorites(uint8_t param) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
static uint8_t old_favorites; |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
|
|
|
|
old_favorites = configuration.sys.favorites; |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Favorites")); |
|
|
|
lcd.print(F("Favorites")); |
|
|
@ -2261,15 +2267,26 @@ void UI_func_favorites(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
lcd_special_chars(SCROLLBAR); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
|
|
|
|
if (old_favorites != configuration.sys.favorites) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
save_sys_flag = true; |
|
|
|
|
|
|
|
save_sys = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UI_func_stereo_mono(uint8_t param) |
|
|
|
void UI_func_stereo_mono(uint8_t param) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
static uint8_t old_mono; |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
old_mono = configuration.sys.mono; |
|
|
|
|
|
|
|
|
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.setCursor(0, 0); |
|
|
|
lcd.print(F("Stereo/Mono")); |
|
|
|
lcd.print(F("Stereo/Mono")); |
|
|
@ -2326,7 +2343,16 @@ void UI_func_stereo_mono(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
{ |
|
|
|
|
|
|
|
lcd_special_chars(SCROLLBAR); |
|
|
|
|
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (old_mono != configuration.sys.mono) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
save_sys_flag = true; |
|
|
|
|
|
|
|
save_sys = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void UI_func_polyphony(uint8_t param) |
|
|
|
void UI_func_polyphony(uint8_t param) |
|
|
@ -6417,6 +6443,8 @@ void UI_func_information(uint8_t param) |
|
|
|
|
|
|
|
|
|
|
|
void UI_func_midi_soft_thru(uint8_t param) |
|
|
|
void UI_func_midi_soft_thru(uint8_t param) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
static uint8_t old_soft_midi_thru; |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
@ -6448,7 +6476,15 @@ void UI_func_midi_soft_thru(uint8_t param) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
if (LCDML.FUNC_close()) // ****** STABLE END *********
|
|
|
|
|
|
|
|
{ |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
encoderDir[ENC_R].reset(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (old_soft_midi_thru != configuration.sys.soft_midi_thru) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
save_sys_flag = true; |
|
|
|
|
|
|
|
save_sys = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void UI_func_smart_filter(uint8_t param) |
|
|
|
void UI_func_smart_filter(uint8_t param) |
|
|
@ -6849,9 +6885,11 @@ void UI_func_voice_select(uint8_t param) |
|
|
|
void UI_func_volume(uint8_t param) |
|
|
|
void UI_func_volume(uint8_t param) |
|
|
|
{ |
|
|
|
{ |
|
|
|
char tmp[6]; |
|
|
|
char tmp[6]; |
|
|
|
|
|
|
|
static uint8_t old_volume; |
|
|
|
|
|
|
|
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
if (LCDML.FUNC_setup()) // ****** SETUP *********
|
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
old_volume = configuration.sys.vol; |
|
|
|
|
|
|
|
|
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
|
|
|
|
|
|
|
@ -7015,8 +7053,12 @@ void UI_func_volume(uint8_t param) |
|
|
|
lcd_special_chars(SCROLLBAR); |
|
|
|
lcd_special_chars(SCROLLBAR); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
encoderDir[ENC_L].reset(); |
|
|
|
|
|
|
|
|
|
|
|
//EEPROM.update(EEPROM_START_ADDRESS + 3, configuration.sys.vol);
|
|
|
|
if (old_volume != configuration.sys.vol) |
|
|
|
save_sys = 0; |
|
|
|
{ |
|
|
|
|
|
|
|
eeprom_update(); |
|
|
|
|
|
|
|
save_sys_flag = true; |
|
|
|
|
|
|
|
save_sys = 0; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|