Fixing several errors while saving a performance.

Fixing allover volume.
pull/111/head
Holger Wirtz 3 years ago
parent 54920843d2
commit cee32d9462
  1. 20
      MicroDexed.ino
  2. 12
      UI.hpp
  3. 2
      config.h
  4. 79
      dexed_sd.cpp
  5. 2
      dexed_sd.h

@ -418,7 +418,7 @@ void setup()
sgtl5000.enable();
sgtl5000.lineOutLevel(SGTL5000_LINEOUT_LEVEL);
sgtl5000.dacVolumeRamp();
sgtl5000.dacVolume(1.0);
//sgtl5000.dacVolume(1.0); // doing this at the end of setup()
//sgtl5000.dacVolumeRampLinear();
//sgtl5000.dacVolumeRampDisable();
sgtl5000.unmuteHeadphone();
@ -645,6 +645,10 @@ void setup()
strcpy(seq_name, "INIT Perf");
LCDML.OTHER_jumpToFunc(UI_func_voice_select);
#if defined(TEENSY_AUDIO_BOARD)
sgtl5000.dacVolume(1.0);
#endif
}
void loop()
@ -1873,8 +1877,8 @@ void set_volume(uint8_t v, uint8_t m)
Serial.println(volume_transform(tmp_v / 100.0));
#endif
volume_r.gain(volume_transform(tmp_v / 100.0));
volume_l.gain(volume_transform(tmp_v / 100.0));
volume_r.gain(volume_transform(tmp_v / 100.0)*VOLUME_MULTIPLIER);
volume_l.gain(volume_transform(tmp_v / 100.0)*VOLUME_MULTIPLIER);
switch (m)
{
@ -2576,6 +2580,16 @@ void check_and_create_directories(void)
}
}
sprintf(tmp, "/%s", PERFORMANCE_CONFIG_PATH);
if (!SD.exists(tmp))
{
#ifdef DEBUG
Serial.print(F("Creating directory "));
Serial.println(tmp);
#endif
SD.mkdir(tmp);
}
/*
// create directories for configuration files
sprintf(tmp, "/%s", VOICE_CONFIG_PATH);

@ -6220,7 +6220,7 @@ void UI_func_load_performance(uint8_t param)
mode = 0;
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("Load Seq. state "));
lcd.print(F("Load Performance "));
lcd.setCursor(0, 1);
sprintf(tmp, "[%2d]", param);
lcd.print(tmp);
@ -6295,11 +6295,11 @@ void UI_func_save_performance(uint8_t param)
mode = 0;
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("Save Seq. state:"));
lcd.print(F("Save Performance"));
lcd.setCursor(0, 1);
sprintf(tmp, "[%2d]", temp_int);
lcd.print(tmp);
sprintf(tmp, "/%s/%d-S.json", PERFORMANCE_CONFIG_PATH, temp_int);
sprintf(tmp, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, temp_int, PERFORMANCE_CONFIG_NAME);
if (SD.exists(tmp))
overwrite = true;
else
@ -6347,7 +6347,7 @@ void UI_func_save_performance(uint8_t param)
if (yesno == true)
{
char tmp[FILENAME_LEN];
sprintf(tmp, "/%s/%d-S.json", PERFORMANCE_CONFIG_PATH, temp_int);
sprintf(tmp, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, temp_int, PERFORMANCE_CONFIG_NAME);
SD.remove(tmp);
}
save_sd_performance_json(temp_int);
@ -6370,7 +6370,7 @@ void UI_func_save_performance(uint8_t param)
if (mode == 0)
{
char tmp[FILENAME_LEN];
sprintf(tmp, "/%s/%d-S.json", PERFORMANCE_CONFIG_PATH, temp_int);
sprintf(tmp, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, temp_int, PERFORMANCE_CONFIG_NAME);
if (SD.exists(tmp))
overwrite = true;
else
@ -6381,7 +6381,7 @@ void UI_func_save_performance(uint8_t param)
lcd.print(tmp);
lcd.setCursor(5, 1);
if (overwrite == false) {
lcd.print("-- empty --");
lcd.print("-- EMPTY --");
} else if (check_sd_performance_exists(temp_int))
{
get_sd_performance_name_json(temp_int);

@ -676,6 +676,8 @@
#define FAVORITES_NUM_MAX 100
#define FAVORITES_NUM_DEFAULT 0
#define VOLUME_MULTIPLIER 1.3
// Buffer-size define for load/save configuration as JSON
#define JSON_BUFFER_SIZE 8192

@ -537,6 +537,8 @@ bool save_sd_drumsettings_json(uint8_t number)
File json;
StaticJsonDocument<JSON_BUFFER_SIZE> data_json;
if (check_performance_directory(number))
{
sprintf(filename, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, number, DRUMS_CONFIG_NAME);
#ifdef DEBUG
@ -575,9 +577,6 @@ bool save_sd_drumsettings_json(uint8_t number)
AudioInterrupts();
return (true);
}
json.close();
AudioInterrupts();
}
else
{
#ifdef DEBUG
@ -585,7 +584,22 @@ bool save_sd_drumsettings_json(uint8_t number)
Serial.print(filename);
Serial.println(F(" on SD."));
#endif
AudioInterrupts();
return (false);
}
}
else
{
AudioInterrupts();
return (false);
}
}
#ifdef DEBUG
else
{
Serial.println(F("E: SD card not available"));
}
#endif
return (false);
}
@ -694,7 +708,7 @@ bool save_sd_voiceconfig_json(uint8_t vc, uint8_t instance_id)
{
File json;
StaticJsonDocument<JSON_BUFFER_SIZE> data_json;
sprintf(filename, "/%s/%d/%s%d.json", PERFORMANCE_CONFIG_PATH, vc, VOICE_CONFIG_NAME, instance_id);
sprintf(filename, "/%s/%d/%s%d.json", PERFORMANCE_CONFIG_PATH, vc, VOICE_CONFIG_NAME, instance_id + 1);
#ifdef DEBUG
Serial.print(F("Saving voice config "));
@ -1134,7 +1148,7 @@ bool save_sd_seq_sub_patterns_json(uint8_t seq_number)
{
File json;
StaticJsonDocument<JSON_BUFFER_SIZE> data_json;
sprintf(filename, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, seq_number, VELOCITY_CONFIG_NAME);
sprintf(filename, "/%s/%d/%s.json", PERFORMANCE_CONFIG_PATH, seq_number, PATTERN_CONFIG_NAME);
#ifdef DEBUG
Serial.print(F("Saving sequencer patterns "));
Serial.print(seq_number);
@ -1192,22 +1206,24 @@ bool save_sd_performance_json(uint8_t seq_number)
handleStop();
}
dac_mute();
AudioNoInterrupts();
save_sd_seq_sub_vel_json(seq_number);
save_sd_seq_sub_patterns_json(seq_number);
#ifdef DEBUG
Serial.print(F("Write performance config "));
Serial.print(seq_number);
Serial.print(F(" "));
Serial.println(seq_number);
#endif
save_sd_fx_json(seq_number);
for (uint8_t i = 0; i < MAX_DEXED; i++)
{
sprintf(filename, "/%s/%d/%s%d.json", PERFORMANCE_CONFIG_PATH, seq_number, VOICE_CONFIG_NAME, i);
#ifdef DEBUG
Serial.print(F("Write Voice-Config for sequencer"));
Serial.print(filename);
Serial.print(F(" "));
Serial.println(filename);
#endif
save_sd_voiceconfig_json(seq_number, i);
}
@ -1226,7 +1242,6 @@ bool save_sd_performance_json(uint8_t seq_number)
int columns = sizeof(seq_patternchain[0]);
int rows = total / columns;
Serial.print(F(" "));
SD.begin();
SD.remove(filename);
json = SD.open(filename, FILE_WRITE);
if (json)
@ -1290,14 +1305,56 @@ bool save_sd_performance_json(uint8_t seq_number)
}
json.close();
}
#ifdef DEBUG
else
{
#ifdef DEBUG
Serial.print(F("E : Cannot open "));
Serial.print(filename);
Serial.println(F(" on SD."));
}
#endif
return (false);
}
bool check_performance_directory(uint8_t seq_number)
{
char dir[CONFIG_FILENAME_LEN];
if (sd_card > 0)
{
sprintf(dir, "/%s/%d", PERFORMANCE_CONFIG_PATH, seq_number);
AudioNoInterrupts();
SD.begin();
if (!SD.exists(dir))
{
#ifdef DEBUG
if (SD.mkdir(dir))
{
Serial.print(F("Creating directory "));
Serial.println(dir);
}
else
{
Serial.print(F("E: Cannot create "));
Serial.println(dir);
AudioInterrupts();
return (false);
}
#else
SD.mkdir(dir);
#endif
}
AudioInterrupts();
return (true);
}
#ifdef DEBUG
else
{
Serial.println(F("E: SD card not available"));
}
#endif
return (false);
}

@ -66,6 +66,8 @@ bool save_sd_performance_json(uint8_t p);
bool load_sd_seq_json(uint8_t p);
bool save_sd_seq_json(uint8_t p);
bool check_performance_directory(uint8_t seq_number);
bool get_sd_data(File sysex, uint8_t format, uint8_t* conf);
bool write_sd_data(File sysex, uint8_t format, uint8_t* data, uint16_t len);

Loading…
Cancel
Save