fps-based timing