From bb4af22481a27d9324f5377b7024e3592d4227ff Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 8 Aug 2023 18:50:46 +0200 Subject: Update main UI with new 1.7 design --- src/main.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index eb16687..76a54b6 100644 --- a/src/main.c +++ b/src/main.c @@ -14,11 +14,6 @@ WITH REGARD TO THIS SOFTWARE. // UI tweaks. // - Add custom user themes // - Animations for cursor movement/current step highlight. (A fade out maybe?) -// - Improve "grey" cursor with dithering instead. -// - Remove thin cursor option and make the fat one default, it's just better. -// - Settings page overhaul. -// - Make sure there is an ALL notification when modifying channel params so -// that it's clear it's affecting all triggers. // // Quality of life improvements. // - When not on play mode, adjusting a note or a parameter triggers the sound. @@ -27,7 +22,6 @@ WITH REGARD TO THIS SOFTWARE. // - Undo/Redo. // // Advanced -// - Scale mode for entering notes. // - Add tap tempo for BPM. // - Allow "marking" several trigs to be able to copy/paste them and/or adjust // their parameters. @@ -37,19 +31,30 @@ WITH REGARD TO THIS SOFTWARE. // - Per trig LFO? How would we go about this? There is at least one empty slot // in all channels. LFO amount? LFO speed? Would need a dedicated page for // configuring LFOs -// - Multiple pattern chains per bank that we can toggle between, gotta study -// if they fit in the SRAM. -// - Make sure bank switching is queued like patterns. -// - Add settings for "performance mode" in which banks are not saved by -// default while changing patterns. -// - Make sure sync works with the same cable for in/out. // - Per-channel N steps to create polymeters? -// - Higher resolution clock to allow for microtiming and more accurate tempo. // - Study how to better embed data into the cart that doesn't involve the // build system to generate .c files. Just use the linker to put binary data // into the ROM. +// +// WIP (1.7) +// - Scale mode for entering notes. // - Improve SRAM saving to make room for longer patterns and/or more banks. // - Add CLEAR ALL to the settings menu. +// - Higher resolution clock to allow for microtiming and more accurate tempo. +// - Multiple pattern chains per bank that we can toggle between, gotta study +// if they fit in the SRAM. +// - Make sure bank switching is queued like patterns. +// - Add settings for "performance mode" in which banks are not saved by +// default while changing patterns. +// - Make sure sync works with the same cable for in/out. +// - Improve "grey" cursor with dithering instead. +// - Remove thin cursor option and make the fat one default, it's just better. +// - Settings page overhaul. +// - Make sure there is an ALL notification when modifying channel params so +// that it's clear it's affecting all triggers. +// - Blank patterns could show up as empty on the pattern view for better +// separation and section organization. +// - Study more improvements for a "performance mode". // #include "gba/gba.h" @@ -65,7 +70,6 @@ WITH REGARD TO THIS SOFTWARE. void render_sequencer(void) { - PROF(draw_rect(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1), clear_cycles); if (redraw_trigs) { PROF(draw_triggers(), draw_trigs_cycles); redraw_trigs = false; @@ -89,6 +93,9 @@ render_sequencer(void) { if (redraw_play_pause) { PROF(draw_play(), draw_btn_cycles); PROF(draw_stop(), draw_btn_cycles); + // TODO: Move to separate if condition + PROF(draw_settings(), draw_btn_cycles); + PROF(draw_scale(), draw_btn_cycles); redraw_play_pause = false; } if (redraw_piano_note) { @@ -112,7 +119,6 @@ render_sequencer(void) { void render_settings(void) { - PROF(draw_rect(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1), clear_cycles); txt_drawf_small("settings", 11, 5, COL_FG) txt_printf("\n\n\n"); txt_printf(" SYNC: %s\n\n", sync_setting_str[settings.sync]); @@ -139,7 +145,7 @@ render(void) { } break; } // DEBUG: Ensuring the saved data don't exceed SRAM size (32k). - // txt_drawf("SIZE: %lu", 0, 0, COL_ACC_1, sizeof(Metadata) + sizeof(patterns) * 4 + sizeof(chain) * 4); + txt_drawf("SIZE: %lu", 0, 0, COL_ACC_1, sizeof(Metadata) + sizeof(patterns) * 6 + sizeof(chain) * 6); } void -- cgit v1.2.1