pull/112/head
Holger Wirtz 3 years ago
parent acd4ec6bfc
commit 8aaf3b92d4
  1. 30
      MicroDexed.ino
  2. 6
      UI.hpp
  3. 2
      addon/SD/PERFORMANCE/0/fx.json
  4. 1012
      addon/SD/PERFORMANCE/1/drums.json
  5. 40
      addon/SD/PERFORMANCE/1/epiano.json
  6. 144
      addon/SD/PERFORMANCE/1/fx.json
  7. 774
      addon/SD/PERFORMANCE/1/patterns.json
  8. 216
      addon/SD/PERFORMANCE/1/sequencer.json
  9. 774
      addon/SD/PERFORMANCE/1/velocity.json
  10. 66
      addon/SD/PERFORMANCE/1/voice1.json
  11. 66
      addon/SD/PERFORMANCE/1/voice2.json
  12. 0
      addon/SD/PERFORMANCE/2/epiano.json
  13. 2
      addon/SD/PERFORMANCE/2/fx.json
  14. 0
      addon/SD/PERFORMANCE/3/epiano.json
  15. 2
      addon/SD/PERFORMANCE/3/fx.json
  16. 0
      addon/SD/PERFORMANCE/4/epiano.json
  17. 2
      addon/SD/PERFORMANCE/4/fx.json
  18. 0
      addon/SD/PERFORMANCE/5/epiano.json
  19. 2
      addon/SD/PERFORMANCE/5/fx.json
  20. 0
      addon/SD/PERFORMANCE/6/epiano.json
  21. 2
      addon/SD/PERFORMANCE/6/fx.json
  22. 0
      addon/SD/PERFORMANCE/7/epiano.json
  23. 2
      addon/SD/PERFORMANCE/7/fx.json
  24. 0
      addon/SD/PERFORMANCE/8/epiano.json
  25. 2
      addon/SD/PERFORMANCE/8/fx.json
  26. 4
      config.h
  27. 6
      dexed_sd.cpp

@ -359,7 +359,7 @@ void create_audio_drum_chain(uint8_t instance_id)
uint8_t sd_card = 0;
Sd2Card card;
SdVolume volume;
float midi_ticks_factor[10] = {0.0, 0.25, 0.375, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0 , 4.0};
const float midi_ticks_factor[10] = {0.0, 0.25, 0.375, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0 , 4.0};
uint8_t midi_bpm_counter = 0;
uint8_t midi_bpm = 0;
int16_t _midi_bpm = -1;
@ -565,7 +565,7 @@ void setup()
}
#endif
//Setup (PROGMEM-) sample drums
// Setup (PROGMEM) sample drums
#if NUM_DRUMS > 0
// create dynamic Drum instances
for (uint8_t instance_id = 0; instance_id < NUM_DRUMS; instance_id++)
@ -618,18 +618,18 @@ void setup()
#endif
ep_chorus_mixer_r.gain(0, 1.0);
ep_chorus_mixer_l.gain(0, 1.0);
ep_chorus_mixer_r.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_mixer_l.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_mixer_r.gain(1, mapfloat(EP_CHORUS_LEVEL_DEFAULT, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_mixer_l.gain(1, mapfloat(EP_CHORUS_LEVEL_DEFAULT, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_inverter.gain(-1.0);
ep_stereo_panorama.panorama(0.0);
ep_stereo_panorama.panorama(mapfloat(EP_PANORAMA_DEFAULT, EP_PANORAMA_DEFAULT, EP_PANORAMA_DEFAULT, 0.0, 1.0));
#endif
#endif
// Setup effects
#if defined(USE_FX)
for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++)
{
memset(delayline[instance_id], 0, sizeof(delayline[instance_id]));
{
memset(delayline[instance_id], 0, sizeof(delayline[instance_id]));
if (!modchorus[instance_id]->begin(delayline[instance_id], MOD_DELAY_SAMPLE_BUFFER)) {
#ifdef DEBUG
Serial.print(F("AudioEffectModulatedDelay - begin failed ["));
@ -653,9 +653,9 @@ void setup()
sd_card = check_sd_cards();
if (sd_card < 1)
{
{
#ifdef DEBUG
Serial.println(F("SD card not accessable."));
Serial.println(F("SD card not accessable."));
#endif
}
else
@ -691,8 +691,8 @@ void setup()
// Load voices
#ifdef DEBUG
for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++)
{
Serial.print(F("Dexed instance "));
{
Serial.print(F("Dexed instance "));
Serial.print(instance_id);
Serial.println(F(":"));
Serial.print(F("Bank/Voice ["));
@ -717,8 +717,8 @@ void setup()
// Init master_mixer
#if NUM_DEXED > 1
for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++)
{
master_mixer_r.gain(instance_id, VOL_MAX_FLOAT);
{
master_mixer_r.gain(instance_id, VOL_MAX_FLOAT);
master_mixer_l.gain(instance_id, VOL_MAX_FLOAT);
}
#else
@ -2256,7 +2256,6 @@ void check_configuration_epiano(void)
configuration.epiano.detune = constrain(configuration.epiano.detune, EP_DETUNE_MIN, EP_DETUNE_MAX);
configuration.epiano.overdrive = constrain(configuration.epiano.overdrive, EP_OVERDRIVE_MIN, EP_OVERDRIVE_MAX);
configuration.epiano.lowest_note = constrain(configuration.epiano.lowest_note, EP_LOWEST_NOTE_MIN, EP_LOWEST_NOTE_MAX);
configuration.epiano.highest_note = 108; // TODO!
configuration.epiano.highest_note = constrain(configuration.epiano.highest_note, EP_HIGHEST_NOTE_MIN, EP_HIGHEST_NOTE_MAX);
configuration.epiano.transpose = constrain(configuration.epiano.transpose, EP_TRANSPOSE_MIN, EP_TRANSPOSE_MAX);
configuration.epiano.sound_intensity = constrain(configuration.epiano.sound_intensity, EP_SOUND_INTENSITY_MIN, EP_SOUND_INTENSITY_MAX);
@ -2508,6 +2507,7 @@ void set_fx_params(void)
uint16_t midi_sync_delay_time = uint16_t(60000.0 * midi_ticks_factor[configuration.fx.delay_sync[instance_id]] / seq.seq_bpm);
delay_fx[instance_id]->delay(0, constrain(midi_sync_delay_time, DELAY_TIME_MIN, DELAY_TIME_MAX * 10));
}
// REVERB SEND
reverb_mixer_r.gain(instance_id, volume_transform(mapfloat(configuration.fx.reverb_send[instance_id], REVERB_SEND_MIN, REVERB_SEND_MAX, 0.0, VOL_MAX_FLOAT)));
reverb_mixer_l.gain(instance_id, volume_transform(mapfloat(configuration.fx.reverb_send[instance_id], REVERB_SEND_MIN, REVERB_SEND_MAX, 0.0, VOL_MAX_FLOAT)));
@ -2538,6 +2538,7 @@ void set_fx_params(void)
#endif
#if defined(USE_EPIANO)
#ifdef USE_FX
reverb_mixer_r.gain(REVERB_MIX_CH_EPIANO, mapfloat(configuration.fx.ep_reverb_send, EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX, 0.0, 1.0)); // EPiano Reverb-Send
reverb_mixer_l.gain(REVERB_MIX_CH_EPIANO, mapfloat(configuration.fx.ep_reverb_send, EP_REVERB_SEND_MIN, EP_REVERB_SEND_MAX, 0.0, 1.0)); // EPiano Reverb-Send
@ -2573,6 +2574,7 @@ void set_fx_params(void)
ep_chorus_mixer_r.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_mixer_l.gain(1, mapfloat(configuration.fx.ep_chorus_level, EP_CHORUS_LEVEL_MIN, EP_CHORUS_LEVEL_MAX, 0.0, 0.5));
ep_chorus_inverter.gain(-1.0);
#endif
#endif
master_mixer_r.gain(MASTER_MIX_CH_REVERB, volume_transform(mapfloat(configuration.fx.reverb_level, REVERB_LEVEL_MIN, REVERB_LEVEL_MAX, 0.0, VOL_MAX_FLOAT)));

@ -160,7 +160,7 @@ extern char g_voice_name[NUM_DEXED][VOICE_NAME_LEN];
extern char g_bank_name[NUM_DEXED][BANK_NAME_LEN];
extern int perform_attack_mod[NUM_DEXED];
extern int perform_release_mod[NUM_DEXED];
extern float midi_ticks_factor[10];
extern const float midi_ticks_factor[10];
extern uint8_t midi_bpm;
extern bool save_sys_flag;
extern elapsedMillis save_sys;
@ -9314,6 +9314,10 @@ void lcd_display_float(float var, uint8_t size_number, uint8_t size_fraction, bo
sprintf(s, "[%s]", tmp);
}
Serial.println(var);
Serial.println(f);
Serial.println(s);
lcd.print(s);
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

File diff suppressed because it is too large Load Diff

@ -1,20 +1,20 @@
{
"decay": 50,
"release": 50,
"hardness": 50,
"treble": 50,
"pan_tremolo": 65,
"pan_lfo": 25,
"velocity_sense": 50,
"stereo": 100,
"polyphony": 16,
"tune": 50,
"detune": 15,
"overdrive": 0,
"lowest_note": 21,
"highest_note": 108,
"transpose": 0,
"sound_intensity": 100,
"pan": 20,
"midi_channel": 1
}
{
"decay": 50,
"release": 50,
"hardness": 50,
"treble": 50,
"pan_tremolo": 65,
"pan_lfo": 25,
"velocity_sense": 50,
"stereo": 100,
"polyphony": 16,
"tune": 50,
"detune": 15,
"overdrive": 0,
"lowest_note": 21,
"highest_note": 108,
"transpose": 0,
"sound_intensity": 100,
"pan": 20,
"midi_channel": 1
}

@ -1,72 +1,72 @@
{
"filter_cutoff": [
0,
0
],
"filter_resonance": [
0,
0
],
"chorus_frequency": [
0,
0
],
"chorus_waveform": [
0,
0
],
"chorus_depth": [
0,
0
],
"chorus_level": [
0,
0
],
"delay_time": [
0,
0
],
"delay_feedback": [
49,
88
],
"delay_level": [
63,
77
],
"delay_sync": [
4,
4
],
"reverb_send": [
64,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 87,
"eq_1": 0,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": 0,
"eq_1": 15,
"eq_2": 0,
"eq_3": 1,
"eq_4": 0,
"eq_5": 0,
"eq_6": -2,
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}
{
"filter_cutoff": [
0,
0
],
"filter_resonance": [
0,
0
],
"chorus_frequency": [
0,
0
],
"chorus_waveform": [
0,
0
],
"chorus_depth": [
0,
0
],
"chorus_level": [
0,
0
],
"delay_time": [
0,
0
],
"delay_feedback": [
49,
88
],
"delay_level": [
63,
77
],
"delay_sync": [
4,
4
],
"reverb_send": [
64,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 87,
"eq_1": 0,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": 0,
"eq_1": 15,
"eq_2": 0,
"eq_3": 1,
"eq_4": 0,
"eq_5": 0,
"eq_6": -2,
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -1,388 +1,388 @@
{
"seq_data": [
72,
0,
0,
92,
72,
0,
0,
0,
72,
90,
90,
90,
72,
0,
0,
0,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
72,
0,
0,
92,
72,
90,
90,
90,
72,
0,
0,
75,
72,
0,
0,
0,
0,
0,
0,
0,
0,
0,
77,
77,
0,
77,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
79,
79,
0,
79,
0,
0,
0,
0,
0,
0,
55,
0,
0,
0,
0,
0,
52,
0,
0,
0,
0,
0,
0,
0,
0,
0,
57,
0,
0,
0,
0,
0,
53,
0,
0,
0,
0,
0,
0,
0,
0,
0,
74,
0,
0,
72,
0,
0,
74,
0,
0,
0,
76,
0,
0,
0,
0,
0,
74,
0,
0,
72,
0,
0,
71,
0,
0,
0,
67,
0,
0,
0,
0,
0,
69,
0,
0,
76,
0,
0,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
68,
68,
0,
68,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
{
"seq_data": [
72,
0,
0,
92,
72,
0,
0,
0,
72,
90,
90,
90,
72,
0,
0,
0,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
72,
0,
0,
92,
72,
90,
90,
90,
72,
0,
0,
75,
72,
0,
0,
0,
0,
0,
0,
0,
0,
0,
77,
77,
0,
77,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
79,
79,
0,
79,
0,
0,
0,
0,
0,
0,
55,
0,
0,
0,
0,
0,
52,
0,
0,
0,
0,
0,
0,
0,
0,
0,
57,
0,
0,
0,
0,
0,
53,
0,
0,
0,
0,
0,
0,
0,
0,
0,
74,
0,
0,
72,
0,
0,
74,
0,
0,
0,
76,
0,
0,
0,
0,
0,
74,
0,
0,
72,
0,
0,
71,
0,
0,
0,
67,
0,
0,
0,
0,
0,
69,
0,
0,
76,
0,
0,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
68,
68,
0,
68,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,108 +1,108 @@
{
"seq_patternchain": [
0,
1,
6,
9,
3,
16,
0,
1,
5,
8,
4,
15,
0,
1,
6,
9,
10,
17,
2,
1,
5,
7,
4,
15
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 9,
"arp_style": 0,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
"seq_chain_lenght": 3,
"seq_transpose": 0,
"chord_key_ammount": 6,
"seq_oct_shift": -1,
"seq_element_shift": 3,
"track_type": [
0,
0,
2,
1,
0,
0
],
"content_type": [
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1,
0,
0
],
"seq_name": [
67,
108,
101,
97,
114,
67,
111,
97,
115,
116,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}
{
"seq_patternchain": [
0,
1,
6,
9,
3,
16,
0,
1,
5,
8,
4,
15,
0,
1,
6,
9,
10,
17,
2,
1,
5,
7,
4,
15
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 9,
"arp_style": 0,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
"seq_chain_lenght": 3,
"seq_transpose": 0,
"chord_key_ammount": 6,
"seq_oct_shift": -1,
"seq_element_shift": 3,
"track_type": [
0,
0,
2,
1,
0,
0
],
"content_type": [
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1,
0,
0
],
"seq_name": [
67,
108,
101,
97,
114,
67,
111,
97,
115,
116,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,388 +1,388 @@
{
"seq_velocity": [
120,
0,
0,
120,
120,
0,
0,
0,
120,
90,
100,
84,
120,
0,
0,
0,
105,
80,
105,
70,
106,
98,
106,
70,
126,
97,
106,
70,
106,
99,
90,
65,
120,
0,
0,
120,
120,
83,
106,
79,
120,
0,
120,
91,
120,
120,
120,
120,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
200,
200,
200,
200,
200,
200,
201,
0,
0,
0,
0,
0,
0,
0,
0,
200,
201,
200,
200,
200,
200,
200,
200,
200,
0,
0,
0,
0,
0,
0,
0,
0,
98,
120,
0,
88,
120,
0,
127,
120,
0,
0,
125,
120,
0,
0,
0,
0,
124,
120,
0,
115,
0,
0,
126,
120,
0,
120,
127,
120,
0,
0,
0,
0,
123,
120,
0,
110,
120,
0,
90,
120,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
{
"seq_velocity": [
120,
0,
0,
120,
120,
0,
0,
0,
120,
90,
100,
84,
120,
0,
0,
0,
105,
80,
105,
70,
106,
98,
106,
70,
126,
97,
106,
70,
106,
99,
90,
65,
120,
0,
0,
120,
120,
83,
106,
79,
120,
0,
120,
91,
120,
120,
120,
120,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
200,
200,
200,
200,
200,
200,
201,
0,
0,
0,
0,
0,
0,
0,
0,
200,
201,
200,
200,
200,
200,
200,
200,
200,
0,
0,
0,
0,
0,
0,
0,
0,
98,
120,
0,
88,
120,
0,
127,
120,
0,
0,
125,
120,
0,
0,
0,
0,
124,
120,
0,
115,
0,
0,
126,
120,
0,
120,
127,
120,
0,
0,
0,
0,
123,
120,
0,
110,
120,
0,
90,
120,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,33 +1,33 @@
{
"bank": 90,
"voice": 8,
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 61,
"pan": 26,
"polyphony": 16,
"velocity_level": 100,
"monopoly": 0,
"note_refresh": 0,
"pb_range": 1,
"pb_step": 0,
"mw_range": 50,
"mw_assign": 0,
"mw_mode": 0,
"fc_range": 50,
"fc_assign": 0,
"fc_mode": 0,
"bc_range": 50,
"bc_assign": 0,
"bc_mode": 0,
"at_range": 50,
"at_assign": 0,
"at_mode": 0,
"portamento_mode": 0,
"portamento_glissando": 0,
"portamento_time": 0,
"op_enabled": 63,
"midi_channel": 5
}
{
"bank": 90,
"voice": 8,
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 61,
"pan": 26,
"polyphony": 16,
"velocity_level": 100,
"monopoly": 0,
"note_refresh": 0,
"pb_range": 1,
"pb_step": 0,
"mw_range": 50,
"mw_assign": 0,
"mw_mode": 0,
"fc_range": 50,
"fc_assign": 0,
"fc_mode": 0,
"bc_range": 50,
"bc_assign": 0,
"bc_mode": 0,
"at_range": 50,
"at_assign": 0,
"at_mode": 0,
"portamento_mode": 0,
"portamento_glissando": 0,
"portamento_time": 0,
"op_enabled": 63,
"midi_channel": 5
}

@ -1,33 +1,33 @@
{
"bank": 69,
"voice": 30,
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 65,
"pan": 15,
"polyphony": 16,
"velocity_level": 100,
"monopoly": 0,
"note_refresh": 0,
"pb_range": 1,
"pb_step": 0,
"mw_range": 50,
"mw_assign": 0,
"mw_mode": 0,
"fc_range": 50,
"fc_assign": 0,
"fc_mode": 0,
"bc_range": 50,
"bc_assign": 0,
"bc_mode": 0,
"at_range": 50,
"at_assign": 0,
"at_mode": 0,
"portamento_mode": 0,
"portamento_glissando": 0,
"portamento_time": 0,
"op_enabled": 63,
"midi_channel": 6
}
{
"bank": 69,
"voice": 30,
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 65,
"pan": 15,
"polyphony": 16,
"velocity_level": 100,
"monopoly": 0,
"note_refresh": 0,
"pb_range": 1,
"pb_step": 0,
"mw_range": 50,
"mw_assign": 0,
"mw_mode": 0,
"fc_range": 50,
"fc_assign": 0,
"fc_mode": 0,
"bc_range": 50,
"bc_assign": 0,
"bc_mode": 0,
"at_range": 50,
"at_assign": 0,
"at_mode": 0,
"portamento_mode": 0,
"portamento_glissando": 0,
"portamento_time": 0,
"op_enabled": 63,
"midi_channel": 6
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -66,7 +66,7 @@
"eq_7": 8,
"ep_chorus_frequency": 0,
"ep_chorus_waveform": 0,
"ep_chorus_dept": 0,
"ep_chorus_depth": 0,
"ep_chorus_level": 0,
"ep_reverb_send": 0
}

@ -724,8 +724,8 @@
#define EP_TREBLE_DEFAULT 50
#define EP_PAN_TREMOLO_MIN 0
#define EP_PAN_TREMOLO_MAX 100
#define EP_PAN_TREMOLO_DEFAULT 50
#define EP_PAN_TREMOLO_MAX 40
#define EP_PAN_TREMOLO_DEFAULT 20
#define EP_PAN_LFO_MIN 0
#define EP_PAN_LFO_MAX 100

@ -464,6 +464,8 @@ bool load_sd_drumsettings_json(uint8_t number)
json = SD.open(filename);
if (json)
{
Serial.println("2");
deserializeJson(data_json, json);
json.close();
AudioInterrupts();
@ -775,7 +777,7 @@ bool save_sd_voiceconfig_json(uint8_t vc, uint8_t instance_id)
bool load_sd_fx_json(uint8_t number)
{
number = constrain(number, PERFORMANCE_NUM_MIN, PERFORMANCE_NUM_MAX);
load_sd_drumsettings_json(number);
if (sd_card > 0)
@ -842,7 +844,7 @@ bool load_sd_fx_json(uint8_t number)
configuration.fx.eq_7 = data_json["eq_7"];
configuration.fx.ep_chorus_frequency = data_json["ep_chorus_frequency"];
configuration.fx.ep_chorus_waveform = data_json["ep_chorus_waveform"];
configuration.fx.ep_chorus_depth = data_json["ep_chorus_dept"];
configuration.fx.ep_chorus_depth = data_json["ep_chorus_depth"];
configuration.fx.ep_chorus_level = data_json["ep_chorus_level"];
configuration.fx.ep_reverb_send = data_json["ep_reverb_send"];

Loading…
Cancel
Save