Fixing hanging and problems when reading from SD caused from panic() and disabling the audio interrupt.

pull/32/head
Holger Wirtz 5 years ago
parent 629c021e14
commit 28c4de6da6
  1. 2
      Disp_Plus.h
  2. 3
      MicroDexed.ino
  3. 7
      UI.hpp
  4. 2
      UI_FX.h
  5. 2
      UI_NO_FX.h
  6. 4
      config.h
  7. 6
      dexed.cpp
  8. 2
      dexed.h
  9. 2
      dexed_sd.cpp
  10. 2
      dexed_sd.h
  11. 2
      midi_devices.hpp

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018 H. Wirtz <wirtz@parasitstudio.de> (c)2018 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>
@ -371,7 +371,6 @@ void setup()
{ {
// load default SYSEX data // load default SYSEX data
load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id); load_sd_voice(configuration.performance.bank[instance_id], configuration.performance.voice[instance_id], instance_id);
memset(g_voice_name[instance_id], 0, VOICE_NAME_LEN); memset(g_voice_name[instance_id], 0, VOICE_NAME_LEN);
memset(g_bank_name[instance_id], 0, BANK_NAME_LEN); memset(g_bank_name[instance_id], 0, BANK_NAME_LEN);
memset(receive_bank_filename, 0, FILENAME_LEN); memset(receive_bank_filename, 0, FILENAME_LEN);

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>
@ -91,7 +91,6 @@ extern AudioAnalyzePeak master_peak_l;
extern char sd_string[LCD_cols + 1]; extern char sd_string[LCD_cols + 1];
extern char g_voice_name[NUM_DEXED][VOICE_NAME_LEN]; extern char g_voice_name[NUM_DEXED][VOICE_NAME_LEN];
extern char g_bank_name[NUM_DEXED][BANK_NAME_LEN]; extern char g_bank_name[NUM_DEXED][BANK_NAME_LEN];
extern char receive_bank_filename[FILENAME_LEN];
/*********************************************************************** /***********************************************************************
GLOBAL GLOBAL
@ -166,7 +165,7 @@ const uint8_t inverse_num[8][8] = {
{B11111, B10001, B11101, B11011, B11101, B10101, B11011, B11111}, // 3 OP invers {B11111, B10001, B11101, B11011, B11101, B10101, B11011, B11111}, // 3 OP invers
{B11111, B10111, B10111, B10101, B10001, B11101, B11101, B11111}, // 4 OP invers {B11111, B10111, B10111, B10101, B10001, B11101, B11101, B11111}, // 4 OP invers
{B11111, B10001, B10111, B10011, B11101, B11101, B10011, B11111}, // 5 OP invers {B11111, B10001, B10111, B10011, B11101, B11101, B10011, B11111}, // 5 OP invers
{B11111, B11011, B10101, B10011, B10101, B10101, B11011, B11111} // 6 OP invers {B11111, B11001, B10111, B10011, B10101, B10101, B11011, B11111} // 6 OP invers
}; };
enum { SCROLLBAR, BLOCKBAR, METERBAR }; enum { SCROLLBAR, BLOCKBAR, METERBAR };
@ -446,7 +445,6 @@ void setup_ui(void)
lcd.print(F("(c)parasiTstudio")); lcd.print(F("(c)parasiTstudio"));
lcd_special_chars(SCROLLBAR); lcd_special_chars(SCROLLBAR);
// LCDMenuLib Setup // LCDMenuLib Setup
LCDML_setup(_LCDML_DISP_cnt); LCDML_setup(_LCDML_DISP_cnt);
// Enable Menu Rollover // Enable Menu Rollover
@ -3477,6 +3475,7 @@ void UI_handle_OP(uint8_t param)
if (LCDML.FUNC_close()) // ****** STABLE END ********* if (LCDML.FUNC_close()) // ****** STABLE END *********
{ {
lcd.noBlink();
lcd.noCursor(); lcd.noCursor();
lcd_special_chars(SCROLLBAR); lcd_special_chars(SCROLLBAR);

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>
@ -47,7 +47,7 @@
// amidi -p hw:2,0,0 -d -r /tmp/bkup1.syx // amidi -p hw:2,0,0 -d -r /tmp/bkup1.syx
// //
#define VERSION "0.9.9f" #define VERSION "0.9.9g"
//************************************************************************************************* //*************************************************************************************************
//* DEVICE SETTINGS //* DEVICE SETTINGS

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>
@ -397,19 +397,18 @@ bool Dexed::getSustain(void)
void Dexed::panic(void) void Dexed::panic(void)
{ {
AudioNoInterrupts();
for (uint8_t i = 0; i < MAX_ACTIVE_NOTES; i++) for (uint8_t i = 0; i < MAX_ACTIVE_NOTES; i++)
{ {
if (voices[i].live == true) { if (voices[i].live == true) {
voices[i].keydown = false; voices[i].keydown = false;
voices[i].live = false; voices[i].live = false;
voices[i].sustained = false; voices[i].sustained = false;
voices[i].key_pressed_timer = 0;
if ( voices[i].dx7_note != NULL ) { if ( voices[i].dx7_note != NULL ) {
voices[i].dx7_note->oscSync(); voices[i].dx7_note->oscSync();
} }
} }
} }
AudioInterrupts();
} }
void Dexed::resetControllers(void) void Dexed::resetControllers(void)
@ -563,7 +562,6 @@ bool Dexed::decodeVoice(uint8_t* encoded_data)
*(p_data + DEXED_VOICE_OFFSET + DEXED_LFO_SYNC) = (tmp & 0x01); *(p_data + DEXED_VOICE_OFFSET + DEXED_LFO_SYNC) = (tmp & 0x01);
*(p_data + DEXED_VOICE_OFFSET + DEXED_TRANSPOSE) = encoded_data[117]; *(p_data + DEXED_VOICE_OFFSET + DEXED_TRANSPOSE) = encoded_data[117];
memcpy(&data[DEXED_VOICE_OFFSET + DEXED_NAME], &encoded_data[118], 10); memcpy(&data[DEXED_VOICE_OFFSET + DEXED_NAME], &encoded_data[118], 10);
panic(); panic();
doRefreshVoice(); doRefreshVoice();
//activate(); //activate();

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroDexed is a port of the Dexed sound engine MicroDexed is a port of the Dexed sound engine
(https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield. (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6/4.x with audio shield.
Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android
(c)2018-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

@ -2,7 +2,7 @@
MicroDexed MicroDexed
MicroMDAEPiano is a port of the MDA-EPiano sound engine MicroMDAEPiano is a port of the MDA-EPiano sound engine
(https://sourceforge.net/projects/mda-vst/) for the Teensy-3.5/3.6 with audio shield. (https://sourceforge.net/projects/mda-vst/) for the Teensy-3.5/3.6/4.x with audio shield.
(c)2019-2020 H. Wirtz <wirtz@parasitstudio.de> (c)2019-2020 H. Wirtz <wirtz@parasitstudio.de>

Loading…
Cancel
Save