aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2024-02-02 10:27:36 +0100
committerBad Diode <bd@badd10de.dev>2024-02-02 10:27:36 +0100
commitc2f1900a5118c8772584d4391c4a7cb84a834894 (patch)
treeed97afb056465d9d85198e0eafa9ce5a6cebe723
parent74b874af0ea646ef6915f15114ed3065b5b88a20 (diff)
downloadstepper-c2f1900a5118c8772584d4391c4a7cb84a834894.tar.gz
stepper-c2f1900a5118c8772584d4391c4a7cb84a834894.zip
Fix behaviour of CH3 decay on change
-rw-r--r--src/drawing.c12
-rw-r--r--src/renderer_m0.c10
-rw-r--r--src/sequencer.c18
3 files changed, 36 insertions, 4 deletions
diff --git a/src/drawing.c b/src/drawing.c
index fa20467..16a914a 100644
--- a/src/drawing.c
+++ b/src/drawing.c
@@ -2004,10 +2004,18 @@ draw_notif_bar() {
2004 } 2004 }
2005 } break; 2005 } break;
2006 case 7: { 2006 case 7: {
2007 txt_drawf_small("ATTACK: %d", x0 + 2, y0 + 1, color, params->wave_attack); 2007 if (params->wave_attack) {
2008 txt_drawf_small("ATTACK: %d", x0 + 2, y0 + 1, color, params->wave_attack);
2009 } else {
2010 txt_draws_small("ATTACK: OFF", x0 + 2, y0 + 1, color, params->wave_decay);
2011 }
2008 } break; 2012 } break;
2009 case 8: { 2013 case 8: {
2010 txt_drawf_small("DECAY: %d", x0 + 2, y0 + 1, color, params->wave_decay); 2014 if (params->wave_decay) {
2015 txt_drawf_small("DECAY: %d", x0 + 2, y0 + 1, color, params->wave_decay);
2016 } else {
2017 txt_draws_small("DECAY: OFF", x0 + 2, y0 + 1, color, params->wave_decay);
2018 }
2011 } break; 2019 } break;
2012 case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break; 2020 case 9: { draw_notif_param_edit_pan(params->pan, x0, y0, color); } break;
2013 } 2021 }
diff --git a/src/renderer_m0.c b/src/renderer_m0.c
index 064cc0e..d8d0adb 100644
--- a/src/renderer_m0.c
+++ b/src/renderer_m0.c
@@ -780,6 +780,16 @@ txt_drawc_small(char c, size_t x, size_t y, u8 clr) {
780 draw_icn(x, y, tile + 8 * c, clr, 1, 0); 780 draw_icn(x, y, tile + 8 * c, clr, 1, 0);
781} 781}
782 782
783#define txt_draws_small(msg, x, y, clr, ...) \
784 { \
785 u8 tmp = text_engine.spacing;\
786 txt_spacing(4);\
787 text_engine.drawc = txt_drawc_small;\
788 txt_draws(msg, x, y, clr); \
789 txt_spacing(tmp);\
790 text_engine.drawc = txt_drawc;\
791 }
792
783#define txt_drawf_small(msg, x, y, clr, ...) \ 793#define txt_drawf_small(msg, x, y, clr, ...) \
784 { \ 794 { \
785 char buf[256] = {0}; \ 795 char buf[256] = {0}; \
diff --git a/src/sequencer.c b/src/sequencer.c
index 7275fbe..a3b72a8 100644
--- a/src/sequencer.c
+++ b/src/sequencer.c
@@ -315,7 +315,7 @@ play_step(void) {
315 case SYNC_OUT_AUDIO_2BPQ: 315 case SYNC_OUT_AUDIO_2BPQ:
316 case SYNC_OUT_LINK_AUDIO_12BPQ: 316 case SYNC_OUT_LINK_AUDIO_12BPQ:
317 case SYNC_OUT_LINK_AUDIO_6BPQ: 317 case SYNC_OUT_LINK_AUDIO_6BPQ:
318 case SYNC_OUT_LINK_AUDIO_4BPQ: 318 case SYNC_OUT_LINK_AUDIO_4BPQ:
319 case SYNC_OUT_LINK_AUDIO_2BPQ: break; 319 case SYNC_OUT_LINK_AUDIO_2BPQ: break;
320 default: { 320 default: {
321 SOUND_DMG_MASTER = dmg_stereo_vol(3) 321 SOUND_DMG_MASTER = dmg_stereo_vol(3)
@@ -1381,7 +1381,21 @@ set_param_selection_wave(ChannelWaveParams *params, InputHandler return_handler)
1381 case 5: { params->wave_mode = CLAMP(params->wave_mode + inc, 0, 2); } break; 1381 case 5: { params->wave_mode = CLAMP(params->wave_mode + inc, 0, 2); } break;
1382 case 6: { params->wave_volume = CLAMP(params->wave_volume + inc, 0, 4); } break; 1382 case 6: { params->wave_volume = CLAMP(params->wave_volume + inc, 0, 4); } break;
1383 case 7: { params->wave_attack = CLAMP(params->wave_attack + inc, 0, 16); } break; 1383 case 7: { params->wave_attack = CLAMP(params->wave_attack + inc, 0, 16); } break;
1384 case 8: { params->wave_decay = CLAMP(params->wave_decay + inc, 0, 16); } break; 1384 case 8: {
1385 if (params->wave_decay == 16) {
1386 if (inc > 0) {
1387 params->wave_decay = 0;
1388 } else {
1389 params->wave_decay--;
1390 }
1391 } else if (params->wave_decay == 0) {
1392 if (inc < 0) {
1393 params->wave_decay = 16;
1394 }
1395 } else {
1396 params->wave_decay = CLAMP(params->wave_decay + inc, 1, 16);
1397 }
1398 } break;
1385 case 9: { params->pan = CLAMP(params->pan + inc, -1, 1); } break; 1399 case 9: { params->pan = CLAMP(params->pan + inc, -1, 1); } break;
1386 } 1400 }
1387 redraw_params = true; 1401 redraw_params = true;