aboutsummaryrefslogtreecommitdiffstats
path: root/src/drawing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drawing.c')
-rw-r--r--src/drawing.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/drawing.c b/src/drawing.c
index 253a961..3922e09 100644
--- a/src/drawing.c
+++ b/src/drawing.c
@@ -1277,7 +1277,10 @@ draw_piano_notes(void) {
1277 if (input_handler == handle_channel_selection) { 1277 if (input_handler == handle_channel_selection) {
1278 // Show note on current channel only. 1278 // Show note on current channel only.
1279 Pattern *pat = &patterns[current_pattern]; 1279 Pattern *pat = &patterns[current_pattern];
1280 u8 step = (step_counter - 1) % 16; 1280 if (pat->empty || play_status == 0) {
1281 return;
1282 }
1283 u8 step = step_counter % 16;
1281 switch (channel_selection_loc) { 1284 switch (channel_selection_loc) {
1282 case 0: { 1285 case 0: {
1283 if (pat->ch1.active && pat->ch1.notes[step].active) { 1286 if (pat->ch1.active && pat->ch1.notes[step].active) {
@@ -1295,7 +1298,6 @@ draw_piano_notes(void) {
1295 } 1298 }
1296 } break; 1299 } break;
1297 } 1300 }
1298
1299 } else if (input_handler == handle_trigger_selection || 1301 } else if (input_handler == handle_trigger_selection ||
1300 input_handler == handle_param_selection_sq1 || 1302 input_handler == handle_param_selection_sq1 ||
1301 input_handler == handle_param_selection_sq2 || 1303 input_handler == handle_param_selection_sq2 ||
@@ -1303,12 +1305,17 @@ draw_piano_notes(void) {
1303 input_handler == handle_param_selection_noise) { 1305 input_handler == handle_param_selection_noise) {
1304 // Show currently selected trigger note. 1306 // Show currently selected trigger note.
1305 TriggerNote *trig = get_current_trig(); 1307 TriggerNote *trig = get_current_trig();
1306 draw_note(trig->note, COL_OFF); 1308 if (trig->active && !patterns[pattern_selection_loc].empty) {
1309 draw_note(trig->note, COL_OFF);
1310 }
1307 } else { 1311 } else {
1308 // Show last/current played notes in all channels. 1312 // Show last/current played notes in all channels.
1309 if (play_status == 1) { 1313 if (play_status == 1) {
1310 Pattern *pat = &patterns[current_pattern]; 1314 Pattern *pat = &patterns[current_pattern];
1311 u8 step = (step_counter - 1) % 16; 1315 if (pat->empty || play_status == 0) {
1316 return;
1317 }
1318 u8 step = step_counter % 16;
1312 if (pat->ch3.active && pat->ch3.notes[step].active) { 1319 if (pat->ch3.active && pat->ch3.notes[step].active) {
1313 draw_note(pat->ch3.notes[step].note, COL_OFF); 1320 draw_note(pat->ch3.notes[step].note, COL_OFF);
1314 } 1321 }
@@ -1433,6 +1440,9 @@ draw_notif_bar() {
1433 } else { 1440 } else {
1434 params = &ch1_params; 1441 params = &ch1_params;
1435 } 1442 }
1443 if (input_handler == handle_param_selection_ch1) {
1444 txt_drawf_small("(ALL)", x0 + NOTIF_W - 7 * 3 - 3, y0 + 1, color);
1445 }
1436 switch (param_selection_loc) { 1446 switch (param_selection_loc) {
1437 case 0: { 1447 case 0: {
1438 txt_drawf_small("SHAPE: ", x0 + 2, y0 + 1, color); 1448 txt_drawf_small("SHAPE: ", x0 + 2, y0 + 1, color);