From b7e6e742bee3d1c3b0d5f7a15fea31107da3540e Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 11 Jun 2021 18:55:34 +0200 Subject: Add parametric colors --- src/sequencer.c | 62 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 27 deletions(-) (limited to 'src/sequencer.c') diff --git a/src/sequencer.c b/src/sequencer.c index 31d5490..b5182c1 100644 --- a/src/sequencer.c +++ b/src/sequencer.c @@ -12,6 +12,14 @@ #define COL_CYAN 4 #define COL_GREY 5 +// Theme colors. +#define COL_CURSOR COL_BLUE +#define COL_NOTE_PRESSED COL_BLUE +#define COL_CURRENT_CHANNEL COL_FG +#define COL_CURRENT_TRIG COL_FG +#define COL_WAVE_A COL_RED +#define COL_WAVE_B COL_CYAN + // // Assets. // @@ -674,8 +682,8 @@ draw_parameters_ch3(void) { size_t y = PARAMS_START_Y + 2; // Wave Patterns. - draw_wave_pattern(wave_a, x, y, COL_RED); - draw_wave_pattern(wave_b, x + 70, y, COL_CYAN); + draw_wave_pattern(wave_a, x, y, COL_WAVE_A); + draw_wave_pattern(wave_b, x + 70, y, COL_WAVE_B); // Wave text. x -= 2; @@ -936,10 +944,10 @@ handle_channel_selection(void) { trig_selection_loc = 0; param_selection_loc = 0; input_handler = handle_trigger_selection; - draw_channel_cursor(channel_selection_loc, COL_GREY); - draw_trig_cursor(trig_selection_loc, COL_BLUE); + draw_channel_cursor(channel_selection_loc, COL_CURRENT_CHANNEL); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); TriggerNote *trig = get_current_trig(); - draw_note(trig->note, COL_BLUE); + draw_note(trig->note, COL_NOTE_PRESSED); draw_parameters(); } else if (key_tap(KEY_UP)) { draw_channel_cursor(channel_selection_loc, COL_BG); @@ -948,7 +956,7 @@ handle_channel_selection(void) { } else { channel_selection_loc = MAX(channel_selection_loc - 1, 0); } - draw_channel_cursor(channel_selection_loc, COL_BLUE); + draw_channel_cursor(channel_selection_loc, COL_CURSOR); draw_triggers(); } else if (key_tap(KEY_DOWN)) { draw_channel_cursor(channel_selection_loc, COL_BG); @@ -957,7 +965,7 @@ handle_channel_selection(void) { } else { channel_selection_loc = MIN(channel_selection_loc + 1, SEQ_N_CHANNELS); } - draw_channel_cursor(channel_selection_loc, COL_BLUE); + draw_channel_cursor(channel_selection_loc, COL_CURSOR); draw_triggers(); } } @@ -967,7 +975,7 @@ handle_param_selection_ch1(void) { if (key_tap(KEY_A)) { // TODO: draw param cursor. input_handler = handle_trigger_selection; - draw_trig_cursor(trig_selection_loc, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURRENT_TRIG); } // // Move through the selected synth parameters. // if (key_tap(KEY_LEFT)) { @@ -1036,7 +1044,7 @@ handle_param_selection_ch2(void) { if (key_tap(KEY_A)) { // TODO: draw param cursor. input_handler = handle_trigger_selection; - draw_trig_cursor(trig_selection_loc, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURRENT_TRIG); } // // Move through the selected synth parameters. // if (key_tap(KEY_LEFT)) { @@ -1106,7 +1114,7 @@ handle_param_selection_ch3(void) { // Go back to trigger selection. draw_params_cursor(param_selection_loc, COL_BG); input_handler = handle_trigger_selection; - draw_trig_cursor(trig_selection_loc, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); } if (key_tap(KEY_LEFT) || key_tap(KEY_RIGHT)) { int inc = 0; @@ -1132,7 +1140,7 @@ handle_param_selection_ch3(void) { } draw_params_cursor_ch3(param_selection_loc, COL_BG); param_selection_loc = CLAMP(loc + inc, 0, 73); - draw_params_cursor_ch3(param_selection_loc, COL_BLUE); + draw_params_cursor_ch3(param_selection_loc, COL_CURSOR); } if (key_tap(KEY_UP) || key_tap(KEY_DOWN)) { int inc = 0; @@ -1188,7 +1196,7 @@ handle_param_selection_ch3(void) { } draw_params_cursor_ch3(param_selection_loc, COL_BG); param_selection_loc = CLAMP(loc + inc, 0, 73); - draw_params_cursor_ch3(param_selection_loc, COL_BLUE); + draw_params_cursor_ch3(param_selection_loc, COL_CURSOR); } if (key_tap(KEY_R) || key_tap(KEY_L)) { int odd = param_selection_loc & 0x1; @@ -1267,7 +1275,7 @@ handle_param_selection_ch3(void) { *wave_volume = CLAMP(*wave_volume + inc, 0, 4); } draw_parameters(); - draw_params_cursor(param_selection_loc, COL_BLUE); + draw_params_cursor(param_selection_loc, COL_CURSOR); } } @@ -1284,7 +1292,7 @@ handle_trigger_selection(void) { if (trig->active) { draw_note(trig->note, COL_FG); trig->note = MAX(trig->note - 1, NOTE_C_2); - draw_note(trig->note, COL_BLUE); + draw_note(trig->note, COL_NOTE_PRESSED); clear_trigger(trig_selection_loc); draw_trigger(channel_selection_loc, trig_selection_loc); } @@ -1293,7 +1301,7 @@ handle_trigger_selection(void) { if (trig->active) { draw_note(trig->note, COL_FG); trig->note = MIN( trig->note + 1, NOTE_C_8 - 1); - draw_note(trig->note, COL_BLUE); + draw_note(trig->note, COL_NOTE_PRESSED); clear_trigger(trig_selection_loc); draw_trigger(channel_selection_loc, trig_selection_loc); } @@ -1306,15 +1314,15 @@ handle_trigger_selection(void) { draw_trig_cursor(trig_selection_loc, COL_BG); draw_note(trig->note, COL_FG); input_handler = handle_channel_selection; - draw_channel_cursor(channel_selection_loc, COL_BLUE); + draw_channel_cursor(channel_selection_loc, COL_CURSOR); clear_parameters(); } else { draw_trig_cursor(trig_selection_loc, COL_BG); draw_note(trig->note, COL_FG); trig_selection_loc = MAX(trig_selection_loc - 1, 0); trig = get_current_trig(); - draw_trig_cursor(trig_selection_loc, COL_BLUE); - draw_note(trig->note, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); + draw_note(trig->note, COL_NOTE_PRESSED); draw_parameters(); } } else if (key_tap(KEY_RIGHT)) { @@ -1323,8 +1331,8 @@ handle_trigger_selection(void) { draw_note(trig->note, COL_FG); trig_selection_loc = MIN(trig_selection_loc + 1, 15); trig = get_current_trig(); - draw_trig_cursor(trig_selection_loc, COL_BLUE); - draw_note(trig->note, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); + draw_note(trig->note, COL_NOTE_PRESSED); draw_parameters(); } } else if (key_tap(KEY_UP) || key_tap(KEY_DOWN)) { @@ -1332,8 +1340,8 @@ handle_trigger_selection(void) { draw_note(trig->note, COL_FG); trig_selection_loc = (trig_selection_loc + 8) % 16; trig = get_current_trig(); - draw_trig_cursor(trig_selection_loc, COL_BLUE); - draw_note(trig->note, COL_BLUE); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); + draw_note(trig->note, COL_NOTE_PRESSED); draw_parameters(); } else if (key_tap(KEY_A)) { // Switch to parameter selection. @@ -1348,8 +1356,8 @@ handle_trigger_selection(void) { input_handler = handle_param_selection_ch3; } break; } - draw_params_cursor(param_selection_loc, COL_BLUE); - draw_trig_cursor(trig_selection_loc, COL_GREY); + draw_params_cursor(param_selection_loc, COL_CURSOR); + draw_trig_cursor(trig_selection_loc, COL_CURRENT_TRIG); } } @@ -1393,13 +1401,13 @@ sequencer_init(void) { draw_channels(); draw_piano(); TriggerNote *trig = get_current_trig(); - draw_note(trig->note, COL_BLUE); + draw_note(trig->note, COL_NOTE_PRESSED); // Initialize input handler. channel_selection_loc = 2; // DEBUG: Starting on CH3 input_handler = handle_trigger_selection; - draw_trig_cursor(trig_selection_loc, 3); - draw_channel_cursor(channel_selection_loc, 5); + draw_trig_cursor(trig_selection_loc, COL_CURSOR); + draw_channel_cursor(channel_selection_loc, COL_CURRENT_CHANNEL); draw_parameters(); // Initialize sound system. -- cgit v1.2.1