diff options
author | Bad Diode <bd@badd10de.dev> | 2024-02-02 10:27:36 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-02-02 10:27:36 +0100 |
commit | c2f1900a5118c8772584d4391c4a7cb84a834894 (patch) | |
tree | ed97afb056465d9d85198e0eafa9ce5a6cebe723 /src | |
parent | 74b874af0ea646ef6915f15114ed3065b5b88a20 (diff) | |
download | stepper-c2f1900a5118c8772584d4391c4a7cb84a834894.tar.gz stepper-c2f1900a5118c8772584d4391c4a7cb84a834894.zip |
Fix behaviour of CH3 decay on change
Diffstat (limited to 'src')
-rw-r--r-- | src/drawing.c | 12 | ||||
-rw-r--r-- | src/renderer_m0.c | 10 | ||||
-rw-r--r-- | src/sequencer.c | 18 |
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; |