diff options
Diffstat (limited to 'src/drawing.c')
-rw-r--r-- | src/drawing.c | 18 |
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); |