From 77374dacdee448b9dea733c0e444da07942b3238 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 16 Jan 2024 09:31:31 +0100 Subject: [WIP] Refactor ch3 envelope --- src/globals.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'src/globals.c') diff --git a/src/globals.c b/src/globals.c index 5063d69..c040585 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,15 +1,3 @@ -enum WAVES { - WAVE_SIN, - WAVE_SAW, - WAVE_SQUARE, - WAVE_MAX, -}; - -#define WAVE_SIZE 4 -#define WAVE_VARS 4 - -typedef u32 Wave[WAVE_SIZE]; - // // Globals. // @@ -221,9 +209,30 @@ bool redraw_scale = true; bool update_bpm = false; u8 bar_counter = 0; -static Wave wave_active = {0}; -// static Wave wave_target = {0}; -// TODO: wave env status: OFF, ATTACK, DECAY +typedef enum WaveEnv { + WAV_ENV_START, + WAV_ENV_ATTACK, + WAV_ENV_DECAY, + WAV_ENV_END, + WAV_ENV_OFF, +} WaveEnv; + +enum WAVES { + WAVE_SIN, + WAVE_SAW, + WAVE_SQUARE, + WAVE_MAX, +}; + +#define WAVE_SIZE 4 +#define WAVE_VARS 4 + +typedef u32 Wave[WAVE_SIZE]; + +static WaveEnv wave_env = WAV_ENV_OFF; +static const Wave *wave_target; +static u32 wave_freq; static int wave_env_ticks = 0; static int wave_env_attack = 8; static int wave_env_decay = 8; +static int wave_env_prog = 0; -- cgit v1.2.1