Merge pull request 'more #ifdefs for T4.1, T4.0 and T3.6 compatibility, shorter samples, new mute matrix' (#107) from positionhigh/MicroDexed:dev into dev

Reviewed-on: https://codeberg.org/dcoredump/MicroDexed/pulls/107
pull/109/head
Holger Wirtz 3 years ago
commit 5545c8a359
  1. 299
      UI.hpp
  2. 43
      UI_FX_T4.h
  3. 41
      UI_NO_FX.h
  4. 6
      config.h
  5. 14732
      drumset.h
  6. 2
      sequencer.cpp

299
UI.hpp

@ -308,6 +308,7 @@ void UI_func_seq_lenght(uint8_t param);
void UI_func_seq_tempo(uint8_t param); void UI_func_seq_tempo(uint8_t param);
void UI_func_seq_pat_chain(uint8_t param); void UI_func_seq_pat_chain(uint8_t param);
void UI_func_arpeggio(uint8_t param); void UI_func_arpeggio(uint8_t param);
void UI_func_seq_mute_matrix(uint8_t param);
void UI_func_seq_track_setup(uint8_t param); void UI_func_seq_track_setup(uint8_t param);
void UI_func_dexed_assign(uint8_t param); void UI_func_dexed_assign(uint8_t param);
void UI_func_seq_display_style(uint8_t param); void UI_func_seq_display_style(uint8_t param);
@ -4899,13 +4900,13 @@ void arp_refresh_display_play_status()
} }
void seq_print_current_note() void seq_print_current_note()
{ {
lcd.print(noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][0] ); lcd.print(noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][0] );
if (noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][1] != '\0' ) if (noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][1] != '\0' )
{ {
lcd.print(noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][1] ); lcd.print(noteNames[seq_data[seq_active_track][seq_menu - 3] % 12 ][1] );
} }
lcd.print( (seq_data[seq_active_track][seq_menu - 3] / 12) - 1); lcd.print( (seq_data[seq_active_track][seq_menu - 3] / 12) - 1);
lcd.print(" "); lcd.print(" ");
} }
void UI_func_seq_pattern_editor(uint8_t param) void UI_func_seq_pattern_editor(uint8_t param)
{ {
@ -5402,9 +5403,9 @@ void UI_func_seq_pattern_editor(uint8_t param)
lcd.print(temp_int); lcd.print(temp_int);
} else if (seq_menu == 0) { } else if (seq_menu == 0) {
#ifdef TESTDISPLAY20x4 #ifdef TESTDISPLAY20x4
lcd.setCursor(14, 0); lcd.setCursor(13, 0);
lcd.print(" "); lcd.print(" ");
lcd.setCursor(16, 0); lcd.setCursor(15, 0);
lcd.print(" "); lcd.print(" ");
#else #else
lcd.setCursor(9, 0); lcd.setCursor(9, 0);
@ -5489,7 +5490,7 @@ void UI_func_seq_pattern_editor(uint8_t param)
lcd.setCursor(7, 0); lcd.setCursor(7, 0);
lcd.print(" "); lcd.print(" ");
#ifdef TESTDISPLAY20x4 #ifdef TESTDISPLAY20x4
lcd.setCursor(17, 0); lcd.setCursor(16, 0);
lcd.print(" "); lcd.print(" ");
lcd.setCursor(19, 0); lcd.setCursor(19, 0);
lcd.print(" "); lcd.print(" ");
@ -5500,10 +5501,10 @@ void UI_func_seq_pattern_editor(uint8_t param)
lcd.print(" "); lcd.print(" ");
#endif #endif
#ifdef TESTDISPLAY20x4 #ifdef TESTDISPLAY20x4
lcd.setCursor(14, 0); lcd.setCursor(13, 0);
lcd.print("["); lcd.print("[");
seq_refresh_display_play_status(); seq_refresh_display_play_status();
lcd.setCursor(16, 0); lcd.setCursor(15, 0);
lcd.print("]"); lcd.print("]");
#else #else
lcd.setCursor(9, 0); lcd.setCursor(9, 0);
@ -5515,9 +5516,9 @@ void UI_func_seq_pattern_editor(uint8_t param)
} }
if (seq_menu == 2) { if (seq_menu == 2) {
#ifdef TESTDISPLAY20x4 #ifdef TESTDISPLAY20x4
lcd.setCursor(14, 0); lcd.setCursor(13, 0);
lcd.print(" "); lcd.print(" ");
lcd.setCursor(16, 0); lcd.setCursor(15, 0);
lcd.print(" "); lcd.print(" ");
lcd.setCursor(16, 0); lcd.setCursor(16, 0);
lcd.print("["); lcd.print("[");
@ -5554,7 +5555,7 @@ void UI_func_seq_pattern_editor(uint8_t param)
} }
if (seq_menu == 3) { if (seq_menu == 3) {
#ifdef TESTDISPLAY20x4 #ifdef TESTDISPLAY20x4
lcd.setCursor(17, 0); lcd.setCursor(16, 0);
lcd.print(" "); lcd.print(" ");
lcd.setCursor(19, 0); lcd.setCursor(19, 0);
lcd.print(" "); lcd.print(" ");
@ -5592,17 +5593,27 @@ void UI_func_seq_pattern_editor(uint8_t param)
{ {
lcd.setCursor(0, 0); lcd.setCursor(0, 0);
lcd.print("[EDIT "); lcd.print("[EDIT ");
seq_print_current_note(); seq_print_current_note();
lcd.setCursor(8, 0); lcd.setCursor(8, 0);
lcd.print("?]"); lcd.print("?]");
} }
else else
{ //print current sample name on active step if not empty
lcd.setCursor(0, 0); if (seq_data[seq_active_track][seq_menu - 3] > 0)
lcd.print(" "); {
lcd.show(0, 1, 6, basename(drum_config[activesample].name)); lcd.setCursor(0, 0);
lcd.print(" "); lcd.print(" ");
} lcd.show(0, 1, 6, seq_find_drum_name_from_note( seq_data[seq_active_track][seq_menu - 3]) );
lcd.print(" ");
}
else
{ //if step empty, print selected, active sample
if (seq_data[seq_active_track][seq_menu - 3] == 0)
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.show(0, 1, 6, basename(drum_config[activesample].name));
lcd.print(" ");
}
} }
else if (seq_active_function == 40 && activesample != NUM_DRUMSET_CONFIG - 1) else if (seq_active_function == 40 && activesample != NUM_DRUMSET_CONFIG - 1)
{ //is in pitch edit function 40 { //is in pitch edit function 40
@ -5952,6 +5963,250 @@ void UI_func_seq_pat_chain(uint8_t param)
} }
} }
#ifdef TESTDISPLAY20x4
void UI_func_seq_mute_matrix(uint8_t param) // for test display 20x4
{
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
// setup function
seq_temp_active_menu = 99;
seq_temp_select_menu = 1;
seq_menu = 0;
temp_int = 0; //y offset
lcd.setCursor( 0, 0);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
uint8_t xscroll;
if (seq_temp_active_menu == 99) {
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
{
seq_temp_select_menu = constrain(seq_temp_select_menu + 1, 0, NUM_SEQ_TRACKS + 1);
if (seq_temp_select_menu == NUM_SEQ_TRACKS + 1 && temp_int != 3) //next chain step
{
lcd.setCursor( 14 , temp_int);
lcd.print(" ");
lcd.setCursor( 18 , temp_int);
lcd.print(" ");
seq_temp_select_menu = 1;
if (temp_int < 3)temp_int++;
}
if (seq_temp_select_menu == NUM_SEQ_TRACKS + 1 && temp_int == 3)
seq_temp_select_menu = NUM_SEQ_TRACKS;
}
else if (LCDML.BT_checkUp())
{
seq_temp_select_menu = constrain(seq_temp_select_menu - 1, 0, NUM_SEQ_TRACKS + 1);
if (seq_temp_select_menu == 0 && temp_int > 0) //prev chain step
{
lcd.setCursor( 2 , temp_int);
lcd.print(" ");
lcd.setCursor( 6 , temp_int);
lcd.print(" ");
seq_temp_select_menu = NUM_SEQ_TRACKS - 1 ;
if (temp_int >= 0)temp_int = temp_int - 1;
lcd.setCursor( 14 , temp_int);
lcd.print("[");
lcd.setCursor( 18 , temp_int);
lcd.print("]");
}
else if (seq_temp_select_menu < 1 && temp_int == 0 )
seq_temp_select_menu = 1;
}
}
}
if (LCDML.BT_checkEnter()) //handle button presses during menu >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
{
if (seq_patternchain[temp_int][seq_temp_select_menu - 1] < NUM_SEQ_PATTERN)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = seq_patternchain[temp_int][seq_temp_select_menu - 1] + (NUM_SEQ_PATTERN + 10);
else if (seq_patternchain[temp_int][seq_temp_select_menu - 1] > NUM_SEQ_PATTERN && seq_patternchain[temp_int][seq_temp_select_menu - 1] != 99)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = seq_patternchain[temp_int][seq_temp_select_menu - 1] - (NUM_SEQ_PATTERN + 10);
else if (seq_patternchain[temp_int][seq_temp_select_menu - 1] == 99)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = NUM_SEQ_PATTERN - 1;
}
if (seq_temp_select_menu - 1 < 4)xscroll = 0;
else if (seq_temp_select_menu - 1 == 4)xscroll = 1;
else xscroll = 2;
for (uint8_t y = 0; y < 4; y++)
{
for (uint8_t x = 0; x < NUM_SEQ_TRACKS - 2; x++)
{
lcd.setCursor( x * 4 + 3, y);
if (seq_patternchain[y][x + xscroll] < NUM_SEQ_PATTERN )
{
if (seq_track_type[x + xscroll ] == 0 ) lcd.print("D");
else if (seq_track_type[x + xscroll ] == 1 ) lcd.print("I");
else if (seq_track_type[x + xscroll ] == 2 ) lcd.print("C");
else lcd.print("A");
if (seq_patternchain[y][x + xscroll] < 10)
lcd.print("0");
lcd.print( seq_patternchain[y][x + xscroll] );
}
else
lcd.print("OFF");
}
}
if (xscroll == 0)
{
//print cursor
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 2, temp_int);
lcd.print("[");
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 6, temp_int);
lcd.print("]");
if ((seq_temp_select_menu - 1) > 0) {
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 2 - 4 , temp_int);
lcd.print(" ");
}
if ((seq_temp_select_menu - 1) < 4) {
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 6 + 4 , temp_int);
lcd.print(" ");
}
}
lcd.setCursor( 0, 0);
lcd.print("T");
lcd.print(seq_temp_select_menu);
lcd.setCursor( 0, 1);
lcd.print("S");
lcd.print(temp_int + 1); // Chain Step
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
}
#else
void UI_func_seq_mute_matrix(uint8_t param) // for standard display 16x2
{
if (LCDML.FUNC_setup()) // ****** SETUP *********
{
// setup function
seq_temp_active_menu = 99;
seq_temp_select_menu = 1;
seq_menu = 0;
temp_int = 0; //y offset
lcd.setCursor( 0, 0);
}
if (LCDML.FUNC_loop()) // ****** LOOP *********
{
uint8_t xscroll;
if (seq_temp_active_menu == 99) {
if ((LCDML.BT_checkDown() && encoderDir[ENC_R].Down()) || (LCDML.BT_checkUp() && encoderDir[ENC_R].Up()))
{
if (LCDML.BT_checkDown())
{
seq_temp_select_menu = constrain(seq_temp_select_menu + 1, 0, NUM_SEQ_TRACKS + 1);
if (seq_temp_select_menu == NUM_SEQ_TRACKS + 1 && temp_int != 3) //next chain step
{
lcd.setCursor( 10 , 1);
lcd.print(" ");
lcd.setCursor( 14 , 1);
lcd.print(" ");
seq_temp_select_menu = 1;
if (temp_int < 3)temp_int++;
}
if (seq_temp_select_menu == NUM_SEQ_TRACKS + 1 && temp_int == 3)
seq_temp_select_menu = NUM_SEQ_TRACKS;
}
else if (LCDML.BT_checkUp())
{
seq_temp_select_menu = constrain(seq_temp_select_menu - 1, 0, NUM_SEQ_TRACKS + 1);
if (seq_temp_select_menu == 0 && temp_int > 0) //prev chain step
{
lcd.setCursor( 2 , 1);
lcd.print(" ");
lcd.setCursor( 6 , 1);
lcd.print(" ");
seq_temp_select_menu = NUM_SEQ_TRACKS - 1 ;
if (temp_int >= 0)temp_int = temp_int - 1;
lcd.setCursor( 10 , 1);
lcd.print("[");
lcd.setCursor( 14 , 1);
lcd.print("]");
}
else if (seq_temp_select_menu < 1 && temp_int == 0 )
seq_temp_select_menu = 1;
}
}
}
if (LCDML.BT_checkEnter()) //handle button presses during menu >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
{
if (seq_patternchain[temp_int][seq_temp_select_menu - 1] < NUM_SEQ_PATTERN)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = seq_patternchain[temp_int][seq_temp_select_menu - 1] + (NUM_SEQ_PATTERN + 10);
else if (seq_patternchain[temp_int][seq_temp_select_menu - 1] > NUM_SEQ_PATTERN && seq_patternchain[temp_int][seq_temp_select_menu - 1] != 99)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = seq_patternchain[temp_int][seq_temp_select_menu - 1] - (NUM_SEQ_PATTERN + 10);
else if (seq_patternchain[temp_int][seq_temp_select_menu - 1] == 99)
seq_patternchain[temp_int][seq_temp_select_menu - 1] = NUM_SEQ_PATTERN - 1;
}
if (seq_temp_select_menu - 1 < 3)xscroll = 0;
else xscroll = seq_temp_select_menu - 3;
if (xscroll == 0)
{
//print cursor
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 2, 1);
lcd.print("[");
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 6, 1);
lcd.print("]");
if ((seq_temp_select_menu - 1) > 0)
{
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 2 - 4 , 1);
lcd.print(" ");
}
if ((seq_temp_select_menu - 1) < 4)
{
lcd.setCursor( (seq_temp_select_menu - 1) * 4 + 6 + 4 , 1);
lcd.print(" ");
}
lcd.setCursor( 3, 0);
lcd.print("T1");
lcd.setCursor( 7, 0);
lcd.print("T2");
lcd.setCursor( 11, 0);
lcd.print("T3");
}
else
{
lcd.setCursor( 3, 0);
lcd.print("T");
lcd.print(seq_temp_select_menu - 2);
lcd.setCursor( 7, 0);
lcd.print("T");
lcd.print(seq_temp_select_menu - 2 + 1);
lcd.setCursor( 11, 0);
lcd.print("T");
lcd.print(seq_temp_select_menu - 2 + 2);
}
for (uint8_t x = 0; x < NUM_SEQ_TRACKS - 3; x++)
{
lcd.setCursor( x * 4 + 3, 1);
if (seq_patternchain[temp_int][x + xscroll] < NUM_SEQ_PATTERN )
{
if (seq_track_type[x + xscroll] == 0 ) lcd.print("D");
else if (seq_track_type[x + xscroll ] == 1 ) lcd.print("I");
else if (seq_track_type[x + xscroll ] == 2 ) lcd.print("C");
else lcd.print("A");
if (seq_patternchain[temp_int][x + xscroll] < 10)
lcd.print("0");
lcd.print( seq_patternchain[temp_int][x + xscroll] );
}
else
lcd.print("OFF");
}
lcd.setCursor( 0, 1);
lcd.print("S");
lcd.print(temp_int + 1); // Chain Step
}
if (LCDML.FUNC_close()) // ****** STABLE END *********
{
encoderDir[ENC_R].reset();
}
}
#endif
void UI_func_seq_track_setup(uint8_t param) void UI_func_seq_track_setup(uint8_t param)
{ {
if (LCDML.FUNC_setup()) // ****** SETUP ********* if (LCDML.FUNC_setup()) // ****** SETUP *********

@ -131,25 +131,26 @@ 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); LCDML_add(98, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor);
LCDML_add(99, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); LCDML_add(99, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(100, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio); LCDML_add(100, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio);
LCDML_add(101, LCDML_0_5, 5, "Seq. Settings", NULL); LCDML_add(101, LCDML_0_5, 5, "Mute Matrix", UI_func_seq_mute_matrix);
LCDML_add(102, LCDML_0_5_5, 1, "Tempo", UI_func_seq_tempo); LCDML_add(102, LCDML_0_5, 6, "Seq. Settings", NULL);
LCDML_add(103, LCDML_0_5_5, 2, "Seq. Length", UI_func_seq_lenght); LCDML_add(103, LCDML_0_5_6, 1, "Tempo", UI_func_seq_tempo);
LCDML_add(104, LCDML_0_5_5, 3, "Track Setup", UI_func_seq_track_setup); LCDML_add(104, LCDML_0_5_6, 2, "Seq. Length", UI_func_seq_lenght);
LCDML_add(105, LCDML_0_5_5, 4, "Seq.Disp.Style", UI_func_seq_display_style); LCDML_add(105, LCDML_0_5_6, 3, "Track Setup", UI_func_seq_track_setup);
LCDML_add(106, LCDML_0_5_5, 5, "dexed assign", UI_func_dexed_assign); LCDML_add(106, LCDML_0_5_6, 4, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(107, LCDML_0_5_5, 6, "shift&transp.", UI_func_arp_shift); LCDML_add(107, LCDML_0_5_6, 5, "dexed assign", UI_func_dexed_assign);
LCDML_add(108, LCDML_0_5_5, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct); LCDML_add(108, LCDML_0_5_6, 6, "shift&transp.", UI_func_arp_shift);
LCDML_add(109, LCDML_0_5_5, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount); LCDML_add(109, LCDML_0_5_6, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(110, LCDML_0_5_5, 9, "Smart Filter", UI_func_smart_filter); LCDML_add(110, LCDML_0_5_6, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount);
LCDML_add(111, LCDML_0_5_5, 10, "Name Sequence", UI_func_set_sequence_name); LCDML_add(111, LCDML_0_5_6, 9, "Smart Filter", UI_func_smart_filter);
LCDML_add(112, LCDML_0_5, 6, "LOAD Seq.Data", UI_func_seq_state_load); LCDML_add(112, LCDML_0_5_6, 10, "Name Sequence", UI_func_set_sequence_name);
LCDML_add(113, LCDML_0_5, 7, "SAVE Seq.Data", UI_func_seq_state_save); LCDML_add(113, LCDML_0_5, 7, "LOAD Seq.Data", UI_func_seq_state_load);
LCDML_add(114, LCDML_0, 6, "System", NULL); LCDML_add(114, LCDML_0_5, 8, "SAVE Seq.Data", UI_func_seq_state_save);
LCDML_add(115, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); LCDML_add(115, LCDML_0, 6, "System", NULL);
LCDML_add(116, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); LCDML_add(116, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(117, LCDML_0_6, 3, "Favorites", UI_func_favorites); LCDML_add(117, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(118, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); LCDML_add(118, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(119, LCDML_0, 7, "Info", UI_func_information); LCDML_add(119, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_addAdvanced(120, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); LCDML_add(120, LCDML_0, 7, "Info", UI_func_information);
#define _LCDML_DISP_cnt 120 LCDML_addAdvanced(121, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 121
#endif #endif

@ -91,27 +91,28 @@ LCDML_add(57, LCDML_0_4, 2, "Drum Volumes", UI_func_drum_volume);
LCDML_add(58, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan); LCDML_add(58, LCDML_0_4, 3, "Drum Pan", UI_func_drum_pan);
LCDML_add(59, LCDML_0_4, 4, "MIDI Channel", UI_func_drum_midi_channel); LCDML_add(59, LCDML_0_4, 4, "MIDI Channel", UI_func_drum_midi_channel);
LCDML_add(60, LCDML_0, 5, "Sequencer", NULL); LCDML_add(60, LCDML_0, 5, "Sequencer", NULL);
LCDML_add(61, LCDML_0_5, 1, "Sequencer", UI_func_sequencer); LCDML_add(61, LCDML_0_5, 1, "Pattern Editor", UI_func_seq_pattern_editor);
LCDML_add(62, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor); LCDML_add(62, LCDML_0_5, 2, "Vel./Chrd Edit", UI_func_seq_vel_editor);
LCDML_add(63, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain); LCDML_add(63, LCDML_0_5, 3, "Pattern Chain", UI_func_seq_pat_chain);
LCDML_add(64, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio); LCDML_add(64, LCDML_0_5, 4, "Arpeggio", UI_func_arpeggio);
LCDML_add(65, LCDML_0_5, 5, "Seq. Settings", NULL); LCDML_add(65, LCDML_0_5, 5, "Mute Matrix", UI_func_seq_mute_matrix);
LCDML_add(66, LCDML_0_5_5, 1, "Tempo", UI_func_seq_tempo); LCDML_add(66, LCDML_0_5, 6, "Seq. Settings", NULL);
LCDML_add(67, LCDML_0_5_5, 2, "Seq. Length", UI_func_seq_lenght); LCDML_add(67, LCDML_0_5_6, 1, "Tempo", UI_func_seq_tempo);
LCDML_add(68, LCDML_0_5_5, 3, "Track Setup", UI_func_seq_track_setup); LCDML_add(68, LCDML_0_5_6, 2, "Seq. Length", UI_func_seq_lenght);
LCDML_add(69, LCDML_0_5_5, 4, "Seq.Disp.Style", UI_func_seq_display_style); LCDML_add(69, LCDML_0_5_6, 3, "Track Setup", UI_func_seq_track_setup);
LCDML_add(70, LCDML_0_5_5, 5, "dexed assign", UI_func_dexed_assign); LCDML_add(70, LCDML_0_5_6, 4, "Seq.Disp.Style", UI_func_seq_display_style);
LCDML_add(71, LCDML_0_5_5, 6, "shift&transp.", UI_func_arp_shift); LCDML_add(71, LCDML_0_5_6, 5, "dexed assign", UI_func_dexed_assign);
LCDML_add(72, LCDML_0_5_5, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct); LCDML_add(72, LCDML_0_5_6, 6, "shift&transp.", UI_func_arp_shift);
LCDML_add(73, LCDML_0_5_5, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount); LCDML_add(73, LCDML_0_5_6, 7, "L.Transp.Key", UI_func_seq_live_transpose_oct);
LCDML_add(74, LCDML_0_5, 6, "LOAD Seq.Data", UI_func_seq_state_load); LCDML_add(74, LCDML_0_5_6, 8, "ChordTrack Keys", UI_func_seq_chord_keys_ammount);
LCDML_add(75, LCDML_0_5, 7, "SAVE Seq.Data", UI_func_seq_state_save); LCDML_add(75, LCDML_0_5, 7, "LOAD Seq.Data", UI_func_seq_state_load);
LCDML_add(76, LCDML_0, 6, "System", NULL); LCDML_add(76, LCDML_0_5, 8, "SAVE Seq.Data", UI_func_seq_state_save);
LCDML_add(77, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono); LCDML_add(77, LCDML_0, 6, "System", NULL);
LCDML_add(78, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru); LCDML_add(78, LCDML_0_6, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(79, LCDML_0_6, 3, "Favorites", UI_func_favorites); LCDML_add(79, LCDML_0_6, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(80, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset); LCDML_add(80, LCDML_0_6, 3, "Favorites", UI_func_favorites);
LCDML_add(81, LCDML_0, 7, "Info", UI_func_information); LCDML_add(81, LCDML_0_6, 4, "EEPROM Reset", UI_func_eeprom_reset);
LCDML_addAdvanced(82, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default); LCDML_add(82, LCDML_0, 7, "Info", UI_func_information);
#define _LCDML_DISP_cnt 82 LCDML_addAdvanced(83, LCDML_0, 8, COND_hide, "Volume", UI_func_volume, 0, _LCDML_TYPE_default);
#define _LCDML_DISP_cnt 83
#endif #endif

@ -119,10 +119,12 @@
#define DRUM_MIDI_CHANNEL 10 #define DRUM_MIDI_CHANNEL 10
// NUMBER OF SAMPLES IN DRUMSET // NUMBER OF SAMPLES IN DRUMSET
#ifdef TEENSY4 #if defined(ARDUINO_TEENSY41)
#define NUM_DRUMSET_CONFIG 71 #define NUM_DRUMSET_CONFIG 71
#elif defined(TEENSY4)
#define NUM_DRUMSET_CONFIG 47
#else #else
#define NUM_DRUMSET_CONFIG 43 #define NUM_DRUMSET_CONFIG 22
#endif #endif
// SEQUENCER // SEQUENCER

14732
drumset.h

File diff suppressed because it is too large Load Diff

@ -39,7 +39,7 @@ void sequencer_part1(void)
for (uint8_t d = 0; d < NUM_SEQ_TRACKS; d++) for (uint8_t d = 0; d < NUM_SEQ_TRACKS; d++)
{ {
if (seq_patternchain[seq_chain_active_step][d] != 99 ) // sequence not empty if (seq_patternchain[seq_chain_active_step][d] < NUM_SEQ_PATTERN ) // sequence not empty or muted
{ {
if ( seq_track_type[d] == 0) if ( seq_track_type[d] == 0)
{ // drum track (drum samples and pitched one-shot samples) { // drum track (drum samples and pitched one-shot samples)

Loading…
Cancel
Save