Removed pitch for drumset.

Changed drum panorama UI function.
Added condif initialization code for drumset.
dev
Holger Wirtz 2 years ago
parent 3409d9229c
commit 04994125ed
  1. 39
      MicroDexed.ino
  2. 244
      UI.hpp
  3. 129
      UI_FX_T4.h
  4. BIN
      addon/Drums/BDTrancy.wav
  5. 126
      addon/tools/drumset.cfg
  6. 13
      addon/tools/wav2c.sh
  7. 19
      config.h
  8. 8
      dexed_sd.cpp
  9. 1
      drums.h
  10. 64
      drumset.h

@ -557,9 +557,18 @@ void setup() {
drum_reverb_send_mixer_r.gain(instance_id, 0.0);
drum_reverb_send_mixer_l.gain(instance_id, 0.0);
#endif
}
#endif
// Init drumset config
configuration.drums.drum_midi_channel = DRUM_MIDI_CHANNEL;
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++) {
configuration.drums.drum_vol[i] = mapfloat((drum_config[i].vol_max - drum_config[i].vol_min) / 2.0, 0.0, 1.0, DRUMS_VOL_MIN, DRUMS_VOL_MAX);
configuration.drums.drum_pan[i] = mapfloat(drum_config[i].pan, 0.0, 1.0, DRUMS_PANORAMA_MIN, DRUMS_PANORAMA_MAX);
configuration.drums.drum_reverb_send[i] = mapfloat(drum_config[i].reverb_send, 0.0, 1.0, DRUMS_REVERB_SEND_MIN, DRUMS_REVERB_SEND_MAX);
configuration.drums.drum_pitch[i] = mapfloat(drum_config[i].pitch, 0.0, 1.0, DRUMS_PITCH_MIN, DRUMS_PITCH_MAX);
}
#endif
}
// Setup EPiano
#if defined(USE_FX)
#if defined(USE_EPIANO)
@ -697,20 +706,20 @@ void setup() {
master_mixer_l.gain(instance_id, VOL_MAX_FLOAT);
}
#else
master_mixer_r.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT);
master_mixer_l.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT);
master_mixer_r.gain(MASTER_MIX_CH_DEXED2, 0.0);
master_mixer_l.gain(MASTER_MIX_CH_DEXED2, 0.0);
master_mixer_r.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT);
master_mixer_l.gain(MASTER_MIX_CH_DEXED1, VOL_MAX_FLOAT);
master_mixer_r.gain(MASTER_MIX_CH_DEXED2, 0.0);
master_mixer_l.gain(MASTER_MIX_CH_DEXED2, 0.0);
#endif
master_mixer_r.gain(MASTER_MIX_CH_REVERB, VOL_MAX_FLOAT);
master_mixer_l.gain(MASTER_MIX_CH_REVERB, VOL_MAX_FLOAT);
#if NUM_DRUMS > 0
master_mixer_r.gain(MASTER_MIX_CH_DRUMS, VOL_MAX_FLOAT);
master_mixer_l.gain(MASTER_MIX_CH_DRUMS, VOL_MAX_FLOAT);
configuration.drums.vol = DRUMS_MAIN_VOL_MAX;
configuration.drums.drum_main_vol = DRUMS_MAIN_VOL_MAX;
#else
master_mixer_r.gain(MASTER_MIX_CH_DRUMS, 0.0);
master_mixer_l.gain(MASTER_MIX_CH_DRUMS, 0.0);
master_mixer_r.gain(MASTER_MIX_CH_DRUMS, 0.0);
master_mixer_l.gain(MASTER_MIX_CH_DRUMS, 0.0);
#endif
#if defined(USE_EPIANO)
master_mixer_r.gain(MASTER_MIX_CH_EPIANO, VOL_MAX_FLOAT);
@ -2085,10 +2094,6 @@ void set_sample_pitch(uint8_t sample, float playbackspeed) {
drum_config[sample].pitch = playbackspeed;
}
void set_sample_p_offset(uint8_t sample, float s_offset) {
drum_config[sample].p_offset = s_offset;
}
void set_sample_pan(uint8_t sample, float s_pan) {
drum_config[sample].pan = s_pan;
}
@ -2108,21 +2113,23 @@ void set_sample_reverb_send(uint8_t sample, float s_reverb) {
uint8_t get_sample_note(uint8_t sample) {
return (drum_config[sample].midinote);
}
float get_sample_pitch(uint8_t sample) {
return (drum_config[sample].pitch);
}
float get_sample_p_offset(uint8_t sample) {
return (drum_config[sample].p_offset);
}
float get_sample_pan(uint8_t sample) {
return (drum_config[sample].pan);
}
float get_sample_vol_max(uint8_t sample) {
return (drum_config[sample].vol_max);
}
float get_sample_vol_min(uint8_t sample) {
return (drum_config[sample].vol_min);
}
float get_sample_reverb_send(uint8_t sample) {
return (drum_config[sample].reverb_send);
}

244
UI.hpp

@ -74,7 +74,7 @@ extern void get_sd_performance_name_json(uint8_t number);
extern bool save_sd_performance_json(uint8_t p);
extern uint8_t drum_midi_channel;
extern drum_config_t drum_config[NUM_DRUMSET_CONFIG];
uint8_t activesample; // CAN BE REMOVED LATER!
uint8_t activesample = 0;
#endif
#ifdef SGTL5000_AUDIO_ENHANCE
@ -360,7 +360,6 @@ void UI_func_drums_main_volume(uint8_t param);
void UI_func_drum_volume(uint8_t param);
void UI_func_drum_pan(uint8_t param);
void UI_func_drum_pitch(uint8_t param);
void UI_func_drum_tune_offset(uint8_t param);
char* basename(const char* filename);
char* strip_extension(char* filename);
@ -592,7 +591,7 @@ void lcdml_menu_control(void) {
// Volatile Variables
long g_LCDML_CONTROL_Encoder_position[NUM_ENCODER] = { ENCODER[ENC_R].read(), ENCODER[ENC_L].read() };
bool button[NUM_ENCODER] = { digitalRead(BUT_R_PIN), digitalRead(BUT_L_PIN) };
bool button[NUM_ENCODER] = { bool(digitalRead(BUT_R_PIN)), bool(digitalRead(BUT_L_PIN)) };
/************************************************************************************
Basic encoder handling (from LCDMenuLib2)
@ -3967,7 +3966,10 @@ void UI_handle_OP(uint8_t param) {
}
void UI_func_drum_reverb_send(uint8_t param) {
char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 };
char displayname[8];
memset(displayname, 0, sizeof(displayname));
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
@ -4041,22 +4043,22 @@ void UI_func_drums_main_volume(uint8_t param) {
encoderDir[ENC_R].reset();
lcd_special_chars(BLOCKBAR);
display_bar_int("Drum Main Vol", configuration.drums.vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, true);
display_bar_int("Drum Main Vol", configuration.drums.drum_main_vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, true);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) {
if (LCDML.BT_checkDown())
configuration.drums.vol = constrain(configuration.drums.vol + ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX);
configuration.drums.drum_main_vol = constrain(configuration.drums.drum_main_vol + ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX);
else if (LCDML.BT_checkUp())
configuration.drums.vol = constrain(configuration.drums.vol - ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX);
configuration.drums.drum_main_vol = constrain(configuration.drums.drum_main_vol - ENCODER[ENC_R].speed(), DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX);
}
display_bar_int("Drum Main Vol", configuration.drums.vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, false);
display_bar_int("Drum Main Vol", configuration.drums.drum_main_vol, 1.0, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 3, false, false, false);
master_mixer_r.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT));
master_mixer_l.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT));
master_mixer_r.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.drum_main_vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT));
master_mixer_l.gain(MASTER_MIX_CH_DRUMS, mapfloat(configuration.drums.drum_main_vol, DRUMS_MAIN_VOL_MIN, DRUMS_MAIN_VOL_MAX, 0.0, VOL_MAX_FLOAT));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
@ -4066,99 +4068,16 @@ void UI_func_drums_main_volume(uint8_t param) {
}
}
/* void UI_func_drums_main_volume(uint8_t param)
{
char displayname[4] = {0, 0, 0, 0};
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
temp_int = mapfloat(configuration.drums.vol, 0.0, VOL_MAX_FLOAT, 0, 100);
display.setCursor(0, 0);
display.print(" Drums M.Volume ");
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort()))
{
if (LCDML.BT_checkDown())
{
temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 100);
}
else if (LCDML.BT_checkUp())
{
temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 100);
}
}
display.setCursor(5, 1);
snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int);
display.print(displayname);
display.setCursor(8, 1);
display.print("/100");
master_mixer_r.gain (MASTER_MIX_CH_DRUMS, volume_transform(mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT)));
master_mixer_l.gain (MASTER_MIX_CH_DRUMS, volume_transform(mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT)));
configuration.drums.vol = mapfloat(temp_int, 0, 100, 0.0, VOL_MAX_FLOAT);
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
} */
void UI_func_drum_tune_offset(uint8_t param) {
char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 };
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
temp_int = (int)(drum_config[activesample].p_offset * 200);
display.setCursor(0, 0);
display.print("DrumSmp. Tune");
display.setCursor(1, 1);
display.setCursor(1, 1);
snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample);
display.print(displayname);
display.show(1, 4, 7, basename(drum_config[activesample].name));
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) {
if (LCDML.BT_checkDown()) {
temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 400);
} else if (LCDML.BT_checkUp()) {
temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 400);
}
}
void UI_func_drum_pitch(uint8_t param) {
char displayname[8];
temp_float = mapfloat(temp_int, 0, 400, 0.0, 2.0);
display.setCursor(0, 1);
display.print(" ");
display.setCursor(3, 1);
display.print(" ");
display.setCursor(11, 1);
display.print("[");
display.setCursor(15, 1);
display.print("]");
snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int);
display.setCursor(12, 1);
display.print(displayname);
drum_config[activesample].p_offset = temp_float;
}
memset(displayname, 0, sizeof(displayname));
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
}
void UI_func_drum_pitch(uint8_t param) {
char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 };
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
temp_int = (int)(drum_config[activesample].pitch * 200);
display.setCursor(0, 0);
display.print("DrumSmp. Pitch");
display.setCursor(1, 1);
display.print("Drum Pitch");
display.setCursor(1, 1);
snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample);
display.print(displayname);
@ -4166,27 +4085,7 @@ void UI_func_drum_pitch(uint8_t param) {
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) {
if (LCDML.BT_checkDown()) {
temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), 0, 400);
} else if (LCDML.BT_checkUp()) {
temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 400);
}
}
temp_float = mapfloat(temp_int, 0, 400, 0.0, 2.0);
display.setCursor(0, 1);
display.print(" ");
display.setCursor(3, 1);
display.print(" ");
display.setCursor(11, 1);
display.print("[");
display.setCursor(15, 1);
display.print("]");
snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int);
display.setCursor(12, 1);
display.print(displayname);
drum_config[activesample].pitch = temp_float;
;
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
@ -4196,14 +4095,16 @@ void UI_func_drum_pitch(uint8_t param) {
}
void UI_func_drum_volume(uint8_t param) {
char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 };
char displayname[8];
memset(displayname, 0, sizeof(displayname));
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
temp_int = (int)(drum_config[activesample].vol_max * 100);
display.setCursor(0, 0);
display.print("DrumSmp. Volume");
display.setCursor(1, 1);
display.print("Drum Volume");
display.setCursor(1, 1);
snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample);
display.print(displayname);
@ -4211,19 +4112,7 @@ void UI_func_drum_volume(uint8_t param) {
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
temp_float = mapfloat(temp_int, 0, 100, 0.0, 1.0);
display.setCursor(0, 1);
display.print(" ");
display.setCursor(3, 1);
display.print(" ");
display.setCursor(11, 1);
display.print("[");
display.setCursor(15, 1);
display.print("]");
snprintf_P(displayname, sizeof(displayname), PSTR("%03d"), temp_int);
display.setCursor(12, 1);
display.print(displayname);
drum_config[activesample].vol_max = temp_float;
;
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
@ -4233,52 +4122,47 @@ void UI_func_drum_volume(uint8_t param) {
}
void UI_func_drum_pan(uint8_t param) {
char displayname[8] = { 0, 0, 0, 0, 0, 0, 0 };
char temp[8];
memset(temp, 0, sizeof(temp));
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
temp_int = mapfloat(drum_config[activesample].pan, -1.0, 1.0, -99, 99);
display.setCursor(0, 0);
display.print("DrmSmp. Panorama");
display.setCursor(1, 1);
snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), activesample);
display.print(displayname);
display.show(1, 4, 6, basename(drum_config[activesample].name));
display.print("Drum Panorama");
if (configuration.drums.drum_pan[activesample] > 0)
display.show(0, 14, 4, " >");
else if (configuration.drums.drum_pan[activesample] < 0)
display.show(0, 14, 4, "<");
else
display.show(0, 14, 4, "==");
snprintf_P(temp, sizeof(temp), PSTR("[%02d]"), activesample + 1);
display.show(1, 0, 4, temp);
display.show(1, 4, 9, basename(drum_config[activesample].name));
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()) || (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())) {
if (LCDML.BT_checkDown()) {
temp_int = constrain(temp_int + ENCODER[ENC_R].speed(), -99, 99);
} else if (LCDML.BT_checkUp()) {
temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), -99, 99);
if (LCDML.BT_checkDown())
activesample = (activesample + ENCODER[ENC_R].speed()) % (NUM_DRUMSET_CONFIG - 1);
else if (LCDML.BT_checkUp()) {
uint8_t temp_encoder = ENCODER[ENC_R].speed();
if (activesample - temp_encoder < 0)
activesample = NUM_DRUMSET_CONFIG - (abs(activesample - temp_encoder)) - 1;
else
activesample -= temp_encoder;
}
}
display.setCursor(0, 1);
display.print(" ");
display.setCursor(3, 1);
display.print(" ");
display.setCursor(11, 1);
display.print("[");
display.setCursor(15, 1);
display.print("]");
drum_config[activesample].pan = mapfloat(temp_int, -99, 99, -1.0, 1.0);
temp_int = mapfloat(drum_config[activesample].pan, -1.0, 1.0, -99, 99);
display.setCursor(12, 1);
if (temp_int > 1) {
display.print("R");
} else if (temp_int < 0) {
display.print("L");
} else {
display.print("C");
}
snprintf_P(displayname, sizeof(displayname), PSTR("%02d"), abs(temp_int));
display.setCursor(13, 1);
display.print(displayname);
if (configuration.drums.drum_pan[activesample] > 0)
display.show(0, 14, 4, " >");
else if (configuration.drums.drum_pan[activesample] < 0)
display.show(0, 14, 4, "<");
else
display.show(0, 14, 4, "==");
snprintf_P(temp, sizeof(temp), PSTR("[%02d]"), activesample + 1);
display.show(1, 0, 4, temp);
display.show(1, 4, 9, basename(drum_config[activesample].name));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
@ -5017,9 +4901,9 @@ void UI_func_save_voice(uint8_t param) {
configuration.dexed[selected_instance_id].voice = constrain(configuration.dexed[selected_instance_id].voice - ENCODER[ENC_R].speed(), 0, MAX_VOICES - 1);
if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
if (!get_voice_by_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, configuration.dexed[selected_instance_id].voice, voice_name, sizeof(voice_name)))
strncpy(voice_name, "*ERROR*", sizeof(voice_name));
strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1);
display.show(1, 0, 2, configuration.dexed[selected_instance_id].voice + 1);
display.show(1, 3, 10, voice_name);
@ -5039,7 +4923,7 @@ void UI_func_save_voice(uint8_t param) {
switch (mode) {
case 1:
if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
display.setCursor(0, 0);
display.print(F("Save to Bank"));
display.show(1, 0, 2, configuration.dexed[selected_instance_id].bank);
@ -5049,9 +4933,9 @@ void UI_func_save_voice(uint8_t param) {
break;
case 2:
if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
if (!get_voice_by_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, configuration.dexed[selected_instance_id].voice, voice_name, sizeof(voice_name)))
strncpy(voice_name, "*ERROR*", sizeof(voice_name));
strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1);
display.show(0, 0, 16, "Save to Bank");
display.show(0, 13, 2, configuration.dexed[selected_instance_id].bank);
@ -5317,7 +5201,7 @@ void UI_func_sysex_send_bank(uint8_t param) {
display.setCursor(0, 0);
display.print(F("MIDI Send Bank"));
if (!get_bank_name(configuration.dexed[selected_instance_id].bank, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
display.show(1, 2, 1, "[");
display.show(1, 14, 1, "]");
display.show(1, 0, 2, configuration.dexed[selected_instance_id].bank);
@ -5444,9 +5328,9 @@ void UI_func_sysex_send_voice(uint8_t param) {
else if (LCDML.BT_checkUp() && voice_number > 0)
voice_number = constrain(voice_number - ENCODER[ENC_R].speed(), 0, MAX_VOICES - 1);
if (!get_bank_name(bank_number, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
if (!get_voice_by_bank_name(bank_number, bank_name, voice_number, voice_name, sizeof(voice_name)))
strncpy(voice_name, "*ERROR*", sizeof(voice_name));
strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1);
display.show(1, 0, 2, voice_number + 1);
display.show(1, 3, 10, voice_name);
@ -5458,9 +5342,9 @@ void UI_func_sysex_send_voice(uint8_t param) {
switch (mode) {
case 1:
if (!get_bank_name(bank_number, bank_name, sizeof(bank_name)))
strncpy(bank_name, "*ERROR*", sizeof(bank_name));
strncpy(bank_name, "*ERROR*", sizeof(bank_name) - 1);
if (!get_voice_by_bank_name(bank_number, bank_name, voice_number, voice_name, sizeof(voice_name)))
strncpy(voice_name, "*ERROR*", sizeof(voice_name));
strncpy(voice_name, "*ERROR*", sizeof(voice_name) - 1);
display.show(1, 0, 2, voice_number + 1);
display.show(1, 3, 10, voice_name);

@ -93,68 +93,67 @@ LCDML_add(59, LCDML_0_2, 2, "Drum Volumes", UI_func_drum_volume);
LCDML_add(60, LCDML_0_2, 3, "Drum Pan", UI_func_drum_pan);
LCDML_add(61, LCDML_0_2, 4, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(62, LCDML_0_2, 5, "Drum Pitch", UI_func_drum_pitch);
LCDML_add(63, LCDML_0_2, 6, "Drum Tune", UI_func_drum_tune_offset);
LCDML_add(64, LCDML_0_2, 7, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(65, LCDML_0, 3, "E-Piano", NULL);
LCDML_add(66, LCDML_0_3, 1, "Voice Level", UI_func_epiano_sound_intensity);
LCDML_add(67, LCDML_0_3, 2, "Panorama", UI_func_epiano_panorama);
LCDML_add(68, LCDML_0_3, 3, "Sound", NULL);
LCDML_add(69, LCDML_0_3_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay;
LCDML_add(70, LCDML_0_3_3, 2, "Release", UI_func_epiano_release); // uint8_t release;
LCDML_add(71, LCDML_0_3_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness;
LCDML_add(72, LCDML_0_3_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble;
LCDML_add(73, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo;
LCDML_add(74, LCDML_0_3_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune;
LCDML_add(75, LCDML_0_3_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune;
LCDML_add(76, LCDML_0_3, 4, "Effects", NULL);
LCDML_add(77, LCDML_0_3_4, 1, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive;
LCDML_add(78, LCDML_0_3_4, 2, "Tremolo", NULL);
LCDML_add(79, LCDML_0_3_4_2, 1, "Width", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo;
LCDML_add(80, LCDML_0_3_4_2, 2, "LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo;
LCDML_add(81, LCDML_0_3_4, 3, "Chorus", NULL);
LCDML_add(82, LCDML_0_3_4_3, 1, "Frequency", UI_func_epiano_chorus_frequency);
LCDML_add(83, LCDML_0_3_4_3, 2, "Waveform", UI_func_epiano_chorus_waveform);
LCDML_add(84, LCDML_0_3_4_3, 3, "Depth", UI_func_epiano_chorus_depth);
LCDML_add(85, LCDML_0_3_4_3, 4, "Level", UI_func_epiano_chorus_level);
LCDML_add(86, LCDML_0_3_4, 4, "Reverb Send", UI_func_epiano_reverb_send);
LCDML_add(87, LCDML_0_3, 6, "MIDI", NULL);
LCDML_add(88, LCDML_0_3_6, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel;
LCDML_add(89, LCDML_0_3_6, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note;
LCDML_add(90, LCDML_0_3_6, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note;
LCDML_add(91, LCDML_0_3, 7, "Setup", NULL);
LCDML_add(92, LCDML_0_3_7, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose;
LCDML_add(93, LCDML_0_3_7, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony;
LCDML_add(94, LCDML_0_3_7, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense;
LCDML_add(95, LCDML_0, 4, "Master Effects", NULL);
LCDML_add(96, LCDML_0_4, 1, "Reverb", NULL);
LCDML_add(97, LCDML_0_4_1, 1, "Roomsize", UI_func_reverb_roomsize);
LCDML_add(98, LCDML_0_4_1, 2, "Lowpass", UI_func_reverb_lowpass);
LCDML_add(99, LCDML_0_4_1, 3, "Lodamp", UI_func_reverb_lodamp);
LCDML_add(100, LCDML_0_4_1, 4, "Hidamp", UI_func_reverb_hidamp);
LCDML_add(101, LCDML_0_4_1, 5, "Diffusion", UI_func_reverb_diffusion);
LCDML_add(102, LCDML_0_4_1, 6, "Level", UI_func_reverb_level);
LCDML_add(103, LCDML_0_4_1, 7, "Reverb Send", UI_func_reverb_send);
LCDML_add(104, LCDML_0_4, 2, "EQ", NULL);
LCDML_add(105, LCDML_0_4_2, 1, "Low-Cut", UI_func_eq_1);
LCDML_add(106, LCDML_0_4_2, 2, "110Hz", UI_func_eq_2);
LCDML_add(107, LCDML_0_4_2, 3, "220Hz", UI_func_eq_3);
LCDML_add(108, LCDML_0_4_2, 4, "1000Hz", UI_func_eq_4);
LCDML_add(109, LCDML_0_4_2, 5, "2000Hz", UI_func_eq_5);
LCDML_add(110, LCDML_0_4_2, 6, "7000Hz", UI_func_eq_6);
LCDML_add(111, LCDML_0_4_2, 7, "High-Cut", UI_func_eq_7)
LCDML_add(112, LCDML_0, 5, "Load/Save", NULL);
LCDML_add(113, LCDML_0_5, 1, "Load Perf.", UI_func_load_performance);
LCDML_add(114, LCDML_0_5, 2, "Save Perf.", UI_func_save_performance);
LCDML_add(115, LCDML_0_5, 3, "Name Perf.", UI_func_set_performance_name);
LCDML_add(116, LCDML_0_5, 4, "MIDI", NULL);
LCDML_add(117, LCDML_0_5_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(118, LCDML_0_5_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank);
LCDML_add(119, LCDML_0_5_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice);
LCDML_add(120, LCDML_0, 6, "System", NULL);
LCDML_add(121, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(122, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(123, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(124, LCDML_0_6, 4, "Startup", UI_func_startup);
LCDML_add(125, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(126, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 126
LCDML_add(63, LCDML_0_2, 6, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(64, LCDML_0, 3, "E-Piano", NULL);
LCDML_add(65, LCDML_0_3, 1, "Voice Level", UI_func_epiano_sound_intensity);
LCDML_add(66, LCDML_0_3, 2, "Panorama", UI_func_epiano_panorama);
LCDML_add(67, LCDML_0_3, 3, "Sound", NULL);
LCDML_add(68, LCDML_0_3_3, 1, "Decay", UI_func_epiano_decay); // uint8_t decay;
LCDML_add(69, LCDML_0_3_3, 2, "Release", UI_func_epiano_release); // uint8_t release;
LCDML_add(70, LCDML_0_3_3, 3, "Hardness", UI_func_epiano_hardness); // uint8_t hardness;
LCDML_add(71, LCDML_0_3_3, 4, "Treble", UI_func_epiano_treble); // uint8_t treble;
LCDML_add(72, LCDML_0_3_3, 5, "Stereo", UI_func_epiano_stereo); // uint8_t stereo;
LCDML_add(73, LCDML_0_3_3, 6, "Tune", UI_func_epiano_tune); // uint8_t tune;
LCDML_add(74, LCDML_0_3_3, 7, "Detune", UI_func_epiano_detune); // uint8_t detune;
LCDML_add(75, LCDML_0_3, 4, "Effects", NULL);
LCDML_add(76, LCDML_0_3_4, 1, "Overdrive", UI_func_epiano_overdrive); // uint8_t overdrive;
LCDML_add(77, LCDML_0_3_4, 2, "Tremolo", NULL);
LCDML_add(78, LCDML_0_3_4_2, 1, "Width", UI_func_epiano_pan_tremolo); // uint8_t pan_tremolo;
LCDML_add(79, LCDML_0_3_4_2, 2, "LFO", UI_func_epiano_pan_lfo); // uint8_t pan_lfo;
LCDML_add(80, LCDML_0_3_4, 3, "Chorus", NULL);
LCDML_add(81, LCDML_0_3_4_3, 1, "Frequency", UI_func_epiano_chorus_frequency);
LCDML_add(82, LCDML_0_3_4_3, 2, "Waveform", UI_func_epiano_chorus_waveform);
LCDML_add(83, LCDML_0_3_4_3, 3, "Depth", UI_func_epiano_chorus_depth);
LCDML_add(84, LCDML_0_3_4_3, 4, "Level", UI_func_epiano_chorus_level);
LCDML_add(85, LCDML_0_3_4, 4, "Reverb Send", UI_func_epiano_reverb_send);
LCDML_add(86, LCDML_0_3, 6, "MIDI", NULL);
LCDML_add(87, LCDML_0_3_6, 1, "MIDI Channel", UI_func_epiano_midi_channel); // uint8_t midi_channel;
LCDML_add(88, LCDML_0_3_6, 2, "Lowest Note", UI_func_epiano_lowest_note); // uint8_t lowest_note;
LCDML_add(89, LCDML_0_3_6, 3, "Highest Note", UI_func_epiano_highest_note); // uint8_t highest_note;
LCDML_add(90, LCDML_0_3, 7, "Setup", NULL);
LCDML_add(91, LCDML_0_3_7, 4, "Transpose", UI_func_epiano_transpose); // uint8_t transpose;
LCDML_add(92, LCDML_0_3_7, 1, "Polyphony", UI_func_epiano_polyphony); // uint8_t polyphony;
LCDML_add(93, LCDML_0_3_7, 2, "Vel. Sense", UI_func_epiano_velocity_sense); // uint8_t velocity_sense;
LCDML_add(94, LCDML_0, 4, "Master Effects", NULL);
LCDML_add(95, LCDML_0_4, 1, "Reverb", NULL);
LCDML_add(96, LCDML_0_4_1, 1, "Roomsize", UI_func_reverb_roomsize);
LCDML_add(97, LCDML_0_4_1, 2, "Lowpass", UI_func_reverb_lowpass);
LCDML_add(98, LCDML_0_4_1, 3, "Lodamp", UI_func_reverb_lodamp);
LCDML_add(99, LCDML_0_4_1, 4, "Hidamp", UI_func_reverb_hidamp);
LCDML_add(100, LCDML_0_4_1, 5, "Diffusion", UI_func_reverb_diffusion);
LCDML_add(101, LCDML_0_4_1, 6, "Level", UI_func_reverb_level);
LCDML_add(102, LCDML_0_4_1, 7, "Reverb Send", UI_func_reverb_send);
LCDML_add(103, LCDML_0_4, 2, "EQ", NULL);
LCDML_add(104, LCDML_0_4_2, 1, "Low-Cut", UI_func_eq_1);
LCDML_add(105, LCDML_0_4_2, 2, "110Hz", UI_func_eq_2);
LCDML_add(106, LCDML_0_4_2, 3, "220Hz", UI_func_eq_3);
LCDML_add(107, LCDML_0_4_2, 4, "1000Hz", UI_func_eq_4);
LCDML_add(108, LCDML_0_4_2, 5, "2000Hz", UI_func_eq_5);
LCDML_add(109, LCDML_0_4_2, 6, "7000Hz", UI_func_eq_6);
LCDML_add(110, LCDML_0_4_2, 7, "High-Cut", UI_func_eq_7)
LCDML_add(111, LCDML_0, 5, "Load/Save", NULL);
LCDML_add(112, LCDML_0_5, 1, "Load Perf.", UI_func_load_performance);
LCDML_add(113, LCDML_0_5, 2, "Save Perf.", UI_func_save_performance);
LCDML_add(114, LCDML_0_5, 3, "Name Perf.", UI_func_set_performance_name);
LCDML_add(115, LCDML_0_5, 4, "MIDI", NULL);
LCDML_add(116, LCDML_0_5_4, 1, "MIDI Recv Bank", UI_func_sysex_receive_bank);
LCDML_add(117, LCDML_0_5_4, 2, "MIDI Snd Bank", UI_func_sysex_send_bank);
LCDML_add(118, LCDML_0_5_4, 3, "MIDI Snd Voice", UI_func_sysex_send_voice);
LCDML_add(119, LCDML_0, 6, "System", NULL);
LCDML_add(120, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(121, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(122, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(123, LCDML_0_6, 4, "Startup", UI_func_startup);
LCDML_add(124, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(125, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 125

Binary file not shown.

@ -1,64 +1,64 @@
# class, midinote, name, shortname, pitch, p_offset, pan, vol_max, vol_min, reverb_send, filename
DRUM_BASS, MIDI_A2, Clap808, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav
DRUM_BASS, MIDI_B2, S_kick_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav
DRUM_BASS, MIDI_C3, S_kick2_8, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick2_8.wav
DRUM_PERCUSSION, MIDI_CIS3, S_Stick_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snareStick_1.wav
DRUM_SNARE, MIDI_D3, S_snare_Ghost_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_Ghost_1.wav
DRUM_SNARE, MIDI_DIS3, S_snare2_Ghost_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare2_Ghost_1.wav
DRUM_SNARE, MIDI_E3, S_snare_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_2.wav
DRUM_BASS, MIDI_F3, S_loTom_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav
DRUM_BASS, MIDI_FIS3, S_hhClosed_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hhClosed_1.wav
DRUM_LOWTOM, MIDI_G3, S_loTom_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav
DRUM_BASS, MIDI_GIS3, S_hh_o_1_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_1_2.wav
DRUM_HIGHTOM, MIDI_A3, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_BASS, MIDI_AIS3, S_hh_o_5_4 , B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_5_4.wav
DRUM_HIGHTOM, MIDI_B3, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_HIGHTOM, MIDI_C4, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_BASS, MIDI_CIS4, S_splash1_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_splash1_1.wav
DRUM_HIGHTOM, MIDI_D4, S_hiTom_5, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_CRASH, MIDI_DIS4, S_china1_4, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_china1_4.wav
DRUM_CRASH, MIDI_E4, S_china2_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_china2_1.wav
DRUM_RIDE, MIDI_F4, S_ride1Bell_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav
DRUM_RIDE, MIDI_FIS4, S_ride1Bell_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav
DRUM_CRASH, MIDI_G4, S_crash1_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_crash1_1.wav
DRUM_BASS, MIDI_GIS4, S_cowbell_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_cowbell_2.wav
DRUM_RIDE, MIDI_A4, S_ride2Crash_2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2Crash_2.wav
DRUM_RIDE, MIDI_AIS4, S_ride2_1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2_1.wav
DRUM_BASS, MIDI_B4, 808Kick, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, Kick808.wav
DRUM_BASS, MIDI_C5, phkick1, B, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, phKick1.wav
DRUM_SNARE, MIDI_CIS5, rims1, R, 0.0, 0.0, -0.2, 0.7, 0.0, 0.0, Rim808.wav
DRUM_SNARE, MIDI_D5, Shaker, R, 0.0, 0.0, -0.2, 0.5, 0.0, 0.0, Shaker.wav
DRUM_HANDCLAP, MIDI_DIS5, LNclap1, C, 0.0, 0.0, 0.1, 0.9, 0.0, 0.1, LnClap.wav
DRUM_SNARE, MIDI_E5, LNsnare1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, LnSnare1.wav
DRUM_BASS, MIDI_F5, Bdtrancy, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, BDTrancy.wav
DRUM_HIHAT, MIDI_FIS5, hhcl1, H, 0.0, 0.0, 1.0, 0.6, 0.0, 0.0, HhCL1-808.wav
DRUM_BASS, MIDI_G5, Belltree, B, 0.0, 0.0, 0.0, 0.7, 0.0, 0.0, Belltree.wav
DRUM_BASS, MIDI_GIS5, Bongo16, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo16.wav
DRUM_BASS, MIDI_A5, Bongo27, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo27.wav
DRUM_BASS, MIDI_AIS5, Casta, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Casta.wav
DRUM_BASS, MIDI_B5, Cr78kick, B, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, CR78Kick.wav
DRUM_HIHAT, MIDI_C6, Cr78tmb1, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb1.wav
DRUM_HIHAT, MIDI_CIS6, Cr78tmb2, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb2.wav
DRUM_BASS, MIDI_D6, Crash1, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Crash1.wav
DRUM_BASS, MIDI_DIS6, Dmpop, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, DMpop.wav
DRUM_BASS, MIDI_E6, Electr1, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Electr1.wav
DRUM_BASS, MIDI_F6, Excow, B, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, EXcow.wav
DRUM_PERCUSSION, MIDI_FIS6, Tamb, T, 0.0, 0.0, -0.2, 0.6, 0.0, 0.0, Tamb.wav
DRUM_PERCUSSION, MIDI_GIS6, Cowbell, S, 0.0, 0.0, 0.2, 0.6, 0.0, 0.0, CowBell.wav
DRUM_HIHAT, MIDI_G6, 660HatC1, T, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HatC660.wav
DRUM_HIHAT, MIDI_A6, Hhopen1, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HHopen1.wav
DRUM_PERCUSSION, MIDI_AIS6, Histicks, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HiSticks.wav
DRUM_PERCUSSION, MIDI_B6, Hr16snr2, S, 0.0, 0.0, 0.0, 0.6, 0.0, 0.0, HR16Snr2.wav
DRUM_HIGHTOM, MIDI_C7, Xrhitom, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, XRHiTom.wav
DRUM_PERCUSSION, MIDI_CIS7, Tick1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Tick1.wav
DRUM_PERCUSSION, MIDI_D7, M1-18, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, M1-18.wav
DRUM_PERCUSSION, MIDI_DIS7, Md16_clp, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, MD16_CLP.wav
DRUM_HIHAT, MIDI_E7, Ohhwav, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, OHH909.wav
DRUM_PERCUSSION, MIDI_F7, Quijada, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Quijada.wav
DRUM_PERCUSSION, MIDI_FIS7, tabla1, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, R8Tabla1.wav
DRUM_PERCUSSION, MIDI_G7, Ride808, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Ride808.wav
DRUM_PERCUSSION, MIDI_GIS7, Scratch1, S, 0.0, 0.0, 0.0, 0.7, 0.0, 0.0, scratch1.wav
DRUM_PERCUSSION, MIDI_A7, Tomlow, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, TomLow.wav
DRUM_PERCUSSION, MIDI_AIS7, Tom808, S, 0.0, 0.0, 0.0, 0.9, 0.0, 0.0, Tom808.wav
DRUM_BASS, MIDI_B7, Vl1lbeep, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Lbeep.wav
DRUM_BASS, MIDI_C8, Vl1hbeep, B, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Hbeep.wav
DRUM_BASS, MIDI_A2, Clap808, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav
DRUM_BASS, MIDI_B2, S_kick_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick_1.wav
DRUM_BASS, MIDI_C3, S_kick2_8, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_kick2_8.wav
DRUM_PERCUSSION, MIDI_CIS3, S_Stick_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snareStick_1.wav
DRUM_SNARE, MIDI_D3, S_snare_Ghost_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_Ghost_1.wav
DRUM_SNARE, MIDI_DIS3, S_snare2_Ghost_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare2_Ghost_1.wav
DRUM_SNARE, MIDI_E3, S_snare_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_snare_2.wav
DRUM_BASS, MIDI_F3, S_loTom_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav
DRUM_BASS, MIDI_FIS3, S_hhClosed_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hhClosed_1.wav
DRUM_LOWTOM, MIDI_G3, S_loTom_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_loTom_1.wav
DRUM_BASS, MIDI_GIS3, S_hh_o_1_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_1_2.wav
DRUM_HIGHTOM, MIDI_A3, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_BASS, MIDI_AIS3, S_hh_o_5_4, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hh_o_5_4.wav
DRUM_HIGHTOM, MIDI_B3, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_HIGHTOM, MIDI_C4, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_BASS, MIDI_CIS4, S_splash1_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_splash1_1.wav
DRUM_HIGHTOM, MIDI_D4, S_hiTom_5, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_hiTom_5.wav
DRUM_CRASH, MIDI_DIS4, S_china1_4, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_china1_4.wav
DRUM_CRASH, MIDI_E4, S_china2_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_china2_1.wav
DRUM_RIDE, MIDI_F4, S_ride1Bell_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav
DRUM_RIDE, MIDI_FIS4, S_ride1Bell_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride1Bell_1.wav
DRUM_CRASH, MIDI_G4, S_crash1_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_crash1_1.wav
DRUM_BASS, MIDI_GIS4, S_cowbell_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_cowbell_2.wav
DRUM_RIDE, MIDI_A4, S_ride2Crash_2, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2Crash_2.wav
DRUM_RIDE, MIDI_AIS4, S_ride2_1, B, 0.0, 0.0, 0.8, 0.0, 0.0, S_ride2_1.wav
DRUM_BASS, MIDI_B4, 808Kick, B, 0.0, 0.0, 0.8, 0.0, 0.0, Kick808.wav
DRUM_BASS, MIDI_C5, phkick1, B, 0.0, 0.0, 1.0, 0.0, 0.0, phKick1.wav
DRUM_SNARE, MIDI_CIS5, rims1, R, 0.0, -0.2, 0.7, 0.0, 0.0, Rim808.wav
DRUM_SNARE, MIDI_D5, Shaker, R, 0.0, -0.2, 0.5, 0.0, 0.0, Shaker.wav
DRUM_HANDCLAP, MIDI_DIS5, LNclap1, C, 0.0, 0.1, 0.9, 0.0, 0.1, LnClap.wav
DRUM_SNARE, MIDI_E5, LNsnare1, S, 0.0, 0.0, 0.9, 0.0, 0.0, LnSnare1.wav
DRUM_BASS, MIDI_F5, Bdtrancy, B, 0.0, 0.0, 0.9, 0.0, 0.0, BDTrancy.wav
DRUM_HIHAT, MIDI_FIS5, hhcl1, H, 0.0, 1.0, 0.6, 0.0, 0.0, HhCL1-808.wav
DRUM_BASS, MIDI_G5, Belltree, B, 0.0, 0.0, 0.7, 0.0, 0.0, Belltree.wav
DRUM_BASS, MIDI_GIS5, Bongo16, B, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo16.wav
DRUM_BASS, MIDI_A5, Bongo27, B, 0.0, 0.0, 0.9, 0.0, 0.0, Bongo27.wav
DRUM_BASS, MIDI_AIS5, Casta, B, 0.0, 0.0, 0.9, 0.0, 0.0, Casta.wav
DRUM_BASS, MIDI_B5, Cr78kick, B, 0.0, 0.0, 1.0, 0.0, 0.0, CR78Kick.wav
DRUM_HIHAT, MIDI_C6, Cr78tmb1, B, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb1.wav
DRUM_HIHAT, MIDI_CIS6, Cr78tmb2, B, 0.0, 0.0, 0.8, 0.0, 0.0, CR78Tmb2.wav
DRUM_BASS, MIDI_D6, Crash1, B, 0.0, 0.0, 0.9, 0.0, 0.0, Crash1.wav
DRUM_BASS, MIDI_DIS6, Dmpop, B, 0.0, 0.0, 0.9, 0.0, 0.0, DMpop.wav
DRUM_BASS, MIDI_E6, Electr1, B, 0.0, 0.0, 0.9, 0.0, 0.0, Electr1.wav
DRUM_BASS, MIDI_F6, Excow, B, 0.0, 0.0, 0.9, 0.0, 0.0, EXcow.wav
DRUM_PERCUSSION, MIDI_FIS6, Tamb, T, 0.0, -0.2, 0.6, 0.0, 0.0, Tamb.wav
DRUM_PERCUSSION, MIDI_GIS6, Cowbell, S, 0.0, 0.2, 0.6, 0.0, 0.0, CowBell.wav
DRUM_HIHAT, MIDI_G6, 660HatC1, T, 0.0, 0.0, 0.6, 0.0, 0.0, HatC660.wav
DRUM_HIHAT, MIDI_A6, Hhopen1, S, 0.0, 0.0, 0.6, 0.0, 0.0, HHopen1.wav
DRUM_PERCUSSION, MIDI_AIS6, Histicks, S, 0.0, 0.0, 0.6, 0.0, 0.0, HiSticks.wav
DRUM_PERCUSSION, MIDI_B6, Hr16snr2, S, 0.0, 0.0, 0.6, 0.0, 0.0, HR16Snr2.wav
DRUM_HIGHTOM, MIDI_C7, Xrhitom, B, 0.0, 0.0, 0.8, 0.0, 0.0, XRHiTom.wav
DRUM_PERCUSSION, MIDI_CIS7, Tick1, S, 0.0, 0.0, 0.9, 0.0, 0.0, Tick1.wav
DRUM_PERCUSSION, MIDI_D7, M1-18, S, 0.0, 0.0, 0.9, 0.0, 0.0, M1-18.wav
DRUM_PERCUSSION, MIDI_DIS7, Md16_clp, S, 0.0, 0.0, 0.9, 0.0, 0.0, MD16_CLP.wav
DRUM_HIHAT, MIDI_E7, Ohhwav, S, 0.0, 0.0, 0.9, 0.0, 0.0, OHH909.wav
DRUM_PERCUSSION, MIDI_F7, Quijada, S, 0.0, 0.0, 0.9, 0.0, 0.0, Quijada.wav
DRUM_PERCUSSION, MIDI_FIS7, tabla1, S, 0.0, 0.0, 0.9, 0.0, 0.0, R8Tabla1.wav
DRUM_PERCUSSION, MIDI_G7, Ride808, S, 0.0, 0.0, 0.9, 0.0, 0.0, Ride808.wav
DRUM_PERCUSSION, MIDI_GIS7, Scratch1, S, 0.0, 0.0, 0.7, 0.0, 0.0, scratch1.wav
DRUM_PERCUSSION, MIDI_A7, Tomlow, S, 0.0, 0.0, 0.9, 0.0, 0.0, TomLow.wav
DRUM_PERCUSSION, MIDI_AIS7, Tom808, S, 0.0, 0.0, 0.9, 0.0, 0.0, Tom808.wav
DRUM_BASS, MIDI_B7, Vl1lbeep, B, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Lbeep.wav
DRUM_BASS, MIDI_C8, Vl1hbeep, B, 0.0, 0.0, 0.8, 0.0, 0.0, vl1-Hbeep.wav

@ -119,12 +119,11 @@ do
sample['c_name']=`echo "DRUM_${sample[c_name]}"`
sample['shortname']=`echo "${samplecfg[3]}" | xargs`
sample['pitch']=`echo "${samplecfg[4]}" | xargs`
sample['p_offset']=`echo "${samplecfg[5]}" | xargs`
sample['pan']=`echo "${samplecfg[6]}" | xargs`
sample['vol_max']=`echo "${samplecfg[7]}" | xargs`
sample['vol_min']=`echo "${samplecfg[8]}" | xargs`
sample['reverb_send']=`echo "${samplecfg[9]}" | xargs`
sample['filename']=`echo "${samplecfg[10]}" | xargs`
sample['pan']=`echo "${samplecfg[5]}" | xargs`
sample['vol_max']=`echo "${samplecfg[6]}" | xargs`
sample['vol_min']=`echo "${samplecfg[7]}" | xargs`
sample['reverb_send']=`echo "${samplecfg[8]}" | xargs`
sample['filename']=`echo "${samplecfg[9]}" | xargs`
if [ -f "${WAV_DIR}/${sample['filename']}" ]
then
@ -194,7 +193,6 @@ do
"${sample[shortname]}",
${sample[len]},
${sample[pitch]},
${sample[p_offset]},
${sample[pan]},
${sample[vol_max]},
${sample[vol_min]},
@ -228,7 +226,6 @@ cat >> "${DRUMS_H}" << EOF
0.0,
0.0,
0.0,
0.0,
0.0
}
};

@ -664,6 +664,18 @@
#define DRUMS_MAIN_VOL_MAX 100
#define DRUMS_MAIN_VOL_DEFAULT 80
#define DRUMS_PANORAMA_MIN 0
#define DRUMS_PANORAMA_MAX 99
#define DRUMS_VOL_MIN 0
#define DRUMS_VOL_MAX 99
#define DRUMS_REVERB_SEND_MIN 0
#define DRUMS_REVERB_SEND_MAX 99
#define DRUMS_PITCH_MIN 0
#define DRUMS_PITCH_MAX 99
#define EQ_1_MIN 15
#define EQ_1_MAX 250
#define EQ_1_DEFAULT 50
@ -919,7 +931,12 @@ typedef struct performance_s {
} performance_t;
typedef struct drums_s {
uint8_t vol;
uint8_t drum_main_vol;
uint8_t drum_midi_channel;
uint8_t drum_vol[NUM_DRUMSET_CONFIG - 1];
int8_t drum_pan[NUM_DRUMSET_CONFIG - 1];
uint8_t drum_reverb_send[NUM_DRUMSET_CONFIG - 1];
uint8_t drum_pitch[NUM_DRUMSET_CONFIG - 1];
} drum_t;
typedef struct configuration_s {

@ -45,7 +45,6 @@ extern void check_configuration_epiano(void);
extern float midi_volume_transform(uint8_t midi_amp);
extern void set_sample_note(uint8_t sample, uint8_t note);
extern void set_sample_pitch(uint8_t sample, float playbackspeed);
extern void set_sample_p_offset(uint8_t sample, float s_offset);
extern void set_sample_pan(uint8_t sample, float s_pan);
extern void set_sample_vol_max(uint8_t sample, float s_max);
extern void set_sample_vol_min(uint8_t sample, float s_min);
@ -57,7 +56,6 @@ extern void dac_unmute(void);
extern void check_configuration_sys(void);
extern uint8_t get_sample_note(uint8_t sample);
extern float get_sample_pitch(uint8_t sample);
extern float get_sample_p_offset(uint8_t sample);
extern float get_sample_pan(uint8_t sample);
extern float get_sample_vol_max(uint8_t sample);
extern float get_sample_vol_min(uint8_t sample);
@ -466,7 +464,7 @@ bool load_sd_drumsettings_json(uint8_t number)
Serial.println();
#endif
configuration.drums.vol = data_json["drums_volume"];
configuration.drums.drum_main_vol = data_json["drums_volume"];
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++)
{
@ -475,7 +473,6 @@ bool load_sd_drumsettings_json(uint8_t number)
if (((int)data_json["note"][i] > 0 && find_drum_number_from_note(data_json["note"][i]) > 0) || (i == 0 && (int)data_json["note"][i] == 210))
{
set_sample_pitch( drumnumber, data_json["pitch"][i] );
set_sample_p_offset ( drumnumber, data_json["p_offset"][i] );
set_sample_pan( drumnumber, data_json["pan"][i]) ;
set_sample_vol_max( drumnumber, data_json["vol_max"][i]) ;
set_sample_vol_min( drumnumber, data_json["vol_min"][i] );
@ -535,12 +532,11 @@ bool save_sd_drumsettings_json(uint8_t number)
json = SD.open(filename, FILE_WRITE);
if (json)
{
data_json["drums_volume"] = configuration.drums.vol;
data_json["drums_volume"] = configuration.drums.drum_main_vol;
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG - 1; i++)
{
data_json["note"][i] = get_sample_note(i);
data_json["pitch"][i] = get_sample_pitch(i);
data_json["p_offset"][i] = get_sample_p_offset(i);
data_json["pan"][i] = get_sample_pan(i);
data_json["vol_max"][i] = get_sample_vol_max(i);
data_json["vol_min"][i] = get_sample_vol_min(i);

@ -37,7 +37,6 @@ typedef struct drum_config_s {
char shortname[2]; // 1 char name for sequencer
uint32_t len; // number of elements in drum_data
float32_t pitch; // variable pitch per note for sequencer
float32_t p_offset; // "static" pitch offset to correct root note to root of other samples
float32_t pan; // Panorama (-1.0 - +1.0)
float32_t vol_max; // max. Volume (0.0 - 1.0)
float32_t vol_min; // min. Volume (0.0 - 1.0, should be <= vol_max)

@ -237918,7 +237918,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
19520,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -237933,7 +237932,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
19520,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -237948,7 +237946,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
19200,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -237963,7 +237960,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
10432,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -237978,7 +237974,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
19008,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -237993,7 +237988,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
22464,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238008,7 +238002,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
17920,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238023,7 +238016,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
40320,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238038,7 +238030,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
6784,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238053,7 +238044,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
40320,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238068,7 +238058,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
18240,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238083,7 +238072,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
23040,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238098,7 +238086,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
80320,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238113,7 +238100,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
23040,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238128,7 +238114,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
23040,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238143,7 +238128,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
57856,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238158,7 +238142,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
23040,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238173,7 +238156,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
75840,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238188,7 +238170,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
68864,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238203,7 +238184,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
58752,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238218,7 +238198,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
58752,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238233,7 +238212,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
112064,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238248,7 +238226,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
18368,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238263,7 +238240,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
132160,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238278,7 +238254,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
77504,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238293,7 +238268,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
26688,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238308,7 +238282,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
4800,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
@ -238322,7 +238295,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"R",
768,
0.0,
0.0,
-0.2,
0.7,
0.0,
@ -238337,7 +238309,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"R",
1792,
0.0,
0.0,
-0.2,
0.5,
0.0,
@ -238352,7 +238323,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"C",
6976,
0.0,
0.0,
0.1,
0.9,
0.0,
@ -238368,7 +238338,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
10560,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238383,7 +238352,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
7872,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238397,7 +238365,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"H",
6208,
0.0,
0.0,
1.0,
0.6,
0.0,
@ -238413,7 +238380,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
121408,
0.0,
0.0,
0.0,
0.7,
0.0,
0.0
@ -238428,7 +238394,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
6464,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238443,7 +238408,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
11712,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238458,7 +238422,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
2048,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238473,7 +238436,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
10048,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
@ -238488,7 +238450,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
7552,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238503,7 +238464,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
10880,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238518,7 +238478,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
72768,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238533,7 +238492,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
7808,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238548,7 +238506,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
2880,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238563,7 +238520,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
18368,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238577,7 +238533,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"T",
8128,
0.0,
0.0,
-0.2,
0.6,
0.0,
@ -238592,7 +238547,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
"S",
7296,
0.0,
0.0,
0.2,
0.6,
0.0,
@ -238608,7 +238562,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
5952,
0.0,
0.0,
0.0,
0.6,
0.0,
0.0
@ -238623,7 +238576,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
11200,
0.0,
0.0,
0.0,
0.6,
0.0,
0.0
@ -238638,7 +238590,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
2432,
0.0,
0.0,
0.0,
0.6,
0.0,
0.0
@ -238653,7 +238604,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
15168,
0.0,
0.0,
0.0,
0.6,
0.0,
0.0
@ -238668,7 +238618,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
13504,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238683,7 +238632,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
640,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238698,7 +238646,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
2240,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238713,7 +238660,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
13312,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238728,7 +238674,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
23488,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238743,7 +238688,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
36096,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238758,7 +238702,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
15488,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238773,7 +238716,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
21696,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238788,7 +238730,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
5888,
0.0,
0.0,
0.0,
0.7,
0.0,
0.0
@ -238803,7 +238744,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
15360,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238818,7 +238758,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
6272,
0.0,
0.0,
0.0,
0.9,
0.0,
0.0
@ -238833,7 +238772,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
3008,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238848,7 +238786,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
1984,
0.0,
0.0,
0.0,
0.8,
0.0,
0.0
@ -238865,7 +238802,6 @@ drum_config_t drum_config[NUM_DRUMSET_CONFIG] =
0.0,
0.0,
0.0,
0.0,
0.0
}
};

Loading…
Cancel
Save