int initMillis = 0; boolean record = false; int frameMillis = 0; void recordTimelapse(float lagtime, float maxtime){ // checks if record state is turned off if (record == false){ initMillis = 0; return; } // records the milliseconds elapsed between program start and first frame taken if (initMillis == 0){ initMillis = millis(); } // automatically turns off recording if maxtime has elapsed if (millis()-initMillis > maxtime*1000){ record = false; return; } // takes snapshot if enough time has elapsed since last frame was taken if ((millis()-frameMillis) >= lagtime*1000){ snapshot(); frameMillis = millis(); } }