Fixing configuration writing and cancel behaviuor.

Fix in save performance.
Better debug displaying of SYSEX data.
pull/32/head
Holger Wirtz 5 years ago
parent 148ac0a652
commit 117715b3ae
  1. 39
      MicroDexed.ino
  2. 100
      UI.hpp
  3. 4
      UI_1_FX.h
  4. 4
      UI_2_FX.h
  5. 5
      config.h

@ -824,8 +824,29 @@ void handleSystemExclusive(byte * sysex, uint len)
} }
#ifdef DEBUG #ifdef DEBUG
Serial.print(F("SysEx data length: ")); Serial.print(F("SysEx data length: ["));
Serial.println(len); Serial.print(len);
Serial.println(F("]"));
Serial.println(F("SysEx data:"));
for (uint16_t i = 0; i < len; i++)
{
Serial.print(F("[0x"));
uint8_t s = sysex[i];
if (s < 16)
Serial.print(F("0"));
Serial.print(s, HEX);
Serial.print(F("|"));
if (s < 100)
Serial.print(F("0"));
if (s < 10)
Serial.print(F("0"));
Serial.print(s, DEC);
Serial.print(F("]"));
if ((i + 1) % 16 == 0)
Serial.println();
}
Serial.println();
#endif #endif
// Check for SYSEX end byte // Check for SYSEX end byte
@ -837,20 +858,6 @@ void handleSystemExclusive(byte * sysex, uint len)
return; return;
} }
#ifdef DEBUG
Serial.print(F("INSTANCE "));
Serial.print(instance_id, DEC);
Serial.print(F(": SYSEX-Data["));
Serial.print(len, DEC);
Serial.print(F("]"));
for (uint8_t i = 0; i < len; i++)
{
Serial.print(F(" "));
Serial.print(sysex[i], DEC);
}
Serial.println();
#endif
if (sysex[1] != 0x43) // check for Yamaha sysex if (sysex[1] != 0x43) // check for Yamaha sysex
{ {
#ifdef DEBUG #ifdef DEBUG

100
UI.hpp

@ -3204,7 +3204,7 @@ void UI_func_eeprom_reset(uint8_t param)
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
lcd.print("Done."); lcd.print("Done.");
delay(500); delay(MESSAGE_WAIT_TIME);
_softRestart(); _softRestart();
} }
} }
@ -3226,7 +3226,7 @@ void UI_func_eeprom_reset(uint8_t param)
{ {
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
lcd.print("Canceled "); lcd.print("Canceled ");
delay(500); delay(MESSAGE_WAIT_TIME);
encoderDir[ENC_R].reset(); encoderDir[ENC_R].reset();
} }
@ -3532,7 +3532,7 @@ void UI_func_load_performance(uint8_t param)
lcd.print("Done. "); lcd.print("Done. ");
} }
delay(500); delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu(); LCDML.FUNC_goBackToMenu();
} }
@ -3548,9 +3548,8 @@ void UI_func_load_performance(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
else else
eeprom_update_performance(); eeprom_update_performance();
@ -3624,13 +3623,20 @@ void UI_func_save_performance(uint8_t param)
sprintf(tmp, "/%s/%s%d.syx", PERFORMANCE_CONFIG_PATH, PERFORMANCE_CONFIG_NAME, configuration.sys.performance_number); sprintf(tmp, "/%s/%s%d.syx", PERFORMANCE_CONFIG_PATH, PERFORMANCE_CONFIG_NAME, configuration.sys.performance_number);
SD.remove(tmp); SD.remove(tmp);
} }
save_sd_performance(configuration.performance.fx_number); save_sd_performance(configuration.sys.performance_number);
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Done.");
lcd.print("Done. "); delay(MESSAGE_WAIT_TIME);
delay(500); LCDML.FUNC_goBackToMenu();
} }
else if (overwrite == true && yesno == false)
{
char tmp[17];
LCDML.FUNC_goBackToMenu(); mode = 0;
lcd.setCursor(0, 1);
sprintf(tmp, "[%2d] ", configuration.sys.performance_number);
lcd.print(tmp);
}
} }
} }
@ -3663,9 +3669,8 @@ void UI_func_save_performance(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
EEPROM.update(EEPROM_START_ADDRESS + offsetof(sys_s, performance_number), configuration.sys.performance_number); EEPROM.update(EEPROM_START_ADDRESS + offsetof(sys_s, performance_number), configuration.sys.performance_number);
@ -3693,7 +3698,7 @@ void UI_func_load_voiceconfig(uint8_t param)
encoderDir[ENC_R].reset(); encoderDir[ENC_R].reset();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print(F("Load Voice Cfg")); lcd.print(F("Load VoiceCfg SD"));
#if NUMDEXED > 1 #if NUMDEXED > 1
mode = 0; mode = 0;
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
@ -3733,7 +3738,7 @@ void UI_func_load_voiceconfig(uint8_t param)
else else
lcd.print("Done. "); lcd.print("Done. ");
delay(500); delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu(); LCDML.FUNC_goBackToMenu();
} }
@ -3758,9 +3763,8 @@ void UI_func_load_voiceconfig(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
else else
eeprom_update_dexed(instance_id); eeprom_update_dexed(instance_id);
@ -3798,7 +3802,7 @@ void UI_func_save_voiceconfig(uint8_t param)
encoderDir[ENC_R].reset(); encoderDir[ENC_R].reset();
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print(F("Save Config SD")); lcd.print(F("Save VoiceCfg SD"));
#if NUMDEXED > 1 #if NUMDEXED > 1
mode = 0; mode = 0;
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
@ -3859,12 +3863,19 @@ void UI_func_save_voiceconfig(uint8_t param)
SD.remove(tmp); SD.remove(tmp);
} }
save_sd_voiceconfig(configuration.performance.voiceconfig_number[instance_id], instance_id); save_sd_voiceconfig(configuration.performance.voiceconfig_number[instance_id], instance_id);
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Done.");
lcd.print("Done. "); delay(MESSAGE_WAIT_TIME);
delay(500); LCDML.FUNC_goBackToMenu();
} }
else if (overwrite == true && yesno == false)
{
char tmp[17];
LCDML.FUNC_goBackToMenu(); mode = 1;
lcd.setCursor(0, 1);
sprintf(tmp, "[%2d] ", configuration.performance.voiceconfig_number[instance_id]);
lcd.print(tmp);
}
} }
} }
@ -3903,9 +3914,8 @@ void UI_func_save_voiceconfig(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
#if NUM_DEXED > 1 #if NUM_DEXED > 1
@ -3934,7 +3944,7 @@ void UI_func_load_fx(uint8_t param)
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print(F("Load FX SD")); lcd.print(F("Load FX SD"));
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
sprintf(tmp, "[%d]", configuration.performance.fx_number); sprintf(tmp, "[%2d]", configuration.performance.fx_number);
lcd.print(tmp); lcd.print(tmp);
} }
@ -3960,7 +3970,7 @@ void UI_func_load_fx(uint8_t param)
else else
lcd.print("Done. "); lcd.print("Done. ");
delay(500); delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu(); LCDML.FUNC_goBackToMenu();
} }
@ -3976,9 +3986,8 @@ void UI_func_load_fx(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
else else
eeprom_update_fx(); eeprom_update_fx();
@ -4007,7 +4016,7 @@ void UI_func_save_fx(uint8_t param)
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print(F("Save FX")); lcd.print(F("Save FX"));
lcd.setCursor(0, 1); lcd.setCursor(0, 1);
sprintf(tmp, "[%d]", configuration.performance.fx_number); sprintf(tmp, "[%2d]", configuration.performance.fx_number);
lcd.print(tmp); lcd.print(tmp);
sprintf(tmp, "/%s/%s%d.syx", FX_CONFIG_PATH, FX_CONFIG_NAME, configuration.performance.fx_number); sprintf(tmp, "/%s/%s%d.syx", FX_CONFIG_PATH, FX_CONFIG_NAME, configuration.performance.fx_number);
@ -4055,12 +4064,20 @@ void UI_func_save_fx(uint8_t param)
SD.remove(tmp); SD.remove(tmp);
} }
save_sd_fx(configuration.performance.fx_number); save_sd_fx(configuration.performance.fx_number);
lcd.setCursor(0, 1);
lcd.print("Done. ");
delay(500);
}
lcd.show(1, 0, 16, "Done.");
LCDML.FUNC_goBackToMenu(); LCDML.FUNC_goBackToMenu();
delay(MESSAGE_WAIT_TIME);
}
else if (overwrite == true && yesno == false)
{
char tmp[17];
mode = 0;
lcd.setCursor(0, 1);
sprintf(tmp, "[%2d] ", configuration.performance.fx_number);
lcd.print(tmp);
}
} }
} }
@ -4093,9 +4110,8 @@ void UI_func_save_fx(uint8_t param)
{ {
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.setCursor(0, 1); lcd.show(1, 0, 16, "Canceled.");
lcd.print("Canceled "); delay(MESSAGE_WAIT_TIME);
delay(500);
} }
EEPROM.update(EEPROM_START_ADDRESS + offsetof(performance_s, fx_number), configuration.performance.fx_number); EEPROM.update(EEPROM_START_ADDRESS + offsetof(performance_s, fx_number), configuration.performance.fx_number);
@ -4220,7 +4236,7 @@ void UI_func_save_voice(uint8_t param)
#endif #endif
lcd.show(1, 0, 16, "Done."); lcd.show(1, 0, 16, "Done.");
delay(500); delay(MESSAGE_WAIT_TIME);
mode = 0xff; mode = 0xff;
} }
@ -4235,7 +4251,7 @@ void UI_func_save_voice(uint8_t param)
if (mode < 0xff) if (mode < 0xff)
{ {
lcd.show(1, 0, 16, "Canceled."); lcd.show(1, 0, 16, "Canceled.");
delay(500); delay(MESSAGE_WAIT_TIME);
} }
else else
{ {

@ -106,8 +106,8 @@ LCDML_add(77, LCDML_0_3, 2, "Voice Config", NULL);
LCDML_add(78, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig); LCDML_add(78, LCDML_0_3_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig);
LCDML_add(79, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig); LCDML_add(79, LCDML_0_3_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig);
LCDML_add(80, LCDML_0_3, 3, "Effects", NULL); LCDML_add(80, LCDML_0_3, 3, "Effects", NULL);
LCDML_add(81, LCDML_0_3_3, 1, "Load Effects Cfg", UI_func_load_fx); LCDML_add(81, LCDML_0_3_3, 1, "Load Effects", UI_func_load_fx);
LCDML_add(82, LCDML_0_3_3, 2, "Save Effects Cfg", UI_func_save_fx); LCDML_add(82, LCDML_0_3_3, 2, "Save Effects", UI_func_save_fx);
LCDML_add(83, LCDML_0_3, 5, "MIDI", NULL); LCDML_add(83, LCDML_0_3, 5, "MIDI", NULL);
LCDML_add(84, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); LCDML_add(84, LCDML_0_3_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(85, LCDML_0_3_5, 2, "MIDI Send Bank", UI_func_sysex_send_bank); LCDML_add(85, LCDML_0_3_5, 2, "MIDI Send Bank", UI_func_sysex_send_bank);

@ -166,8 +166,8 @@ LCDML_add(137, LCDML_0_4, 2, "Voice Config", NULL);
LCDML_add(138, LCDML_0_4_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig); LCDML_add(138, LCDML_0_4_2, 1, "Load Voice Cfg", UI_func_load_voiceconfig);
LCDML_add(139, LCDML_0_4_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig); LCDML_add(139, LCDML_0_4_2, 2, "Save Voice Cfg", UI_func_save_voiceconfig);
LCDML_add(140, LCDML_0_4, 3, "FX", NULL); LCDML_add(140, LCDML_0_4, 3, "FX", NULL);
LCDML_add(141, LCDML_0_4_3, 1, "Load Effects Cfg", UI_func_load_fx); LCDML_add(141, LCDML_0_4_3, 1, "Load Effects", UI_func_load_fx);
LCDML_add(142, LCDML_0_4_3, 2, "Save Effects Cfg", UI_func_save_fx); LCDML_add(142, LCDML_0_4_3, 2, "Save Effects", UI_func_save_fx);
LCDML_add(143, LCDML_0_4, 5, "MIDI", NULL); LCDML_add(143, LCDML_0_4, 5, "MIDI", NULL);
LCDML_add(144, LCDML_0_4_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank); LCDML_add(144, LCDML_0_4_5, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(145, LCDML_0_4_5, 2, "MIDI Send Bank", UI_func_sysex_send_bank); LCDML_add(145, LCDML_0_4_5, 2, "MIDI Send Bank", UI_func_sysex_send_bank);

@ -40,8 +40,10 @@
// $ vkeybd --addr 20:0 // $ vkeybd --addr 20:0
// $ arecord -f cd -Dhw:1,0 /tmp/<AUDIO_FILE_NAME>.wav // $ arecord -f cd -Dhw:1,0 /tmp/<AUDIO_FILE_NAME>.wav
// //
// Tools for testing MIDI: https://github.com/gbevin/SendMIDI
// https://github.com/gbevin/ReceiveMIDI
#define VERSION "0.9.9" #define VERSION "0.9.9a"
//************************************************************************************************* //*************************************************************************************************
//* DEVICE SETTINGS //* DEVICE SETTINGS
@ -175,6 +177,7 @@
#define VOICE_SELECTION_MS 60000 #define VOICE_SELECTION_MS 60000
#define BACK_FROM_VOLUME_MS 2000 #define BACK_FROM_VOLUME_MS 2000
#define MESSAGE_WAIT_TIME 1000
//************************************************************************************************* //*************************************************************************************************
//* HARDWARE SETTINGS //* HARDWARE SETTINGS

Loading…
Cancel
Save