From c2f1900a5118c8772584d4391c4a7cb84a834894 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 2 Feb 2024 10:27:36 +0100 Subject: Fix behaviour of CH3 decay on change --- src/sequencer.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/sequencer.c') 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) { case SYNC_OUT_AUDIO_2BPQ: case SYNC_OUT_LINK_AUDIO_12BPQ: case SYNC_OUT_LINK_AUDIO_6BPQ: - case SYNC_OUT_LINK_AUDIO_4BPQ: + case SYNC_OUT_LINK_AUDIO_4BPQ: case SYNC_OUT_LINK_AUDIO_2BPQ: break; default: { SOUND_DMG_MASTER = dmg_stereo_vol(3) @@ -1381,7 +1381,21 @@ set_param_selection_wave(ChannelWaveParams *params, InputHandler return_handler) case 5: { params->wave_mode = CLAMP(params->wave_mode + inc, 0, 2); } break; case 6: { params->wave_volume = CLAMP(params->wave_volume + inc, 0, 4); } break; case 7: { params->wave_attack = CLAMP(params->wave_attack + inc, 0, 16); } break; - case 8: { params->wave_decay = CLAMP(params->wave_decay + inc, 0, 16); } break; + case 8: { + if (params->wave_decay == 16) { + if (inc > 0) { + params->wave_decay = 0; + } else { + params->wave_decay--; + } + } else if (params->wave_decay == 0) { + if (inc < 0) { + params->wave_decay = 16; + } + } else { + params->wave_decay = CLAMP(params->wave_decay + inc, 1, 16); + } + } break; case 9: { params->pan = CLAMP(params->pan + inc, -1, 1); } break; } redraw_params = true; -- cgit v1.2.1