diff --git a/tui_main.c b/tui_main.c index 84134ac..5388890 100644 --- a/tui_main.c +++ b/tui_main.c @@ -940,12 +940,12 @@ void app_input_cmd(App_state* a, App_input_cmd ev) { if (a->is_playing) { app_stop_all_sustained_notes(a); a->is_playing = false; - // nodelay(stdscr, FALSE); + a->accum_secs = 0.0; } else { a->is_playing = true; - // nodelay(stdscr, TRUE); + // dumb'n'dirty, get us close to the next step time, but not quite + a->accum_secs = 60.0 / (double)a->bpm / 4.0 - 0.02; } - a->accum_secs = 0.0; a->is_draw_dirty = true; break; case App_input_cmd_toggle_show_event_list: @@ -1256,6 +1256,9 @@ int main(int argc, char** argv) { break; case ' ': app_input_cmd(&app_state, App_input_cmd_toggle_play_pause); + // flush lap time -- quick hack to prevent time before hitting spacebar + // to play being applied as actual playback time + stm_laptime(&last_time); break; default: if (key >= '!' && key <= '~') {