Merge pull request 'large update. New smart-filter. Pitched sample playback, updated demo-sequences, new UI functions' (#98) from positionhigh/MicroDexed:dev into dev

Reviewed-on: https://codeberg.org/dcoredump/MicroDexed/pulls/98
pull/99/head^2
Holger Wirtz 3 years ago
commit 1c14c1fa33
  1. 55
      MicroDexed.ino
  2. 327
      UI.hpp
  3. 56
      UI_FX_T4.h
  4. 161
      addon/SD/SEQ/0-S.json
  5. 404
      addon/SD/SEQ/0-d.json
  6. 622
      addon/SD/SEQ/0-fx.json
  7. 304
      addon/SD/SEQ/0-v0.json
  8. 302
      addon/SD/SEQ/0-v1.json
  9. 45
      addon/SD/SEQ/1-S.json
  10. 342
      addon/SD/SEQ/1-d.json
  11. 138
      addon/SD/SEQ/1-fx.json
  12. 62
      addon/SD/SEQ/1-v0.json
  13. 62
      addon/SD/SEQ/1-v1.json
  14. 49
      addon/SD/SEQ/2-S.json
  15. 346
      addon/SD/SEQ/2-d.json
  16. 73
      addon/SD/SEQ/2-fx.json
  17. 32
      addon/SD/SEQ/2-v0.json
  18. 32
      addon/SD/SEQ/2-v1.json
  19. 41
      addon/SD/SEQ/3-S.json
  20. 352
      addon/SD/SEQ/3-d.json
  21. 59
      addon/SD/SEQ/3-fx.json
  22. 32
      addon/SD/SEQ/3-v0.json
  23. 30
      addon/SD/SEQ/3-v1.json
  24. 414
      addon/SD/SEQ/4-S.json
  25. 429
      addon/SD/SEQ/4-d.json
  26. 60
      addon/SD/SEQ/4-fx.json
  27. 31
      addon/SD/SEQ/4-v0.json
  28. 31
      addon/SD/SEQ/4-v1.json
  29. 414
      addon/SD/SEQ/5-S.json
  30. 429
      addon/SD/SEQ/5-d.json
  31. 60
      addon/SD/SEQ/5-fx.json
  32. 31
      addon/SD/SEQ/5-v0.json
  33. 31
      addon/SD/SEQ/5-v1.json
  34. 414
      addon/SD/SEQ/6-S.json
  35. 429
      addon/SD/SEQ/6-d.json
  36. 60
      addon/SD/SEQ/6-fx.json
  37. 31
      addon/SD/SEQ/6-v0.json
  38. 31
      addon/SD/SEQ/6-v1.json
  39. 2
      config.h
  40. 109
      dexed_sd.cpp
  41. 786
      drums.h
  42. 337237
      drumset.h
  43. 9
      midinotes.h
  44. 217
      sampler.h
  45. 9495
      sampleset.h
  46. 14
      sequencer.cpp

@ -2151,6 +2151,61 @@ bool eeprom_get_performance()
/******************************************************************************
PARAMETER-HELPERS
******************************************************************************/
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;
}
void set_sample_vol_max(uint8_t sample, float s_max)
{
drum_config[sample].vol_max = s_max;
}
void set_sample_vol_min(uint8_t sample, float s_min)
{
drum_config[sample].vol_min = s_min;
}
void set_sample_reverb_send(uint8_t sample, float s_reverb)
{
drum_config[sample].reverb_send = s_reverb;
}
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);
}
void set_fx_params(void)
{

327
UI.hpp

@ -71,8 +71,10 @@ extern char receive_bank_filename[FILENAME_LEN];
#if NUM_DRUMS > 0
#include "drums.h"
extern void get_sd_seq_name_json(uint8_t number);
extern drum_config_t drum_config[NUM_DRUMSET_CONFIG];
extern uint8_t seq_data[10][16];
extern char seq_name[FILENAME_LEN];
extern char seq_name_temp[FILENAME_LEN];
extern uint8_t seq_vel[10][16];
extern uint8_t seq_patternchain[4][4];
extern uint8_t seq_content_type[10];
@ -84,8 +86,8 @@ extern uint8_t seq_bpm;
extern uint8_t seq_chain_lenght;
extern bool seq_running;
extern bool seq_recording;
uint8_t seq_active_function = 99;
uint8_t activesample;
extern bool smartfilter;
extern uint8_t seq_state_last_loadsave;
extern uint8_t seq_active_track;
extern uint8_t seq_menu;
extern uint8_t seq_temp_select_menu;
@ -106,6 +108,8 @@ extern int seq_oct_shift;
extern char arp_style_names[4][3];
extern char seq_chord_names[7][4];
extern float drums_volume;
uint8_t seq_active_function = 99;
uint8_t activesample; extern uint8_t seq_data[10][16];
#endif
#ifdef DISPLAY_LCD_SPI
@ -306,7 +310,9 @@ void UI_func_dexed_assign(uint8_t param);
void UI_func_seq_display_style(uint8_t param);
void UI_func_seq_state_load(uint8_t param);
void UI_func_seq_state_save(uint8_t param);
void UI_func_set_sequence_name(uint8_t param);
void UI_func_volume(uint8_t param);
void UI_func_smart_filter(uint8_t param);
void UI_func_drum_midi_channel(uint8_t param);
void UI_func_load_performance(uint8_t param);
void UI_func_save_performance(uint8_t param);
@ -359,6 +365,7 @@ void locate_random_non_favorite();
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);
char* basename(const char* filename);
char* strip_extension(char* filename);
@ -543,6 +550,59 @@ uint8_t * rotTile(const uint8_t * tile)
}
#endif
void smart_filter(uint8_t dir)
{
bool found = false;
//search backwards
if (dir == 0) {
if (smartfilter) {
do {
if (found == false) activesample = constrain(activesample - 1, 0, NUM_DRUMSET_CONFIG - 2);
for (uint8_t d = 0; d < 10; d++)
{
if (seq_content_type[d] == 0) {
for (uint8_t y = 0; y < 16; y++)
{
if (drum_config[activesample].midinote == seq_data[d][y] || drum_config[activesample].midinote == seq_vel[d][y])
{
found = true;
break;
}
}
}
}
} while (found == false && activesample > 0 );
}
else
activesample = constrain(activesample - 1, 0, NUM_DRUMSET_CONFIG - 2);
}
else //search forwards
{
if (smartfilter) {
do {
if (found == false) activesample = constrain(activesample + 1, 0, NUM_DRUMSET_CONFIG - 2);
for (uint8_t d = 0; d < 10; d++)
{
if (seq_content_type[d] == 0) {
for (uint8_t y = 0; y < 16; y++)
{
if (drum_config[activesample].midinote == seq_data[d][y] || drum_config[activesample].midinote == seq_vel[d][y])
{
found = true;
break;
}
}
}
}
} while (found == false && activesample < NUM_DRUMSET_CONFIG - 2 );
}
else
activesample = constrain(activesample + 1, 0, NUM_DRUMSET_CONFIG - 2);
}
}
void setup_ui(void)
{
// LCD Begin
@ -3630,11 +3690,13 @@ void UI_func_drum_reverb_send(uint8_t param)
{
if (LCDML.BT_checkDown())
{
activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
// activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(1);
}
else if (LCDML.BT_checkUp())
{
activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
// activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(0);
}
}
} else {
@ -3765,6 +3827,95 @@ void UI_func_drums_main_volume(uint8_t param)
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].p_offset * 100);
lcd.setCursor(0, 0);
lcd.print("DrumSmp. Pitch");
lcd.setCursor(1, 1);
lcd.setCursor(1, 1);
sprintf(displayname, "%02d", activesample);
lcd.print(displayname);
lcd.show(1, 4, 7, basename(drum_config[activesample].name));
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if (menu_select_toggle == false) {
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())
{
activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
}
else if (LCDML.BT_checkUp())
{
activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
}
}
} else {
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, 200);
}
else if (LCDML.BT_checkUp())
{
temp_int = constrain(temp_int - ENCODER[ENC_R].speed(), 0, 200);
}
}
}
if (LCDML.BT_checkEnter())
{
if (menu_select_toggle) {
menu_select_toggle = false;
} else
{ menu_select_toggle = true;
temp_int = (int)(drum_config[activesample].p_offset * 100);
}
}
if (menu_select_toggle == false) {
lcd.setCursor(11, 1);
lcd.print(" ");
lcd.setCursor(15, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("[");
lcd.setCursor(3, 1);
lcd.print("]");
lcd.setCursor(1, 1);
sprintf(displayname, "%02d", activesample);
lcd.print(displayname);
lcd.show(1, 4, 7, basename(drum_config[activesample].name));
sprintf(displayname, "%03d", (int)(drum_config[activesample].p_offset * 100) );
lcd.setCursor(12, 1);
lcd.print(displayname);
} else {
temp_float = mapfloat(temp_int, 0, 200, 0.0, 2.0);
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(3, 1);
lcd.print(" ");
lcd.setCursor(11, 1);
lcd.print("[");
lcd.setCursor(15, 1);
lcd.print("]");
sprintf(displayname, "%03d", temp_int);
lcd.setCursor(12, 1);
lcd.print(displayname);
drum_config[activesample].p_offset = temp_float;
}
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
}
void UI_func_drum_volume(uint8_t param)
{
@ -3789,11 +3940,13 @@ void UI_func_drum_volume(uint8_t param)
{
if (LCDML.BT_checkDown())
{
activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
// activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(1);
}
else if (LCDML.BT_checkUp())
{
activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
// activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(0);
}
}
} else {
@ -3959,11 +4112,13 @@ void UI_func_drum_pan(uint8_t param)
{
if (LCDML.BT_checkDown())
{
activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
//activesample = constrain(activesample + ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(1);
}
else if (LCDML.BT_checkUp())
{
activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
//activesample = constrain(activesample - ENCODER[ENC_R].speed(), 0, NUM_DRUMSET_CONFIG - 2);
smart_filter(0);
}
}
} else {
@ -4113,21 +4268,6 @@ void seq_printVelGraphBar()
}
}
#endif
// deactivated for now since audio library seems not like to change reverb settings at runtime (and is skipping notes)
//void seq_set_rev_for_single_instr_per_step(uint8_t track, uint8_t note)
//{
//
// if (track < 3) {
// for (uint8_t d = 0; d < NUM_DRUMSET_CONFIG - 1; d++)
// {
// if (seq_data[track][seq_step] == drum_config[d].midinote)
// {
// drum_config[d].reverb_send = float(seq_reverb[track][seq_step]) / float(100);
// break;
// }
// }
// }
//}
void UI_func_seq_display_style(uint8_t param)
{
@ -4469,9 +4609,10 @@ void UI_func_seq_vel_editor(uint8_t param)
lcd.write(219); // cursor symbol
lcd.setCursor(seq_menu - 2, 1);
lcd.print(seq_find_shortname(seq_menu - 2)[0] );
lcd.setCursor(seq_menu , 1);
lcd.print(seq_find_shortname(seq_menu)[0] );
//sprintf(tmp, "%03d", seq_vel[seq_active_track][seq_menu - 1]);
if (seq_menu < 16) {
lcd.setCursor(seq_menu , 1);
lcd.print(seq_find_shortname(seq_menu)[0] );
}
}
if (seq_menu > 0) {
lcd.setCursor(4, 0);
@ -4984,7 +5125,7 @@ void UI_func_seq_pattern_editor(uint8_t param)
lcd.print("EMPTY ");
} else if (temp_int == 110) {
lcd.setCursor(1, 0);
lcd.print("LATCH");
lcd.print("LATCH ");
} else if (temp_int == 111) {
lcd.setCursor(1, 0);
lcd.print("ClrPat");
@ -5704,7 +5845,7 @@ void UI_func_seq_state_load(uint8_t param)
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
char tmp[10];
temp_int = param;
if (seq_state_last_loadsave != 200)temp_int = seq_state_last_loadsave; else temp_int = param;
mode = 0;
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
@ -5734,6 +5875,7 @@ void UI_func_seq_state_load(uint8_t param)
else
{
load_sd_seq_json(temp_int);
seq_state_last_loadsave = temp_int;
lcd.print("Done. ");
}
delay(MESSAGE_WAIT_TIME);
@ -5744,13 +5886,16 @@ void UI_func_seq_state_load(uint8_t param)
char tmp[10];
sprintf(tmp, "[%2d]", temp_int);
lcd.print(tmp);
lcd.setCursor(5, 1);
//cd.setCursor(5, 1);
if (check_sd_seq_exists(temp_int))
{
lcd.print("-- DATA --");
get_sd_seq_name_json(temp_int);
if ( seq_name_temp[0] != 0 )
lcd.show(1, 5, 11, seq_name_temp);
else
lcd.print(" -- DATA --");
}
else lcd.print(" ");
else lcd.print(" ");
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
@ -5773,7 +5918,7 @@ void UI_func_seq_state_save(uint8_t param)
{
char tmp[FILENAME_LEN];
yesno = false;
temp_int = 0;
if (seq_state_last_loadsave != 200)temp_int = seq_state_last_loadsave; else temp_int = 0;
mode = 0;
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
@ -5786,6 +5931,14 @@ void UI_func_seq_state_save(uint8_t param)
overwrite = true;
else
overwrite = false;
if (check_sd_seq_exists(temp_int))
{
get_sd_seq_name_json(temp_int);
if ( seq_name_temp[0] != 0 )
lcd.show(1, 5, 11, seq_name_temp);
else
lcd.print(" -- DATA --");
}
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
@ -5826,6 +5979,7 @@ void UI_func_seq_state_save(uint8_t param)
}
save_sd_seq_json(temp_int);
lcd.show(1, 0, 16, "Done.");
seq_state_last_loadsave = temp_int;
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
}
@ -5853,7 +6007,16 @@ void UI_func_seq_state_save(uint8_t param)
sprintf(tmp, "[%2d]", temp_int);
lcd.print(tmp);
lcd.setCursor(5, 1);
if (overwrite == false)lcd.print("-- empty --"); else lcd.print(" ");
if (overwrite == false) {
lcd.print("-- empty --");
} else if (check_sd_seq_exists(temp_int))
{
get_sd_seq_name_json(temp_int);
if ( seq_name_temp[0] != 0 )
lcd.show(1, 5, 11, seq_name_temp); else
lcd.print("-- DATA --");
}
else lcd.print(" ");
}
else
{
@ -5944,6 +6107,33 @@ void UI_func_midi_soft_thru(uint8_t param)
}
}
void UI_func_smart_filter(uint8_t param)
{
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
lcd.setCursor(0, 0);
lcd.print(F("Drm Smart Filter"));
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
smartfilter = !smartfilter;
else if (LCDML.BT_checkUp())
smartfilter = !smartfilter;
}
lcd.setCursor(0, 1);
if (smartfilter) lcd.print(F("[ON ]")); else lcd.print(F("[OFF]"));
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
}
void UI_func_velocity_level(uint8_t param)
{
if (LCDML.FUNC_setup()) // ****** SETUP *********
@ -7576,6 +7766,73 @@ void UI_func_sysex_receive_bank(uint8_t param)
}
}
void UI_func_set_sequence_name(uint8_t param)
{
static uint8_t mode;
static uint8_t ui_select_name_state;
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
encoderDir[ENC_R].reset();
mode = 0;
lcd.setCursor(0, 0);
lcd.print(F("Sequence Name"));
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown()) {
if (mode == 1) ui_select_name_state = UI_select_name(1, 1, seq_name_temp, BANK_NAME_LEN - 1, false);
}
else if (LCDML.BT_checkUp()) {
if (mode == 1) ui_select_name_state = UI_select_name(1, 1, seq_name_temp, BANK_NAME_LEN - 1, false);
// if (ui_select_name_state == false) {
// lcd.setCursor(12, 1);
// lcd.print(" ");
// lcd.setCursor(0, 1);
// lcd.print("[");
// lcd.setCursor(11, 1);
// lcd.print("]");
// lcd.blink();
// ui_select_name_state = UI_select_name(1, 1, seq_name_temp, BANK_NAME_LEN - 1, true);
// }
}
}
else if (LCDML.BT_checkEnter() && encoderDir[ENC_R].ButtonShort())
{
if (mode == 1)
{
ui_select_name_state = UI_select_name(1, 1, seq_name_temp, BANK_NAME_LEN - 1, false);
if (ui_select_name_state == true)
{
strcpy( seq_name, seq_name_temp);
mode = 0xff;
lcd.noBlink();
lcd.setCursor(0, 1);
lcd.print(F("OK. "));
delay(MESSAGE_WAIT_TIME);
LCDML.FUNC_goBackToMenu();
}
}
}
if (mode == 0 )
{
mode = 1;
strcpy(seq_name_temp, seq_name);
lcd.setCursor(0, 1);
lcd.print(F("[ ] "));
ui_select_name_state = UI_select_name(1, 1, seq_name_temp, BANK_NAME_LEN - 1, true);
lcd.blink();
}
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
lcd.noBlink();
}
}
void UI_func_sysex_send_bank(uint8_t param)
{
char bank_name[BANK_NAME_LEN];

@ -121,30 +121,34 @@ LCDML_add(87, LCDML_0, 4, "Drums", NULL);
LCDML_add(88, LCDML_0_4, 1, "Drums Main Vol", UI_func_drums_main_volume);
LCDML_add(89, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume);
LCDML_add(90, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan);
LCDML_add(91, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(92, LCDML_0_4, 5, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(93, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(94, LCDML_0_5, 1, "Pattern Editor", UI_func_seq_pattern_editor);
LCDML_add(95, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor);
LCDML_add(96, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(97, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio);
LCDML_add(98, LCDML_0_5, 5, "Seq. Settings", NULL);
LCDML_add(99, LCDML_0_5_5, 1, "Tempo", UI_func_seq_tempo);
LCDML_add(100, LCDML_0_5_5, 2, "Seq. Length", UI_func_seq_lenght);
LCDML_add(101, LCDML_0_5_5, 3, "Track Setup", UI_func_seq_track_setup);
LCDML_add(102, LCDML_0_5_5, 4, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(103, LCDML_0_5_5, 5, "dexed assign", UI_func_dexed_assign);
LCDML_add(104, LCDML_0_5_5, 6, "shift&transp.", UI_func_arp_shift);
LCDML_add(105, LCDML_0_5_5, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(106, LCDML_0_5_5, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount);
LCDML_add(107, LCDML_0_5, 6, "LOAD Seq.Data", UI_func_seq_state_load);
LCDML_add(108, LCDML_0_5, 7, "SAVE Seq.Data", UI_func_seq_state_save);
LCDML_add(109, LCDML_0, 6, "System", NULL);
LCDML_add(110, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(111, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(112, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(113, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_add(114, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(115, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 115
LCDML_add(91, LCDML_0_4, 4, "Drum Pitch", UI_func_drum_pitch);
LCDML_add(92, LCDML_0_4, 5, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(93, LCDML_0_4, 6, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(94, LCDML_0_4, 7, "Smart Filter", UI_func_smart_filter);
LCDML_add(95, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(96, LCDML_0_5, 1, "Pattern Editor", UI_func_seq_pattern_editor);
LCDML_add(97, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor);
LCDML_add(98, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(99, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio);
LCDML_add(100, LCDML_0_5, 5, "Seq. Settings", NULL);
LCDML_add(101, LCDML_0_5_5, 1, "Tempo", UI_func_seq_tempo);
LCDML_add(102, LCDML_0_5_5, 2, "Seq. Length", UI_func_seq_lenght);
LCDML_add(103, LCDML_0_5_5, 3, "Track Setup", UI_func_seq_track_setup);
LCDML_add(104, LCDML_0_5_5, 4, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(105, LCDML_0_5_5, 5, "dexed assign", UI_func_dexed_assign);
LCDML_add(106, LCDML_0_5_5, 6, "shift&transp.", UI_func_arp_shift);
LCDML_add(107, LCDML_0_5_5, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(108, LCDML_0_5_5, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount);
LCDML_add(109, LCDML_0_5_5, 9, "Smart Filter", UI_func_smart_filter);
LCDML_add(110, LCDML_0_5_5, 10, "Name Sequence", UI_func_set_sequence_name);
LCDML_add(111, LCDML_0_5, 6, "LOAD Seq.Data", UI_func_seq_state_load);
LCDML_add(112, LCDML_0_5, 7, "SAVE Seq.Data", UI_func_seq_state_save);
LCDML_add(113, LCDML_0, 6, "System", NULL);
LCDML_add(114, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(115, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(116, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(117, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_add(118, LCDML_0, 7, "Info", UI_func_information);
LCDML_addAdvanced(119, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 119
#endif

@ -3,15 +3,15 @@
72,
0,
0,
0,
73,
72,
0,
0,
0,
72,
0,
0,
0,
74,
74,
72,
0,
0,
@ -33,35 +33,21 @@
78,
78,
72,
0,
0,
0,
87,
87,
92,
72,
0,
0,
0,
90,
90,
90,
72,
0,
0,
75,
72,
0,
0,
0,
60,
61,
62,
63,
64,
65,
66,
0,
0,
0,
0,
0,
0,
0,
95,
95,
95,
0,
0,
0,
@ -78,6 +64,20 @@
0,
0,
0,
77,
77,
77,
77,
77,
77,
77,
77,
77,
77,
77,
77,
77,
77,
0,
0,
55,
@ -123,10 +123,10 @@
0,
0,
76,
0,
0,
0,
0,
130,
130,
130,
130,
0,
74,
0,
@ -139,7 +139,7 @@
0,
0,
67,
0,
130,
0,
0,
0,
@ -151,9 +151,9 @@
0,
0,
69,
0,
0,
0,
130,
130,
130,
0,
0,
0,
@ -163,17 +163,17 @@
],
"seq_velocity": [
120,
0,
0,
0,
120,
120,
120,
120,
0,
0,
0,
120,
0,
0,
0,
120,
120,
120,
0,
0,
@ -195,20 +195,21 @@
90,
65,
120,
0,
0,
0,
120,
0,
0,
0,
120,
0,
120,
60,
120,
86,
106,
99,
120,
0,
120,
72,
120,
79,
95,
109,
0,
0,
0,
@ -227,19 +228,18 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
10,
30,
50,
70,
90,
100,
127,
100,
60,
40,
30,
0,
200,
200,
@ -341,11 +341,11 @@
5,
7
],
"seq_tempo_ms": 151515,
"seq_bpm": 99,
"seq_tempo_ms": 147058,
"seq_bpm": 102,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 9,
"arp_lenght": 8,
"arp_style": 0,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
@ -353,13 +353,13 @@
"seq_transpose": 0,
"chord_key_ammount": 4,
"seq_oct_shift": 0,
"seq_element_shift": 2,
"seq_element_shift": 0,
"bank": [
80,
18,
63
],
"voice": [
15,
11,
2
],
"track_type": [
@ -373,8 +373,8 @@
0,
0,
0,
1,
1,
2,
2,
1,
1,
1,
@ -385,5 +385,30 @@
0,
1,
1
],
"seq_name": [
65,
108,
108,
79,
110,
66,
111,
97,
114,
100,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,57 +1,346 @@
{
"drums_volume": 0.9,
"drums_volume": 0.95,
"pitch": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
1.2,
0,
0,
0,
1.1,
1.3,
0,
1.4,
0,
0,
0,
0,
0,
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.427136,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
0,
-1,
1,
0.2,
0.8,
0.8,
0.8,
-0.7,
-0.5,
-0.6,
-0.6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.282828,
0.343434,
0.1,
0,
0,
0.191919,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.2,
1,
-0.2,
0.2,
0,
0.272727,
0,
0,
0.080808,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
1,
1,
1,
1,
1,
1,
1,
1,
0.7,
1,
0.7,
1,
0.7,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0.75,
0.56,
1,
1,
0.9,
0.68,
0.7,
1,
0.9,
0.9,
0.8,
0.48,
0.6,
0.6,
0.8,
1,
1,
0.9,
0.71,
0.9,
0.9,
0.8,
0.8,
0.75,
0.8,
0.8,
0.3,
0.3,
0.85,
1,
0.72,
0.9,
0.9,
0.82,
0.9,
0.9,
0.9,
0.8,
0.98,
0.5,
0.69,
0.5,
0.6,
0.3,
0.6,
0.9,
0.9,
1,
1,
0,
0,
0,
0,
0,
0
],
"vol_min": [
0,
0,
0,
0.2,
0.3,
0.3,
0.3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
@ -68,8 +357,6 @@
],
"reverb_send": [
0,
0.1,
0.2,
0,
0,
0,
@ -81,11 +368,62 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.52,
0.59,
0,
0,
0,
0,
0.67,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.53,
0,
0,
0,
0,
0.64,
0,
0,
0,
0,
0.66,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,535 +1,4 @@
{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
29
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
3
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"filter_cutoff": [
0,
0
@ -559,92 +28,33 @@
0
],
"delay_feedback": [
0,
84
60,
88
],
"delay_level": [
0,
70
83,
82
],
"delay_sync": [
0,
3,
3
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
3
],
"reverb_send": [
0,
100
81,
99
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_lowpass": 81,
"reverb_lodamp": 59,
"reverb_hidamp": 0,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"reverb_level": 78,
"eq_1": 0,
"eq_2": 0,
"eq_3": 1,
"eq_4": 0,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
"eq_7": 8
}

@ -3,308 +3,8 @@
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 58,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 46,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 45,
"pan": 26,
"sound_intensity": 67,
"pan": 23,
"polyphony": 16,
"velocity_level": 100,
"monopoly": 0,

@ -3,307 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 76,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 64,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 54,
"sound_intensity": 91,
"pan": 15,
"polyphony": 16,
"velocity_level": 100,

@ -48,13 +48,13 @@
0,
0,
0,
60,
61,
62,
63,
64,
65,
66,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
@ -205,7 +205,7 @@
120,
0,
120,
60,
91,
120,
120,
120,
@ -341,8 +341,8 @@
5,
7
],
"seq_tempo_ms": 147058,
"seq_bpm": 102,
"seq_tempo_ms": 145631,
"seq_bpm": 103,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 9,
@ -385,5 +385,30 @@
0,
1,
1
],
"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,5 +1,147 @@
{
"drums_volume": 0.9,
"drums_volume": 0.95,
"pitch": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.806533,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
0,
-1,
@ -20,6 +162,55 @@
1,
-0.2,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.191919,
0,
0,
0.272727,
0.212121,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.626263,
0.626263,
-0.454545,
-0.242424,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
@ -38,10 +229,59 @@
0.9,
0.5,
0.92,
0.5,
0.84,
0.6,
0.44,
0.6,
0,
0,
0.51,
0,
0,
0,
1,
1,
0,
0.93,
0.95,
0,
0.77,
0.79,
0.6,
0.77,
0,
0,
0.62,
0,
0,
0.38,
0,
0,
0.57,
0.75,
0.68,
0.76,
0,
0,
0.63,
0,
0.71,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -64,6 +304,55 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -86,6 +375,55 @@
0,
0.24,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.62,
0.56,
0,
0,
0,
0.32,
0.55,
0,
0,
0,
0,
0,
0,
0,
0,
0.37,
0.34,
0,
0.44,
0,
0,
0.44,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -24,141 +24,23 @@
0
],
"delay_time": [
0,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
}{
"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,
27
],
"delay_feedback": [
0,
84
49,
88
],
"delay_level": [
0,
70
63,
77
],
"delay_sync": [
0,
0
4,
4
],
"reverb_send": [
0,
64,
100
],
"reverb_roomsize": 99,
@ -167,12 +49,12 @@
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 65,
"eq_1": -2,
"reverb_level": 87,
"eq_1": 0,
"eq_2": -2,
"eq_3": -14,
"eq_4": -8,
"eq_5": 0,
"eq_6": -2,
"eq_7": -79
"eq_7": 0
}

@ -3,67 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 59,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 55,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 52,
"sound_intensity": 61,
"pan": 26,
"polyphony": 16,
"velocity_level": 100,

@ -3,67 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 62,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 62,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 62,
"sound_intensity": 65,
"pan": 15,
"polyphony": 16,
"velocity_level": 100,

@ -162,20 +162,20 @@
0
],
"seq_velocity": [
89,
108,
0,
127,
120,
94,
96,
98,
114,
125,
120,
99,
108,
0,
125,
127,
0,
93,
93,
90,
106,
115,
120,
127,
@ -194,19 +194,19 @@
127,
123,
100,
89,
109,
0,
127,
120,
94,
96,
92,
103,
125,
120,
99,
103,
0,
126,
0,
93,
106,
119,
127,
119,
@ -385,5 +385,30 @@
0,
0,
1
],
"seq_name": [
66,
108,
105,
110,
100,
105,
110,
103,
68,
88,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,5 +1,147 @@
{
"drums_volume": 0.9,
"drums_volume": 0.95,
"pitch": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
0,
-1,
@ -20,10 +162,59 @@
1,
-0.2,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.292929,
0,
0,
0.232323,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
0.8,
0.84,
0.6,
0.6,
0.6,
@ -38,10 +229,59 @@
1,
0.68,
0.59,
0.91,
0.5,
0.5,
0.6,
0.6,
0.67,
0,
0,
0.47,
0,
0,
0,
1,
1,
0,
0.79,
0.71,
0.9,
1,
0.68,
0,
0.74,
0.91,
0,
0.65,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -64,6 +304,55 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -86,6 +375,55 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.59,
0.38,
0,
0.37,
0,
0,
0.6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -24,79 +24,20 @@
0
],
"delay_time": [
27,
27
],
"delay_feedback": [
64,
84
],
"delay_level": [
74,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
75,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 67,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,
"eq_4": 0,
"eq_5": 0,
"eq_6": 0,
"eq_7": 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": [
27,
27
],
"delay_feedback": [
64,
84
75,
87
],
"delay_level": [
74,
70
75,
85
],
"delay_sync": [
0,
0
2,
3
],
"reverb_send": [
75,
@ -108,7 +49,7 @@
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 67,
"reverb_level": 90,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,

@ -3,37 +3,7 @@
"highest_note": 108,
"transpose": 36,
"tune": 100,
"sound_intensity": 64,
"pan": 20,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 36,
"tune": 100,
"sound_intensity": 71,
"sound_intensity": 81,
"pan": 20,
"polyphony": 16,
"velocity_level": 100,

@ -3,37 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 52,
"pan": 20,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 66,
"sound_intensity": 75,
"pan": 20,
"polyphony": 16,
"velocity_level": 100,

@ -20,7 +20,7 @@
78,
78,
78,
49,
45,
78,
78,
78,
@ -28,7 +28,7 @@
78,
78,
78,
49,
45,
78,
0,
0,
@ -36,7 +36,7 @@
78,
78,
78,
49,
45,
78,
78,
78,
@ -44,10 +44,10 @@
78,
78,
78,
49,
45,
78,
49,
49,
45,
45,
73,
0,
0,
@ -341,8 +341,8 @@
3,
7
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
"seq_tempo_ms": 133928,
"seq_bpm": 112,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 5,
@ -385,5 +385,30 @@
0,
0,
0
],
"seq_name": [
110,
105,
110,
101,
116,
101,
101,
110,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -1,12 +1,154 @@
{
"drums_volume": 0.9,
"pan": [
"drums_volume": 0.95,
"pitch": [
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
-0.010101,
0,
0.020202,
0.2,
0.121212,
0.8,
0.030303,
0.8,
-0.7,
-0.5,
@ -20,12 +162,61 @@
-0.060606,
-0.2,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
-0.59596,
0,
0,
0,
0.010101,
0.393939,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
0.8,
1,
0.72,
0.6,
0.89,
0.6,
0.8,
0.8,
@ -38,10 +229,59 @@
0.9,
0.5,
0.5,
0.5,
0.95,
0.6,
0.6,
0.6,
0,
0,
0.44,
0,
0,
0,
1,
1,
0.88,
0,
0.85,
0,
0.96,
0.74,
0,
0,
0,
0,
0.68,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.85,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -64,6 +304,55 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -86,6 +375,55 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -57,63 +57,4 @@
"eq_5": 0,
"eq_6": 0,
"eq_7": 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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 67,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,
"eq_4": 0,
"eq_5": 0,
"eq_6": 0,
"eq_7": 0
}

@ -3,37 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 64,
"pan": 20,
"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
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 64,
"sound_intensity": 76,
"pan": 20,
"polyphony": 16,
"velocity_level": 100,

@ -28,34 +28,4 @@
"portamento_time": 0,
"op_enabled": 63,
"midi_channel": 6
}{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 52,
"pan": 20,
"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
}

@ -0,0 +1,414 @@
{
"seq_data": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
130,
130,
72,
130,
130,
74,
130,
130,
0,
76,
130,
130,
130,
130,
0,
74,
130,
130,
72,
130,
130,
71,
130,
130,
0,
67,
130,
130,
130,
130,
0,
69,
130,
130,
76,
130,
130,
69,
130,
130,
130,
130,
130,
130,
0,
0,
0
],
"seq_velocity": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
200,
0,
0,
0,
0,
0,
201,
0,
0,
0,
0,
0,
0,
0,
0,
200,
201,
200,
200,
200,
200,
200,
200,
200,
200,
200,
200,
0,
0,
0,
0,
0,
98,
120,
0,
88,
120,
0,
108,
120,
0,
0,
107,
120,
0,
0,
0,
0,
111,
120,
0,
103,
0,
0,
100,
120,
0,
0,
99,
120,
0,
0,
0,
0,
115,
120,
0,
105,
120,
0,
93,
120,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_patternchain": [
0,
1,
6,
9,
0,
1,
5,
8,
0,
1,
6,
9,
2,
1,
5,
7
],
"seq_tempo_ms": 154639,
"seq_bpm": 97,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 7,
"arp_style": 1,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
"seq_chain_lenght": 3,
"seq_transpose": 0,
"chord_key_ammount": 4,
"seq_oct_shift": 0,
"seq_element_shift": 0,
"bank": [
63,
25
],
"voice": [
2,
2
],
"track_type": [
0,
0,
3,
1
],
"content_type": [
0,
0,
0,
0,
2,
2,
2,
1,
1,
1
],
"seq_inst_dexed": [
0,
0,
0,
1
],
"seq_name": [
77,
117,
116,
101,
100,
83,
116,
111,
114,
109,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -0,0 +1,429 @@
{
"drums_volume": 0.9,
"pitch": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
0,
-1,
1,
0.2,
0.8,
0.8,
0.8,
-0.7,
-0.5,
-0.6,
-0.6,
0,
0,
0,
0.1,
-0.2,
1,
-0.2,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
0.8,
0.6,
0.6,
0.6,
0.8,
0.8,
0.8,
0.8,
0.8,
0.3,
0.3,
0.8,
0.9,
0.5,
0.5,
0.5,
0.6,
0.6,
0.6,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_min": [
0,
0,
0,
0.2,
0.3,
0.3,
0.3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.1,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,60 @@
{
"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": [
73,
81
],
"delay_level": [
83,
80
],
"delay_sync": [
3,
3
],
"reverb_send": [
34,
100
],
"reverb_roomsize": 100,
"reverb_damping": 0,
"reverb_lowpass": 95,
"reverb_lodamp": 2,
"reverb_hidamp": 0,
"reverb_diffusion": 100,
"reverb_level": 72,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,
"eq_4": 0,
"eq_5": 0,
"eq_6": 0,
"eq_7": 0
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 72,
"pan": 20,
"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": 2
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 81,
"pan": 20,
"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": 3
}

@ -0,0 +1,414 @@
{
"seq_data": [
48,
47,
0,
49,
48,
0,
0,
47,
74,
48,
50,
51,
50,
59,
0,
51,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
54,
63,
0,
0,
0,
50,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
50,
0,
66,
0,
0,
0,
0,
49,
49,
49,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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": [
125,
120,
0,
127,
125,
0,
0,
120,
120,
120,
80,
120,
120,
120,
120,
120,
127,
127,
127,
103,
127,
103,
125,
98,
127,
101,
127,
102,
127,
103,
104,
113,
127,
123,
127,
105,
110,
107,
127,
110,
126,
113,
126,
113,
126,
116,
126,
116,
127,
0,
0,
0,
126,
0,
0,
0,
0,
0,
0,
0,
120,
0,
0,
0,
120,
0,
0,
0,
126,
0,
125,
0,
0,
0,
120,
120,
120,
120,
120,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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_patternchain": [
0,
1,
3,
9,
0,
2,
4,
8,
0,
1,
4,
8,
2,
1,
3,
7
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 5,
"arp_style": 2,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
"seq_chain_lenght": 1,
"seq_transpose": 0,
"chord_key_ammount": 4,
"seq_oct_shift": -1,
"seq_element_shift": 3,
"bank": [
32,
30
],
"voice": [
21,
25
],
"track_type": [
0,
0,
0,
1
],
"content_type": [
0,
0,
0,
0,
0,
0,
0,
0,
1,
1
],
"seq_inst_dexed": [
0,
0,
0,
0
],
"seq_name": [
68,
114,
68,
114,
117,
109,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -0,0 +1,429 @@
{
"drums_volume": 0.95,
"pitch": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"pan": [
0,
0,
0.020202,
0.2,
0.121212,
0.8,
-0.030303,
-0.010101,
-0.20202,
0.060606,
-0.040404,
0,
0,
-0.111111,
0.1,
0.252525,
-0.060606,
-0.535354,
0.505051,
0,
0.252525,
0,
0.242424,
0,
0,
-0.282828,
-0.414141,
-0.262626,
0,
0,
0,
0.171717,
0.40404,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
0.94,
0.72,
1,
0.83,
0.8,
0.8,
1,
1,
0.71,
0.89,
0.6,
0.8,
0.61,
0.49,
0.5,
0.55,
0.6,
0.62,
0.56,
0,
0.49,
0.44,
0.56,
0,
0,
0.49,
1,
0.86,
0,
0.85,
0,
0.85,
0.73,
0,
0,
0,
0,
0.22,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.85,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.64,
0,
0.82,
0,
0,
0,
0
],
"vol_min": [
0,
0,
0,
0.2,
0.3,
0.3,
0.3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.1,
0.2,
0,
0.55,
0,
0,
0,
0,
0.54,
0.5,
0,
0,
0,
0.1,
0.48,
0,
0.57,
0,
0,
0,
0,
0.53,
0,
0,
0.53,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,60 @@
{
"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,
27
],
"delay_feedback": [
0,
84
],
"delay_level": [
0,
70
],
"delay_sync": [
0,
0
],
"reverb_send": [
0,
100
],
"reverb_roomsize": 99,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 67,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,
"eq_4": 0,
"eq_5": 0,
"eq_6": 0,
"eq_7": 0
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 12,
"tune": 100,
"sound_intensity": 84,
"pan": 20,
"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
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 52,
"pan": 20,
"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
}

@ -0,0 +1,414 @@
{
"seq_data": [
69,
69,
0,
69,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
67,
67,
0,
67,
67,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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
],
"seq_velocity": [
210,
210,
0,
210,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
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,
213,
0,
0,
0,
0,
0,
213,
0,
0,
0,
0,
0,
0,
0,
0,
0,
213,
0,
0,
0,
0,
0,
213,
0,
0,
0,
0,
0,
0,
0,
0,
0,
211,
0,
0,
211,
0,
0,
211,
0,
0,
0,
211,
0,
0,
0,
0,
0,
211,
0,
0,
211,
0,
0,
211,
0,
0,
0,
211,
0,
0,
0,
0,
0,
211,
0,
0,
211,
0,
0,
211,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_patternchain": [
0,
2,
6,
9,
1,
2,
5,
8,
0,
2,
6,
9,
1,
2,
5,
7
],
"seq_tempo_ms": 156250,
"seq_bpm": 96,
"arp_play_basenote": true,
"arp_speed": 0,
"arp_lenght": 8,
"arp_style": 0,
"seq_chord_velocity": 60,
"seq_chord_dexed_inst": 0,
"seq_chain_lenght": 3,
"seq_transpose": 0,
"chord_key_ammount": 4,
"seq_oct_shift": 0,
"seq_element_shift": 0,
"bank": [
63,
91
],
"voice": [
2,
27
],
"track_type": [
0,
0,
0,
0
],
"content_type": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1
],
"seq_name": [
70,
97,
105,
114,
108,
105,
103,
104,
116,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -0,0 +1,429 @@
{
"drums_volume": 0.95,
"pitch": [
1.168846,
0.840896,
1,
0.216911,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1.2,
0,
0,
0,
1.1,
1.3,
0,
1.4,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"p_offset": [
1.39,
1,
1,
0.65,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0
],
"pan": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.2,
-0.2,
0.1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.2,
0,
0.2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"vol_max": [
1,
0.73,
0.8,
0.79,
0.8,
1,
1,
1,
1,
1,
1,
1,
1,
0.7,
1,
0.7,
1,
0.7,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0.9,
0.7,
1,
1,
0.9,
0.6,
0.7,
0.9,
0.9,
0.9,
1,
1,
1,
0.9,
0.9,
0.9,
0.9,
0.8,
0.8,
0.8,
0.8,
0.8,
1,
1,
0.9,
0.9,
0.9,
0.9,
0.9,
0.9,
0.9,
0.8,
0.9,
0.9,
1,
1,
0
],
"vol_min": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.53,
0,
0.53,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,60 @@
{
"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": [
74,
89
],
"delay_level": [
77,
82
],
"delay_sync": [
3,
4
],
"reverb_send": [
51,
100
],
"reverb_roomsize": 100,
"reverb_damping": 0,
"reverb_lowpass": 94,
"reverb_lodamp": 6,
"reverb_hidamp": 0,
"reverb_diffusion": 100,
"reverb_level": 72,
"eq_1": 0,
"eq_2": 0,
"eq_3": 1,
"eq_4": 0,
"eq_5": 0,
"eq_6": -2,
"eq_7": 8
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 93,
"pan": 23,
"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
}

@ -0,0 +1,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 100,
"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
}

@ -112,7 +112,7 @@
// NUMBER OF PARALLEL SAMPLEDRUMS
#define NUM_DRUMS 8
// NUMBER OF SAMPLES IN DRUMSET
#define NUM_DRUMSET_CONFIG 50
#define NUM_DRUMSET_CONFIG 69
// CHORUS parameters
#define MOD_DELAY_SAMPLE_BUFFER int32_t(TIME_MS2SAMPLES(20.0)) // 20.0 ms delay buffer.

@ -33,21 +33,6 @@ using namespace TeensyTimerTool;
#include "synth_dexed.h"
#include "dexed_sd.h"
// Bad hack!!!
typedef struct drum_config_s {
uint8_t drum_class; // Type of drum
uint8_t midinote; // Triggered by note
char name[DRUM_NAME_LEN];
const uint8_t* drum_data;
char shortname[2]; // 1 char name for sequencer
uint32_t len; // number of elements in drum_data
float32_t pitch; //
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)
float32_t reverb_send; // how much signal to send to the reverb (0.0 - 1.0)
} drum_config_t;
extern void init_MIDI_send_CC(void);
extern void check_configuration_dexed(uint8_t instance_id);
extern void check_configuration_performance(void);
@ -75,9 +60,22 @@ extern uint8_t arp_style;
extern uint8_t seq_chord_velocity;
extern uint8_t seq_chord_dexed_inst;
extern uint8_t seq_inst_dexed[4];
extern char seq_name[FILENAME_LEN];
extern char seq_name_temp[FILENAME_LEN];
extern PeriodicTimer timer1;
extern float midi_volume_transform(uint8_t midi_amp);
extern drum_config_t drum_config[NUM_DRUMSET_CONFIG];
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);
extern void set_sample_reverb_send(uint8_t sample, float s_reverb);
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);
extern float get_sample_reverb_send(uint8_t sample);
/******************************************************************************
SD BANK/VOICE LOADING
@ -484,11 +482,12 @@ bool load_sd_drumsettings_json(uint8_t number, uint8_t target)
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG; i++)
{
drum_config[i].pitch = data_json["pitch"][i] ;
drum_config[i].pan = data_json["pan"][i] ;
drum_config[i].vol_max = data_json["vol_max"][i] ;
drum_config[i].vol_min = data_json["vol_min"][i] ;
drum_config[i].reverb_send = data_json["reverb_send"][i];
set_sample_pitch( i, data_json["pitch"][i] );
set_sample_p_offset ( i, data_json["p_offset"][i] );
set_sample_pan( i, data_json["pan"][i]) ;
set_sample_vol_max( i, data_json["vol_max"][i]) ;
set_sample_vol_min( i, data_json["vol_min"][i] );
set_sample_reverb_send( i, data_json["reverb_send"][i]);
}
return (true);
}
@ -535,6 +534,7 @@ bool save_sd_drumsettings_json(uint8_t number, uint8_t target)
if (SD.exists(filename)) {
Serial.println("remove old drumsettings file");
SD.begin();
SD.remove(filename);
}
json = SD.open(filename, FILE_WRITE);
@ -544,11 +544,12 @@ bool save_sd_drumsettings_json(uint8_t number, uint8_t target)
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG; i++)
{
data_json["pitch"][i] = drum_config[i].pitch;
data_json["pan"][i] = drum_config[i].pan;
data_json["vol_max"][i] = drum_config[i].vol_max;
data_json["vol_min"][i] = drum_config[i].vol_min;
data_json["reverb_send"][i] = drum_config[i].reverb_send;
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);
data_json["reverb_send"][i] = get_sample_reverb_send(i);
}
#ifdef DEBUG
Serial.println(F("Write JSON data:"));
@ -696,6 +697,8 @@ bool save_sd_voiceconfig_json(uint8_t vc, uint8_t instance_id, uint8_t target)
#endif
AudioNoInterrupts();
SD.begin();
SD.remove(filename);
json = SD.open(filename, FILE_WRITE);
if (json)
{
@ -814,7 +817,9 @@ bool load_sd_fx_json(uint8_t fx, uint8_t target)
configuration.fx.delay_sync[i] = data_json["delay_sync"][i];
configuration.fx.reverb_send[i] = data_json["reverb_send"][i];
if (configuration.fx.delay_sync[i] > 0)
{
configuration.fx.delay_time[i] = 0;
}
}
configuration.fx.reverb_roomsize = data_json["reverb_roomsize"];
configuration.fx.reverb_damping = data_json["reverb_damping"];
@ -878,6 +883,8 @@ bool save_sd_fx_json(uint8_t fx, uint8_t target)
#endif
AudioNoInterrupts();
SD.begin();
SD.remove(filename);
json = SD.open(filename, FILE_WRITE);
if (json)
{
@ -980,7 +987,8 @@ bool save_sd_seq_json(uint8_t seq_number)
Serial.print(F(" "));
AudioNoInterrupts();
SD.begin();
SD.remove(filename);
json = SD.open(filename, FILE_WRITE);
if (json)
{
@ -1046,6 +1054,10 @@ bool save_sd_seq_json(uint8_t seq_number)
for (uint8_t i = 0; i < sizeof(seq_inst_dexed); i++) {
data_json["seq_inst_dexed"][i] = seq_inst_dexed[i];
}
for (uint8_t i = 0; i < FILENAME_LEN; i++) {
data_json["seq_name"][i] = seq_name[i];
}
#ifdef DEBUG
Serial.println(F("Write JSON data:"));
@ -1071,6 +1083,41 @@ bool save_sd_seq_json(uint8_t seq_number)
return (false);
}
void get_sd_seq_name_json(uint8_t seq_number)
{
seq_number = constrain(seq_number, 0, 99);
memset(seq_name_temp, 0, FILENAME_LEN);
if (sd_card > 0)
{
File json;
StaticJsonDocument<JSON_BUFFER_SIZE> data_json;
char filename[FILENAME_LEN];
sprintf(filename, "/%s/%d-S.json", SEQ_CONFIG_PATH, seq_number);
// first check if file exists...
AudioNoInterrupts();
if (SD.exists(filename))
{
// ... and if: load
json = SD.open(filename);
if (json)
{
deserializeJson(data_json, json);
json.close();
AudioInterrupts();
}
if (data_json["seq_name"][0] != 0) {
for (uint8_t i = 0; i < FILENAME_LEN; i++) {
seq_name_temp[i] = data_json["seq_name"][i];
}
}
}
}
}
bool load_sd_seq_json(uint8_t seq_number)
{
if (seq_number < 0)
@ -1152,6 +1199,13 @@ bool load_sd_seq_json(uint8_t seq_number)
for (uint8_t i = 0; i < sizeof(seq_inst_dexed); i++) {
seq_inst_dexed[i] = data_json["seq_inst_dexed"][i];
}
if (data_json["seq_name"][0] != 0) {
for (uint8_t i = 0; i < FILENAME_LEN; i++) {
seq_name[i] = data_json["seq_name"][i];
}
}
count = 0;
seq_tempo_ms = data_json["seq_tempo_ms"] ;
seq_bpm = data_json["seq_bpm"];
@ -1167,6 +1221,7 @@ bool load_sd_seq_json(uint8_t seq_number)
seq_oct_shift = data_json["seq_oct_shift"];
seq_element_shift = data_json["seq_element_shift"];
for (uint8_t instance_id = 0; instance_id < NUM_DEXED; instance_id++)
{
configuration.performance.bank[instance_id] = data_json["bank"][instance_id];

File diff suppressed because it is too large Load Diff

337237
drumset.h

File diff suppressed because it is too large Load Diff

@ -5,6 +5,15 @@
#ifndef _MIDINOTES_H
#define _MIDINOTES_H
#define MIDI_C0 12
#define MIDI_CIS0 13
#define MIDI_D0 14
#define MIDI_DIS0 15
#define MIDI_E0 16
#define MIDI_F0 17
#define MIDI_FIS0 18
#define MIDI_G0 19
#define MIDI_GIS0 20
#define MIDI_A0 21
#define MIDI_AIS0 22
#define MIDI_B0 23

@ -64,222 +64,7 @@ sampler_config_t sampler_config[NUM_SAMPLESET_CONFIG] =
0.0,
0.0
},
{
SAMPLER_HANDCLAP,
MIDI_CIS3,
"cp02l",
AudioSampleCp02,
"C",
0.0,
-1.0,
0.6,
0.0,
0.1
},
{
SAMPLER_HANDCLAP,
MIDI_DIS3,
"cp02r",
AudioSampleCp02,
"C",
0.0,
1.0,
0.6,
0.0,
0.2
},
{
SAMPLER_SNARE,
MIDI_D3,
"sd15",
AudioSampleSd15,
"S",
0.0,
0.2,
0.6,
0.2,
0.0
},
{
SAMPLER_HIHAT,
MIDI_FIS3,
"hh01",
AudioSampleHh01,
"h",
0.0,
0.8,
0.8,
0.3,
0.0
},
{
SAMPLER_HIHAT,
MIDI_GIS3,
"hh02",
AudioSampleHh02,
"h",
0.0,
0.8,
0.8,
0.3,
0.0
},
{
SAMPLER_HIHAT,
MIDI_AIS3,
"oh02",
AudioSampleOh02,
"H",
0.0,
0.8,
0.8,
0.3,
0.0
},
{
SAMPLER_LOWTOM,
MIDI_G3,
"lt01",
AudioSampleLt01,
"T",
0.0,
-0.7,
0.8,
0.0,
0.0
},
{
SAMPLER_HIGHTOM,
MIDI_A3,
"ht01",
AudioSampleHt01,
"T",
0.0,
-0.5,
0.8,
0.0,
0.0
},
{
SAMPLER_RIDE,
MIDI_CIS4,
"rd01",
AudioSampleRd01,
"R",
0.0,
-0.6,
0.3,
0.0,
0.0
},
{
SAMPLER_RIDE,
MIDI_DIS4,
"rd02",
AudioSampleRd02,
"R",
0.0,
-0.6,
0.3,
0.0,
0.0
},
{
SAMPLER_BASS,
MIDI_B4,
"808Kick",
AudioSample808Kick,
"B",
0.0,
0.0,
0.8,
0.0,
0.0
},
{
SAMPLER_BASS,
MIDI_C5,
"phkick1",
AudioSamplePhkick1,
"B",
0.0,
0.0,
0.9,
0.0,
0.0
},
{
SAMPLER_SNARE,
MIDI_E5,
"LNsnare1",
AudioSampleLnsnare1,
"S",
0.0,
0.0,
0.5,
0.0,
0.0
},
{
SAMPLER_HANDCLAP,
MIDI_DIS5,
"LNclap1",
AudioSampleLnclap,
"C",
0.0,
0.1,
0.5,
0.0,
0.1
},
{
SAMPLER_SNARE,
MIDI_CIS5,
"rims1",
AudioSampleRims1wav,
"R",
0.0,
-0.2,
0.5,
0.0,
0.0
},
{
SAMPLER_HIHAT,
MIDI_FIS5,
"hhcl1",
AudioSampleHhcl1wav,
"H",
0.0,
1.0,
0.6,
0.0,
0.0
},
{
SAMPLER_PERCUSSION,
MIDI_FIS6,
"Tamb",
AudioSampleTamb,
"T",
0.0,
-0.2,
0.6,
0.0,
0.0
},
{
SAMPLER_PERCUSSION,
MIDI_GIS6,
"Cowbell",
AudioSampleCowbell,
"S",
0.0,
0.2,
0.6,
0.0,
0.0
},
{
SAMPLER_NONE,
0,

File diff suppressed because it is too large Load Diff

@ -13,6 +13,9 @@ extern void handleNoteOff(byte , byte , byte );
extern void UI_func_seq_pattern_editor(uint8_t);
extern void UI_func_arpeggio(uint8_t);
extern const char* seq_find_shortname(uint8_t);
extern void set_sample_pitch (uint8_t, float); //float32_t not working
extern float get_sample_vol_max(uint8_t);
extern float get_sample_p_offset(uint8_t);
boolean interrupt_swapper = false;
void sequencer_part1(void)
@ -36,10 +39,17 @@ void sequencer_part1(void)
for (uint8_t d = 0; d < 4; d++)
{
if ( seq_track_type[d] == 0) { // drum track
if ( seq_track_type[d] == 0) { // drum track (drum samples and pitched one-shot samples)
if (seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] > 0 )
{
handleNoteOn(drum_midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] , seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step]);
if (seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] > 209) // it is a pitched sample
{
// Drum[slot]->setPlaybackRate( pow (2, (inNote - 72) / 12.00) * drum_config[sample].pitch ); get_sample_vol_max(sample)
set_sample_pitch(seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] - 210 , (float)pow (2, (seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] - 72) / 12.00) * get_sample_p_offset( seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] - 210 ) );
handleNoteOn(drum_midi_channel, seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] , 90 );
}
else // else play normal drum sample
handleNoteOn(drum_midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] , seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step]);
}
}
else {

Loading…
Cancel
Save