Merge pull request 'UI fixes, T3.6 fixes, pattern&sequencer updates' (#106) from positionhigh/MicroDexed:dev into dev

Reviewed-on: https://codeberg.org/dcoredump/MicroDexed/pulls/106
pull/107/head
Holger Wirtz 3 years ago
commit 73b71adb96
  1. 20
      MicroDexed.ino
  2. 792
      UI.hpp
  3. 10
      UI_FX_T4.h
  4. 34
      addon/SD/SEQ/0-S.json
  5. 52
      addon/SD/SEQ/0-d.json
  6. 224
      addon/SD/SEQ/0-pat.json
  7. 226
      addon/SD/SEQ/0-vel.json
  8. 34
      addon/SD/SEQ/1-S.json
  9. 62
      addon/SD/SEQ/1-d.json
  10. 236
      addon/SD/SEQ/1-pat.json
  11. 236
      addon/SD/SEQ/1-vel.json
  12. 34
      addon/SD/SEQ/2-S.json
  13. 62
      addon/SD/SEQ/2-d.json
  14. 224
      addon/SD/SEQ/2-pat.json
  15. 224
      addon/SD/SEQ/2-vel.json
  16. 32
      addon/SD/SEQ/3-S.json
  17. 26
      addon/SD/SEQ/3-d.json
  18. 6
      addon/SD/SEQ/3-fx.json
  19. 236
      addon/SD/SEQ/3-pat.json
  20. 224
      addon/SD/SEQ/3-vel.json
  21. 36
      addon/SD/SEQ/4-S.json
  22. 44
      addon/SD/SEQ/4-d.json
  23. 244
      addon/SD/SEQ/4-pat.json
  24. 250
      addon/SD/SEQ/4-vel.json
  25. 32
      addon/SD/SEQ/5-S.json
  26. 64
      addon/SD/SEQ/5-d.json
  27. 4
      addon/SD/SEQ/5-fx.json
  28. 224
      addon/SD/SEQ/5-pat.json
  29. 224
      addon/SD/SEQ/5-vel.json
  30. 30
      addon/SD/SEQ/6-S.json
  31. 24
      addon/SD/SEQ/6-d.json
  32. 224
      addon/SD/SEQ/6-pat.json
  33. 224
      addon/SD/SEQ/6-vel.json
  34. 52
      addon/SD/SEQ/7-S.json
  35. 84
      addon/SD/SEQ/7-d.json
  36. 12
      addon/SD/SEQ/7-fx.json
  37. 276
      addon/SD/SEQ/7-pat.json
  38. 2
      addon/SD/SEQ/7-v0.json
  39. 2
      addon/SD/SEQ/7-v1.json
  40. 248
      addon/SD/SEQ/7-vel.json
  41. 116
      addon/SD/SEQ/8-S.json
  42. 441
      addon/SD/SEQ/8-d.json
  43. 60
      addon/SD/SEQ/8-fx.json
  44. 388
      addon/SD/SEQ/8-pat.json
  45. 31
      addon/SD/SEQ/8-v0.json
  46. 31
      addon/SD/SEQ/8-v1.json
  47. 388
      addon/SD/SEQ/8-vel.json
  48. 23
      config.h
  49. 35
      dexed_sd.cpp
  50. 20547
      drumset.h
  51. 122
      sequencer.cpp
  52. 75
      sequencer.h

@ -648,7 +648,7 @@ void setup()
#endif
LCDML.OTHER_jumpToFunc(UI_func_voice_select);
timer1.begin(sequencer, 90000, false);
timer1.begin(sequencer, seq_tempo_ms / 2, false);
}
void loop()
@ -693,19 +693,6 @@ void loop()
lcd.print( seq_chord_names[arp_chord][2]);
lcd.print( seq_chord_names[arp_chord][3]);
}
else if (LCDML.FUNC_getID() == LCDML.OTHER_getIDFromFunction(UI_func_drum_monitor)) // UI is in Drum Status Monitor
{
for (uint8_t i = 0; i < NUM_DRUMS; i++)
{
lcd.setCursor( i * 2, 1);
if (Drum[i]->isPlaying() ) {
lcd.write(49 + i);
} else
{
lcd.write(32);
}
}
}
}
}
// CONTROL-RATE-EVENT-HANDLING
@ -1777,6 +1764,11 @@ void init_MIDI_send_CC(void)
VOLUME HELPER
******************************************************************************/
void set_drums_volume(float vol)
{
master_mixer_r.gain(2, vol);
master_mixer_l.gain(2, vol);
}
void set_volume(uint8_t v, uint8_t m)
{
float tmp_v;

792
UI.hpp

File diff suppressed because it is too large Load Diff

@ -121,11 +121,11 @@ 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 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_4, 8, "Drum Monitor", UI_func_drum_monitor);
LCDML_add(91, LCDML_0_4, 4, "Drum Rev.Send", UI_func_drum_reverb_send);
LCDML_add(92, LCDML_0_4, 5, "Drum Pitch", UI_func_drum_pitch);
LCDML_add(93, LCDML_0_4, 6, "Drum Tune", UI_func_drum_tune_offset);
LCDML_add(94, LCDML_0_4, 7, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(95, LCDML_0_4, 8, "Smart Filter", UI_func_smart_filter);
LCDML_add(96, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(97, LCDML_0_5, 1, "Pattern Editor", UI_func_seq_pattern_editor);
LCDML_add(98, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor);

@ -4,18 +4,26 @@
1,
6,
9,
3,
3,
0,
1,
5,
8,
3,
3,
0,
1,
6,
9,
3,
3,
2,
1,
5,
7
7,
3,
3
],
"seq_tempo_ms": 147058,
"seq_bpm": 102,
@ -42,7 +50,9 @@
0,
0,
3,
1
1,
0,
0
],
"content_type": [
0,
@ -54,13 +64,29 @@
1,
1,
1,
1
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1
1,
0,
0
],
"seq_name": [
65,

@ -7,7 +7,7 @@
0,
0,
0,
0,
0.675,
0,
0,
1.2,
@ -32,7 +32,10 @@
0,
0,
0,
1,
0,
1,
0.9,
0,
0,
0,
@ -44,11 +47,10 @@
0,
0,
0,
1.427136,
0,
0,
0,
1.427136,
0,
0,
0,
0,
@ -140,6 +142,8 @@
0,
0,
0,
0,
0,
0
],
"pan": [
@ -178,12 +182,12 @@
0.191919,
0,
0,
-0.343434,
-0.484849,
0,
0,
0,
0,
0,
0,
0.323232,
0,
0,
0,
@ -195,12 +199,14 @@
0.080808,
0,
0,
0.414141,
-0.151515,
0,
0,
0,
0,
0,
0,
-0.252525,
0,
0,
0,
@ -214,7 +220,7 @@
0
],
"vol_max": [
1,
0,
1,
1,
1,
@ -249,13 +255,13 @@
0.79,
0.73,
1,
0.9,
0.9,
0.87,
0.89,
0.74,
0.93,
1,
1,
0.9,
0.71,
0.86,
0.74,
0.9,
0.9,
0.8,
@ -263,10 +269,10 @@
0.77,
0.8,
0.8,
0.85,
0.83,
1,
0.78,
0.9,
0.88,
0.9,
0.94,
0.9,
@ -282,6 +288,8 @@
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -353,6 +361,8 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -390,10 +400,10 @@
0,
0,
0,
0.67,
0,
0,
0.34,
0,
0.65,
0,
0,
0,
@ -405,14 +415,16 @@
0,
0,
0,
0.64,
0,
0,
0.2,
0,
0,
0.52,
0.25,
0.66,
0,
0,
0.69,
0,
0,
0,
0,

@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -43,7 +43,7 @@
120,
0,
120,
72,
80,
120,
79,
95,
@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
1,
6,
9,
3,
16,
0,
1,
5,
8,
4,
15,
0,
1,
6,
9,
10,
17,
2,
1,
5,
7
7,
4,
15
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
@ -42,25 +50,43 @@
0,
0,
2,
1
1,
0,
0
],
"content_type": [
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1
1,
0,
0
],
"seq_name": [
67,

@ -1,7 +1,7 @@
{
"drums_volume": 0.95,
"pitch": [
0,
1.498307,
0,
0,
0,
@ -32,12 +32,16 @@
0,
0.806533,
0,
1,
0,
1,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
@ -46,12 +50,10 @@
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
1,
1.005,
0,
0,
0,
@ -72,6 +74,7 @@
0
],
"p_offset": [
1,
0,
0,
0,
@ -108,8 +111,10 @@
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
@ -118,11 +123,10 @@
0,
0,
0,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0,
@ -183,7 +187,7 @@
0,
0,
0,
0,
0.262626,
0,
0,
0.626263,
@ -195,13 +199,15 @@
-0.505051,
0,
0.30303,
0,
0,
-0.464646,
-0.111111,
0,
0,
-0.444444,
0.383838,
-0.383838,
0.010101,
0,
0,
0,
0,
@ -248,31 +254,33 @@
1,
0.79,
0.6,
0.95,
0.98,
0,
0,
0.76,
0.19,
0,
0.38,
0.83,
0.39,
0.57,
0.67,
0,
0,
0.57,
0.65,
0.75,
0.68,
0.76,
0,
0,
0.89,
0.02,
0.86,
0,
0,
0.87,
0.55,
0.82,
0.81,
0.77,
0,
0,
0.09,
0.36,
0,
0.42,
0.77,
0,
0,
0,
0,
@ -353,6 +361,8 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -390,10 +400,10 @@
0,
0,
0.32,
0.55,
0,
0,
0,
0.68,
0,
0,
0,
@ -408,6 +418,8 @@
0.44,
0,
0,
0.41,
0.47,
0,
0,
0,

@ -54,7 +54,10 @@
0,
0,
0,
77,
77,
0,
77,
0,
0,
0,
@ -67,13 +70,10 @@
0,
0,
0,
79,
79,
0,
0,
0,
0,
0,
0,
0,
79,
0,
0,
0,
@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
68,
68,
0,
68,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -54,7 +54,10 @@
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
@ -67,19 +70,16 @@
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
200,
200,
200,
200,
@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
1,
6,
9,
16,
99,
0,
1,
5,
9,
15,
99,
0,
1,
4,
8,
14,
99,
2,
1,
3,
7
7,
13,
99
],
"seq_tempo_ms": 180722,
"seq_bpm": 83,
@ -42,7 +50,9 @@
0,
0,
3,
1
1,
0,
0
],
"content_type": [
0,
@ -54,13 +64,29 @@
2,
1,
1,
1
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
0,
1
1,
0,
0
],
"seq_name": [
66,

@ -1,8 +1,12 @@
{
"drums_volume": 0.95,
"pitch": [
0.420448,
0.178691,
0.140308,
0,
0,
0.629961,
0,
0,
0,
@ -31,15 +35,13 @@
0,
0,
0,
1,
1.025,
1,
0.96,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.97,
0,
0,
0,
@ -72,10 +74,12 @@
0
],
"p_offset": [
1,
0.85,
1,
0,
0,
0,
0,
1,
0,
0,
0,
@ -144,11 +148,11 @@
],
"pan": [
0,
-1,
1,
0,
-0.161616,
0.2,
0.8,
0.8,
-0.010101,
0.8,
-0.7,
-0.5,
@ -180,8 +184,10 @@
0,
0,
0,
-0.191919,
0,
0,
0.252525,
0,
0,
0,
@ -214,12 +220,12 @@
0
],
"vol_max": [
0.84,
0.6,
0.6,
1,
0.62,
0.43,
0.6,
0.8,
0.8,
0.71,
0.8,
0.8,
0.8,
@ -248,13 +254,13 @@
1,
0.68,
0,
0.74,
1,
0.91,
0,
0.65,
0,
0,
0.69,
0.87,
0,
0.61,
0,
0,
0,
@ -266,6 +272,8 @@
0,
0,
0,
1,
0.76,
0,
0,
0,
@ -353,15 +361,17 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.1,
0.2,
0,
0.4,
0.4,
0,
0,
0.49,
0,
0,
0,
@ -390,10 +400,12 @@
0.37,
0,
0,
0.6,
0,
0,
0,
0.66,
0.08,
0,
0,
0,
0,

@ -159,6 +159,230 @@
0,
0,
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,
62,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
67,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
64,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -159,6 +159,230 @@
0,
0,
125,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
120,
215,
0,
0,
0,
0,
0,
210,
120,
0,
0,
0,
0,
0,
0,
200,
120,
215,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
200,
120,
215,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
200,
120,
215,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
1,
3,
9,
5,
5,
0,
2,
4,
8,
5,
5,
0,
1,
4,
8,
5,
5,
2,
1,
3,
7
7,
5,
5
],
"seq_tempo_ms": 133928,
"seq_bpm": 112,
@ -42,7 +50,9 @@
0,
0,
0,
1
1,
0,
0
],
"content_type": [
0,
@ -54,9 +64,25 @@
0,
0,
1,
1
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
0,
0,
0,

@ -9,6 +9,7 @@
0,
0,
0,
0.97,
0,
0,
0,
@ -34,6 +35,7 @@
0,
0,
0,
1,
0,
0,
0,
@ -140,6 +142,8 @@
0,
0,
0,
0,
0,
0
],
"pan": [
@ -151,7 +155,7 @@
0.030303,
0.8,
-0.7,
-0.5,
0,
-0.6,
-0.6,
0,
@ -178,6 +182,8 @@
0.393939,
0,
0,
-0.444444,
0,
0,
0,
0,
@ -221,8 +227,8 @@
0.8,
0.91,
0.8,
0.8,
0.8,
0.82,
0.94,
0.3,
0.3,
0.8,
@ -248,13 +254,13 @@
1,
0.88,
0,
0,
0,
1,
0.83,
0,
0.72,
0,
0,
0,
0.65,
0,
0,
0,
@ -282,6 +288,8 @@
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -353,6 +361,8 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -364,7 +374,7 @@
0,
0,
0,
0,
0.55,
0,
0,
0,
@ -424,6 +434,8 @@
0,
0,
0,
0,
0,
0
]
}

@ -43,13 +43,13 @@
0,
100
],
"reverb_roomsize": 99,
"reverb_roomsize": 67,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_hidamp": 0,
"reverb_diffusion": 100,
"reverb_level": 67,
"reverb_level": 69,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,

@ -20,7 +20,7 @@
78,
78,
78,
45,
46,
78,
78,
78,
@ -28,7 +28,7 @@
78,
78,
78,
45,
46,
78,
0,
0,
@ -36,7 +36,7 @@
78,
78,
78,
45,
46,
78,
78,
78,
@ -44,10 +44,10 @@
78,
78,
78,
45,
46,
78,
45,
45,
46,
46,
73,
0,
0,
@ -159,6 +159,230 @@
0,
0,
40,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -159,6 +159,230 @@
0,
0,
122,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
1,
6,
9,
3,
3,
0,
1,
5,
8,
3,
3,
0,
1,
6,
9,
2,
3,
3,
0,
1,
5,
7
7,
3,
3
],
"seq_tempo_ms": 154639,
"seq_bpm": 97,
@ -42,7 +50,9 @@
0,
0,
3,
1
1,
0,
0
],
"content_type": [
0,
@ -54,13 +64,29 @@
2,
1,
1,
1
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
0,
1
1,
0,
0
],
"seq_name": [
77,

@ -1,5 +1,5 @@
{
"drums_volume": 0.9,
"drums_volume": 0,
"pitch": [
0,
0,
@ -34,6 +34,8 @@
0,
0,
0,
0.905,
0.85,
0,
0,
0,
@ -48,9 +50,9 @@
0,
0,
0,
0.77,
0,
0,
0,
1.27,
0,
0,
0,
@ -140,6 +142,8 @@
0,
0,
0,
0,
0,
0
],
"pan": [
@ -177,6 +181,7 @@
0,
0,
0,
0.161616,
0,
0,
0,
@ -191,13 +196,14 @@
0,
0,
0,
-0.575758,
0,
0.545455,
0,
0,
0,
0,
0,
0,
0.434343,
0,
0,
0,
@ -214,7 +220,7 @@
0
],
"vol_max": [
0.8,
0.83,
0.6,
0.6,
0.6,
@ -244,10 +250,17 @@
0,
0,
0,
0.89,
0,
0.77,
0.71,
1,
0.7,
0,
0.59,
0,
0,
0.63,
0,
0,
0,
@ -256,22 +269,17 @@
0,
0,
0,
0.63,
0,
0.73,
0,
0.72,
0,
0,
0.76,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.6,
0,
0,
0,
@ -353,6 +361,8 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -390,6 +400,7 @@
0,
0,
0,
0.61,
0,
0,
0,
@ -406,6 +417,7 @@
0,
0,
0,
0.56,
0,
0,
0,

@ -1,21 +1,21 @@
{
"seq_data": [
0,
92,
78,
0,
0,
0,
78,
0,
78,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
78,
97,
97,
78,
73,
73,
0,
0,
0,
@ -159,6 +159,230 @@
130,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,21 +1,21 @@
{
"seq_velocity": [
120,
119,
120,
120,
120,
0,
125,
0,
113,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
120,
120,
120,
120,
120,
120,
0,
0,
0,
@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
1,
3,
9,
5,
5,
0,
2,
4,
8,
5,
5,
0,
1,
4,
8,
5,
5,
2,
1,
3,
7
7,
5,
5
],
"seq_tempo_ms": 145631,
"seq_bpm": 103,
@ -42,7 +50,9 @@
0,
0,
0,
1
1,
0,
0
],
"content_type": [
0,
@ -54,9 +64,25 @@
0,
0,
1,
1
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
0,
0,
0,

@ -69,6 +69,8 @@
0,
0,
0,
0,
0,
0
],
"p_offset": [
@ -140,6 +142,8 @@
0,
0,
0,
0,
0,
0
],
"pan": [
@ -152,26 +156,26 @@
-0.030303,
-0.010101,
-0.20202,
0.060606,
-0.040404,
0,
0,
-0.111111,
0.040404,
-0.020202,
-0.424242,
0.111111,
-0.080808,
0.1,
0.252525,
-0.060606,
-0.262626,
-0.535354,
0.505051,
0,
0.252525,
0,
0.414141,
0.242424,
0,
0,
-0.282828,
0.252525,
-0.414141,
-0.262626,
0,
-0.444444,
0,
0,
0.171717,
@ -179,6 +183,8 @@
0,
0,
0,
0.636364,
0,
0,
0,
0,
@ -223,26 +229,26 @@
1,
1,
0.82,
0.97,
0.74,
0.8,
0.98,
0.84,
0.77,
0.91,
0.61,
0.53,
0.5,
0.55,
0.6,
0.55,
0.62,
0.6,
0,
0.49,
0.44,
0.57,
0.64,
0,
0,
0.59,
0.56,
1,
0.86,
0,
0.54,
0.85,
0,
0.85,
@ -250,13 +256,13 @@
0,
0,
0,
0,
0.48,
0.22,
0,
0,
0,
0,
0,
0.41,
0,
0,
0,
@ -267,7 +273,7 @@
0,
0,
0.85,
0,
0.91,
0,
0,
0,
@ -282,6 +288,8 @@
0,
0,
0,
0,
0,
0
],
"vol_min": [
@ -353,6 +361,8 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
@ -365,25 +375,26 @@
0,
0,
0,
0.54,
0.5,
0,
0,
0,
0.47,
0.84,
0.66,
0.1,
0.48,
0,
0.17,
0.57,
0,
0,
0,
0,
0.61,
0.53,
0,
0,
0.53,
0.74,
0,
0,
0.63,
0,
0,
0,
@ -391,6 +402,7 @@
0,
0,
0,
0.46,
0,
0,
0,

@ -43,13 +43,13 @@
0,
100
],
"reverb_roomsize": 99,
"reverb_roomsize": 77,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 45,
"reverb_hidamp": 8,
"reverb_diffusion": 100,
"reverb_level": 67,
"reverb_level": 64,
"eq_1": 0,
"eq_2": 0,
"eq_3": 0,

@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -4,18 +4,26 @@
2,
6,
9,
3,
3,
1,
2,
5,
8,
3,
3,
0,
2,
6,
9,
3,
3,
1,
2,
5,
7
7,
3,
3
],
"seq_tempo_ms": 156250,
"seq_bpm": 96,
@ -39,12 +47,28 @@
27
],
"track_type": [
0,
0,
0,
0,
0,
0
],
"content_type": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
@ -60,7 +84,9 @@
0,
0,
1,
1
1,
0,
0
],
"seq_name": [
70,

@ -1,10 +1,10 @@
{
"drums_volume": 0.95,
"pitch": [
1.041323,
1.052561,
1.122462,
1,
0.243475,
0.204737,
1,
0,
0,
@ -69,10 +69,12 @@
0,
0,
0,
0,
0,
0
],
"p_offset": [
1.39,
1.405,
1,
1,
0.65,
@ -140,6 +142,8 @@
1,
1,
1,
0,
0,
0
],
"pan": [
@ -211,11 +215,13 @@
0,
0,
0,
0,
0,
0
],
"vol_max": [
1,
0.75,
0.86,
0.8,
0.81,
0.8,
@ -282,6 +288,8 @@
0.9,
1,
1,
0,
0,
0
],
"vol_min": [
@ -353,13 +361,15 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.53,
0.66,
0,
0.53,
0.67,
0,
0,
0,
@ -424,6 +434,8 @@
0,
0,
0,
0,
0,
0
]
}

@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -159,6 +159,230 @@
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -3,19 +3,27 @@
0,
1,
2,
9,
0,
10,
17,
19,
5,
1,
2,
8,
0,
11,
17,
17,
6,
1,
2,
9,
0,
12,
18,
20,
7,
1,
2,
7
13,
19,
16
],
"seq_tempo_ms": 150000,
"seq_bpm": 100,
@ -31,17 +39,19 @@
"seq_oct_shift": 0,
"seq_element_shift": 0,
"bank": [
63,
86,
91
],
"voice": [
2,
27,
27
],
"track_type": [
0,
0,
0,
1,
0,
0
],
"content_type": [
@ -54,13 +64,29 @@
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1
0,
0,
0
],
"seq_name": [
74,
@ -69,9 +95,9 @@
97,
110,
45,
65,
0,
0,
66,
73,
71,
0,
0,
0,

@ -1,15 +1,15 @@
{
"drums_volume": 0.95,
"pitch": [
1.001637,
0,
0,
0.48772,
0,
0,
0,
0,
0,
0,
0,
0.925,
0,
0,
0,
@ -36,7 +36,11 @@
0,
0,
0,
1.175,
0,
1,
1.135,
1.005,
0,
0,
0,
@ -49,15 +53,13 @@
0,
0,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0.08,
1.01,
0,
0,
0,
@ -72,11 +74,15 @@
0
],
"p_offset": [
0.795,
0,
0,
0.58,
0,
0,
0,
0.43,
0.72,
0,
0,
0,
@ -103,6 +109,11 @@
0,
0,
0,
1.025,
1,
1,
0.995,
0.995,
0,
0,
0,
@ -115,20 +126,13 @@
0,
0,
0,
0.395,
0,
1,
1.865,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1.08,
0,
0,
0,
@ -180,7 +184,7 @@
0.1,
0,
0,
1,
0.171717,
0,
0,
0,
@ -195,7 +199,9 @@
-0.2,
0,
0.2,
0.121212,
0,
0.030303,
0,
0,
0,
@ -214,7 +220,7 @@
0
],
"vol_max": [
0.89,
0.98,
0.54,
0.53,
0.7,
@ -222,7 +228,7 @@
1,
1,
1,
1,
0.95,
1,
1,
1,
@ -249,12 +255,12 @@
0.9,
0.7,
1,
1,
0.9,
0.6,
0.7,
0.9,
0.9,
0.89,
0.89,
0.81,
0.8,
0.94,
0.78,
0.9,
1,
1,
@ -266,13 +272,13 @@
0.8,
0.8,
0.8,
0.69,
0.8,
0.8,
1,
1,
0.9,
0.84,
0.62,
0.9,
0.9,
0.84,
0.9,
0.9,
0.9,
@ -282,6 +288,8 @@
0.9,
1,
1,
0,
0,
0
],
"vol_min": [
@ -353,18 +361,20 @@
0,
0,
0,
0,
0,
0
],
"reverb_send": [
0,
0.9,
0.86,
0.51,
0,
0,
0,
0,
0,
0,
0.45,
0,
0,
0,
@ -394,6 +404,7 @@
0,
0,
0,
0.06,
0,
0,
0,
@ -409,7 +420,8 @@
0,
0,
0,
0,
0.15,
0.17,
0,
0,
0,

@ -28,28 +28,28 @@
0
],
"delay_feedback": [
73,
68,
81
],
"delay_level": [
83,
75,
80
],
"delay_sync": [
3,
4,
3
],
"reverb_send": [
51,
100,
100
],
"reverb_roomsize": 100,
"reverb_roomsize": 79,
"reverb_damping": 0,
"reverb_lowpass": 94,
"reverb_lodamp": 6,
"reverb_hidamp": 0,
"reverb_diffusion": 100,
"reverb_level": 72,
"reverb_level": 93,
"eq_1": 0,
"eq_2": 0,
"eq_3": 1,

@ -1,21 +1,21 @@
{
"seq_data": [
210,
210,
81,
81,
0,
210,
210,
81,
81,
0,
210,
210,
210,
210,
81,
81,
81,
81,
0,
210,
210,
81,
81,
0,
210,
210,
81,
81,
77,
0,
0,
@ -33,21 +33,245 @@
0,
0,
78,
0,
93,
0,
76,
0,
93,
0,
78,
78,
78,
95,
78,
78,
78,
78,
78,
78,
78,
95,
78,
78,
78,
0,
93,
0,
76,
0,
93,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
77,
77,
0,
77,
77,
0,
77,
77,
77,
77,
0,
77,
77,
0,
77,
77,
79,
79,
0,
79,
79,
0,
79,
79,
79,
79,
0,
79,
79,
0,
79,
79,
76,
76,
0,
76,
76,
0,
76,
76,
76,
76,
0,
76,
76,
0,
76,
76,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
77,
0,
74,
0,
72,
72,
74,
77,
0,
0,
0,
0,
0,
0,
0,
0,
77,
0,
74,
0,
72,
72,
74,
77,
0,
0,
0,
0,
79,
0,
0,
0,
77,
0,
74,
0,
72,
72,
74,
77,
0,
74,
0,
74,
72,
0,
74,
0,
69,
0,
0,
69,
0,
0,
69,
0,
72,
0,
67,
69,
0,
0,
76,
81,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,

@ -3,7 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 93,
"sound_intensity": 71,
"pan": 23,
"polyphony": 16,
"velocity_level": 100,

@ -3,7 +3,7 @@
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 100,
"sound_intensity": 97,
"pan": 15,
"polyphony": 16,
"velocity_level": 100,

@ -1,7 +1,36 @@
{
"seq_velocity": [
210,
210,
0,
210,
210,
120,
210,
210,
210,
210,
120,
210,
210,
0,
210,
210,
120,
0,
0,
0,
106,
0,
0,
0,
120,
0,
0,
0,
107,
0,
0,
0,
120,
120,
@ -13,41 +42,236 @@
120,
120,
120,
0,
120,
120,
120,
120,
120,
120,
0,
0,
0,
120,
0,
0,
0,
120,
0,
0,
0,
120,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
210,
210,
0,
210,
210,
120,
210,
210,
210,
210,
120,
210,
210,
0,
210,
210,
210,
210,
0,
210,
210,
120,
210,
210,
210,
210,
120,
210,
210,
0,
210,
210,
210,
210,
0,
210,
210,
120,
210,
210,
210,
210,
120,
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,
124,
0,
115,
0,
101,
94,
105,
127,
0,
0,
0,
0,
0,
0,
0,
0,
127,
0,
125,
0,
113,
103,
107,
108,
0,
0,
0,
0,
127,
0,
0,
0,
101,
0,
110,
0,
101,
90,
107,
102,
0,
102,
0,
102,
107,
0,
113,
0,
115,
0,
0,
101,
0,
0,
76,
0,
102,
0,
100,
120,
0,
120,
120,
120,
120,
120,
120,
120,
120,
120,
89,
96,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,116 @@
{
"seq_patternchain": [
0,
3,
10,
5,
99,
99,
0,
4,
11,
6,
24,
24,
0,
3,
12,
5,
99,
99,
0,
3,
13,
5,
99,
99
],
"seq_tempo_ms": 170454,
"seq_bpm": 88,
"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": [
61,
91
],
"voice": [
27,
27
],
"track_type": [
0,
1,
1,
0,
1,
1
],
"content_type": [
0,
0,
0,
1,
1,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0
],
"seq_inst_dexed": [
0,
0,
1,
1,
1,
1
],
"seq_name": [
86,
105,
115,
105,
116,
111,
114,
115,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -0,0 +1,441 @@
{
"drums_volume": 0.95,
"pitch": [
0.979644,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1.32,
0,
1.575,
0,
1.1,
0,
1.76,
0.42,
0,
1.905,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.73,
0,
1.07,
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
],
"p_offset": [
1.165,
1,
1,
0.65,
1,
1,
1,
1,
1,
1,
1,
1,
1.56,
1,
0.955,
1.555,
1,
2,
1,
1.83,
1,
2,
1.935,
1,
1.455,
1,
1,
1,
1,
1,
1,
1,
1,
0.915,
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,
0,
0
],
"pan": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.484849,
0,
0.393939,
-0.444444,
0,
0.666667,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
-0.2,
-0.2,
0.1,
0,
0.262626,
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,
0,
0
],
"vol_max": [
1,
0.8,
0.8,
0.7,
0.8,
1,
1,
1,
1,
1,
1,
1,
0.89,
0.7,
0.98,
0.83,
1,
0.77,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0.9,
0.7,
1,
1,
0.67,
0.6,
0.79,
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,
0,
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,
0,
0
],
"reverb_send": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0.27,
0,
0,
0.71,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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": [
76,
89
],
"delay_level": [
66,
80
],
"delay_sync": [
3,
4
],
"reverb_send": [
92,
100
],
"reverb_roomsize": 76,
"reverb_damping": 0,
"reverb_lowpass": 100,
"reverb_lodamp": 14,
"reverb_hidamp": 13,
"reverb_diffusion": 100,
"reverb_level": 81,
"eq_1": 0,
"eq_2": 0,
"eq_3": 1,
"eq_4": 0,
"eq_5": 0,
"eq_6": -2,
"eq_7": 8
}

@ -0,0 +1,388 @@
{
"seq_data": [
72,
0,
0,
55,
53,
0,
0,
0,
72,
0,
0,
0,
76,
0,
74,
74,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
45,
57,
69,
81,
45,
57,
69,
81,
45,
57,
69,
81,
45,
57,
69,
81,
38,
50,
62,
74,
38,
50,
62,
74,
38,
50,
62,
74,
38,
50,
62,
74,
69,
0,
69,
0,
0,
0,
0,
69,
69,
0,
0,
0,
0,
0,
0,
0,
74,
0,
74,
0,
0,
0,
0,
74,
74,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
76,
0,
76,
78,
74,
0,
0,
0,
0,
0,
0,
0,
0,
0,
72,
0,
74,
0,
76,
69,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
64,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,31 @@
{
"lowest_note": 21,
"highest_note": 108,
"transpose": 24,
"tune": 100,
"sound_intensity": 70,
"pan": 25,
"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": 86,
"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
}

@ -0,0 +1,388 @@
{
"seq_velocity": [
120,
0,
0,
115,
124,
0,
0,
0,
120,
0,
0,
0,
127,
0,
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,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
210,
0,
210,
0,
0,
0,
0,
210,
210,
0,
0,
0,
0,
0,
0,
0,
210,
0,
210,
0,
0,
0,
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,
125,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
126,
0,
125,
125,
127,
0,
0,
0,
0,
0,
0,
0,
0,
0,
92,
0,
95,
0,
102,
123,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
124,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}

@ -110,17 +110,30 @@
#define USE_FX 1
// NUMBER OF PARALLEL SAMPLEDRUMS
#ifdef TEENSY4
#define NUM_DRUMS 8
#else
#define NUM_DRUMS 4
#endif
// DEFAULT MIDI CHANNEL FOR DRUMSAMPLER
#define DRUM_MIDI_CHANNEL 10
// NUMBER OF SAMPLES IN DRUMSET
#define NUM_DRUMSET_CONFIG 69
#ifdef TEENSY4
#define NUM_DRUMSET_CONFIG 71
#else
#define NUM_DRUMSET_CONFIG 43
#endif
// SEQUENCER
// SEQUENCER
#ifdef TEENSY4
#define NUM_SEQ_PATTERN 24
#define NUM_SEQ_TRACKS 6
#else
#define NUM_SEQ_PATTERN 10
#define NUM_SEQ_TRACKS 4
#define NUM_SEQ_TRACKS 2
#endif
// CHORUS parameters
#define MOD_DELAY_SAMPLE_BUFFER int32_t(TIME_MS2SAMPLES(20.0)) // 20.0 ms delay buffer.
@ -196,7 +209,7 @@
#define ENABLE_LCD_UI 1
#define STANDARD_LCD_I2C
//#define OLED_SPI
//#define TESTDISPLAY20x4 //Currently for testing I2C Display 20x4
//#define TESTDISPLAY20x4 //Currently for testing I2C Display 20x4 aka type "2004"
// LCD Display
//I2C_DISPLAY only

@ -34,6 +34,7 @@ using namespace TeensyTimerTool;
#include "synth_dexed.h"
#if NUM_DRUMS > 0
#include "drums.h"
extern void set_drums_volume(float vol);
extern drum_config_t drum_config[];
#endif
@ -43,11 +44,10 @@ extern void check_configuration_performance(void);
extern void check_configuration_fx(void);
extern void sequencer();
extern float drums_volume;
//extern StaticJsonDocument<JSON_BUFFER> data_json;
extern uint8_t seq_chain_lenght;
extern uint8_t seq_data[NUM_SEQ_PATTERN][16];
extern uint8_t seq_vel[NUM_SEQ_PATTERN][16];
extern uint8_t seq_patternchain[NUM_SEQ_TRACKS][4];
extern uint8_t seq_patternchain[4][NUM_SEQ_TRACKS];
extern uint8_t seq_content_type[NUM_SEQ_PATTERN];
extern uint8_t seq_track_type[NUM_SEQ_TRACKS];
extern uint8_t seq_chord_key_ammount;
@ -483,7 +483,7 @@ bool load_sd_drumsettings_json(uint8_t number, uint8_t target)
Serial.println();
#endif
drums_volume = data_json["drums_volume"];
set_drums_volume(drums_volume);
for (uint8_t i = 0; i < NUM_DRUMSET_CONFIG; i++)
{
set_sample_pitch( i, data_json["pitch"][i] );
@ -1089,13 +1089,9 @@ bool save_sd_seq_json(uint8_t seq_number)
Serial.print(F(" to "));
Serial.println(filename);
#endif
int total = sizeof(seq_data);
int columns = sizeof(seq_data[0]);
int total = sizeof(seq_patternchain);
int columns = sizeof(seq_patternchain[0]);
int rows = total / columns;
Serial.print(F("Rows: "));
Serial.print(rows);
Serial.print(" Columns: ");
Serial.print(columns);
Serial.print(F(" "));
AudioNoInterrupts();
SD.begin();
@ -1103,9 +1099,6 @@ bool save_sd_seq_json(uint8_t seq_number)
json = SD.open(filename, FILE_WRITE);
if (json)
{
total = sizeof(seq_patternchain);
columns = sizeof(seq_patternchain[0]);
rows = total / columns;
Serial.print(F("Chain Rows: "));
Serial.print(rows);
Serial.print(" Chain Columns: ");
@ -1401,23 +1394,29 @@ bool load_sd_seq_json(uint8_t seq_number)
int count = 0;
for (uint8_t i = 0; i < rows; i++)
{
for (uint8_t j = 0; j < columns; j++) {
for (uint8_t j = 0; j < columns; j++)
{
seq_patternchain[i][j] = data_json["seq_patternchain"][count];
count++;
}
}
for (uint8_t i = 0; i < sizeof(seq_track_type); i++) {
for (uint8_t i = 0; i < sizeof(seq_track_type); i++)
{
seq_track_type[i] = data_json["track_type"][i];
}
for (uint8_t i = 0; i < sizeof(seq_content_type); i++) {
for (uint8_t i = 0; i < sizeof(seq_content_type); i++)
{
seq_content_type[i] = data_json["content_type"][i];
}
for (uint8_t i = 0; i < sizeof(seq_inst_dexed); i++) {
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++) {
if (data_json["seq_name"][0] != 0)
{
for (uint8_t i = 0; i < FILENAME_LEN; i++)
{
seq_name[i] = data_json["seq_name"][i];
}
}

20547
drumset.h

File diff suppressed because it is too large Load Diff

@ -39,81 +39,85 @@ void sequencer_part1(void)
for (uint8_t d = 0; d < NUM_SEQ_TRACKS; d++)
{
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 )
{
if (seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] > 209) // it is a pitched sample
if (seq_patternchain[seq_chain_active_step][d] != 99 ) // sequence not empty
{
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 )
{
// 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 );
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 // 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 {
if (seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] > 0 ) // instrument track
{
if (seq_track_type[d] == 1 || (seq_track_type[d] == 3 && arp_play_basenote) )
else {
if (seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] > 0 ) // instrument track
{
if (seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] != 130 )
if (seq_track_type[d] == 1 || (seq_track_type[d] == 3 && arp_play_basenote) )
{
handleNoteOn(configuration.dexed[seq_inst_dexed[d]].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step], seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step]);
seq_prev_note[d] = seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step];
seq_prev_vel[d] = seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step];
if (seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] != 130 )
{
handleNoteOn(configuration.dexed[seq_inst_dexed[d]].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step], seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step]);
seq_prev_note[d] = seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step];
seq_prev_vel[d] = seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step];
}
}
}
else if (seq_track_type[d] == 2 ) //Chords
{
if (seq_vel[ seq_patternchain[seq_chain_active_step][d]][seq_step] > 199)
else if (seq_track_type[d] == 2 ) //Chords
{
if (seq_vel[ seq_patternchain[seq_chain_active_step][d]][seq_step] > 199)
{
//handleNoteOn(configuration.dexed[seq_inst_dexed[d]].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step], seq_chord_velocity); // basenote
//handleNoteOn(configuration.dexed[seq_inst_dexed[d]].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step], seq_chord_velocity); // basenote
for (uint8_t x = seq_element_shift; x < seq_element_shift + seq_chord_key_ammount; x++) //play chord notes
{
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] + (seq_oct_shift * 12) + seq_arps[seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] - 200][x], seq_chord_velocity);
for (uint8_t x = seq_element_shift; x < seq_element_shift + seq_chord_key_ammount; x++) //play chord notes
{
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] + (seq_oct_shift * 12) + seq_arps[seq_vel[ seq_patternchain[seq_chain_active_step][d] ][seq_step] - 200][x], seq_chord_velocity);
}
seq_prev_note[d] = seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] + (seq_oct_shift * 12);
seq_prev_vel[d] = seq_vel[seq_patternchain[seq_chain_active_step][d]][seq_step];
}
seq_prev_note[d] = seq_data[seq_patternchain[seq_chain_active_step][d]][seq_step] + (seq_oct_shift * 12);
seq_prev_vel[d] = seq_vel[seq_patternchain[seq_chain_active_step][d]][seq_step];
}
if (seq_track_type[d] == 3) { //Arp
arp_step = 0;
arp_counter = 0;
arp_note = seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] + (seq_oct_shift * 12);
arp_chord = seq_vel[seq_patternchain[seq_chain_active_step][d] ][seq_step] - 200;
}
}
if (seq_track_type[d] == 3) { //Arp
arp_step = 0;
arp_counter = 0;
arp_note = seq_data[ seq_patternchain[seq_chain_active_step][d] ][seq_step] + (seq_oct_shift * 12);
arp_chord = seq_vel[seq_patternchain[seq_chain_active_step][d] ][seq_step] - 200;
}
}
// after here not triggered by a key input - arp only
if (seq_track_type[d] == 3)
{ //Arp
if (arp_speed == 0 || (arp_speed == 1 && arp_counter == 0) ) {
// after here not triggered by a key input - arp only
if (seq_track_type[d] == 3)
{ //Arp
if (arp_speed == 0 || (arp_speed == 1 && arp_counter == 0) ) {
{ if (arp_style == 0) { //arp up
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_step + seq_element_shift], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_step + seq_element_shift] ;
}
else if (arp_style == 1) { //arp down
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_lenght - arp_step + seq_element_shift], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_lenght - arp_step + seq_element_shift] ;
}
else if (arp_style == 2) { //arp up & down
if (arp_step <= arp_lenght) {
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_step ], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_step ] ;
{ if (arp_style == 0) { //arp up
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_step + seq_element_shift], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_step + seq_element_shift] ;
}
else {
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_lenght * 2 - arp_step ], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_lenght * 2 - arp_step ] ;
else if (arp_style == 1) { //arp down
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_lenght - arp_step + seq_element_shift], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_lenght - arp_step + seq_element_shift] ;
}
else if (arp_style == 2) { //arp up & down
if (arp_step <= arp_lenght) {
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_step ], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_step ] ;
}
else {
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][arp_lenght * 2 - arp_step ], seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][arp_lenght * 2 - arp_step ] ;
}
}
else if (arp_style == 3) { //arp random
uint8_t rnd1 = random(arp_lenght);
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][rnd1 + seq_element_shift] + (seq_oct_shift * 12), seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][rnd1 + seq_element_shift] + (seq_oct_shift * 12);
}
}
else if (arp_style == 3) { //arp random
uint8_t rnd1 = random(arp_lenght);
handleNoteOn(configuration.dexed[seq_chord_dexed_inst].midi_channel, arp_note + seq_arps[arp_chord][rnd1 + seq_element_shift] + (seq_oct_shift * 12), seq_chord_velocity);
arp_note_prev = arp_note + seq_arps[arp_chord][rnd1 + seq_element_shift] + (seq_oct_shift * 12);
}
}
}

@ -3,7 +3,13 @@ float drums_volume;
uint8_t seq_active_track = 0;
uint8_t seq_menu;
bool seq_button_r = false;
bool seq_noteoffsent[4] = {false, false, false, false};
#ifdef TEENSY4
bool seq_noteoffsent[NUM_SEQ_TRACKS] = {false, false, false, false, false, false};
uint8_t seq_inst_dexed[NUM_SEQ_TRACKS] = { 0, 0, 1, 1 , 1, 1 };
#else
bool seq_noteoffsent[NUM_SEQ_TRACKS] = {false, false};
uint8_t seq_inst_dexed[NUM_SEQ_TRACKS] = { 0, 0 };
#endif
uint8_t seq_step = 0;
bool seq_running = false;
bool seq_recording = false;
@ -14,7 +20,7 @@ char seq_name_temp[FILENAME_LEN];
uint8_t seq_note_in;
uint8_t seq_note_in_velocity;
int seq_transpose;
uint8_t seq_inst_dexed[NUM_SEQ_TRACKS] = { 0, 0, 1, 1 };
uint8_t seq_chord_dexed_inst = 0;
uint8_t seq_chord_velocity = 60;
uint8_t seq_chord_key_ammount = 4;
@ -45,7 +51,7 @@ char arp_style_names[4][3] = { 'u', 'p', ' ',
'u', '&', 'd',
'R', 'N', 'D',
};
int seq_tempo_ms = 147;
int seq_tempo_ms = 180000;
int seq_bpm = 102;
uint8_t seq_temp_select_menu;
uint8_t seq_temp_active_menu = 99;
@ -66,27 +72,27 @@ uint8_t arp_counter = 0;
uint8_t arp_lenght = 8;
uint8_t seq_data_buffer[16] = {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 };
uint8_t seq_data[NUM_SEQ_PATTERN][16] = {0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
};
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
};
uint8_t seq_vel[NUM_SEQ_PATTERN][16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
//uint8_t seq_data[10][16] = {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 ,
@ -132,11 +138,20 @@ uint8_t seq_vel[NUM_SEQ_PATTERN][16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
// 124, 120, 0, 115, 0, 0, 126, 120, 0, 120, 127, 120, 0, 0, 0, 0,
// 123, 120, 0, 110, 120, 0, 90, 120, 0, 0, 0, 0, 0, 0, 0, 0
// };
uint8_t seq_content_type[NUM_SEQ_PATTERN] = { 0, 0, 0, 0 , 0, 0, 0 , 0 , 0 , 0 }; // 0 = track is Drumtrack, 1= Instrumenttrack, 2= Chord or Arpeggio
#ifdef TEENSY4
uint8_t seq_patternchain[4][NUM_SEQ_TRACKS] = { 0 , 2 , 6 , 9 , 99, 99,
1 , 2 , 5 , 8 , 99, 99,
0 , 2 , 6 , 9 , 99, 99,
1 , 2 , 5 , 7 , 99, 99
};
uint8_t seq_patternchain[NUM_SEQ_TRACKS][4] = { 0 , 2 , 6 , 9 ,
1 , 2 , 5 , 8 ,
0 , 2 , 6 , 9 ,
1 , 2 , 5 , 7
};
uint8_t seq_content_type[NUM_SEQ_PATTERN] = { 0, 0, 0, 0 , 0, 0, 0 , 0 , 0 , 0 }; // 0 = track is Drumtrack, 1= Instrumenttrack, 2= Chord or Arpeggio
uint8_t seq_track_type[NUM_SEQ_TRACKS] = { 0, 0, 0, 0 }; // 0 = track is Drumtrack, 1 = Instrumenttrack, 2 = Chord, 3 = Arp
uint8_t seq_track_type[NUM_SEQ_TRACKS] = { 0, 0, 1, 1, 1, 1 }; // 0 = track is Drumtrack, 1 = Instrumenttrack, 2 = Chord, 3 = Arp
#else
uint8_t seq_patternchain[4][NUM_SEQ_TRACKS] = { 0 , 2 ,
1 , 2 ,
0 , 2 ,
1 , 2 ,
};
uint8_t seq_track_type[NUM_SEQ_TRACKS] = { 0, 0 }; // 0 = track is Drumtrack, 1 = Instrumenttrack, 2 = Chord, 3 = Arp
#endif

Loading…
Cancel
Save