Dear Tim
The best way to actually measure if you are actually losing frames is a photodiode.
As for where your singular frame might be going try these posts? Need help choosing frames or timed duration for my visual stimulus - #3 by wakecarter
Your lost frame might be in the buffer frame at trial start
# reset timers
t = 0
_timeToFirstFrame = win.getFutureFlipTime(clock="now")
frameN = -1
# --- Run Routine "trial" ---
trial.forceEnded = routineForceEnded = not continueRoutine
while continueRoutine and routineTimer.getTime() < 1.0:
# get current time
t = routineTimer.getTime()
tThisFlip = win.getFutureFlipTime(clock=routineTimer)
tThisFlipGlobal = win.getFutureFlipTime(clock=None)
frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
# update/draw components on each frame
# *image* updates
# if image is starting this frame...
if image.status == NOT_STARTED and tThisFlip >= 0.0-frameTolerance:
# keep track of start time/frame for later
image.frameNStart = frameN # exact frame index
image.tStart = t # local t and not account for scr refresh
image.tStartRefresh = tThisFlipGlobal # on global time
win.timeOnFlip(image, 'tStartRefresh') # time at next scr refresh
# add timestamp to datafile
thisExp.timestampOnFlip(win, 'image.started')
# update status
image.status = STARTED
image.setAutoDraw(True)
# if image is active this frame...
if image.status == STARTED:
# update params
pass
# if image is stopping this frame...
if image.status == STARTED:
# is it time to stop? (based on global clock, using actual start)
if tThisFlipGlobal > image.tStartRefresh + 1.0-frameTolerance:
# keep track of stop time/frame for later
image.tStop = t # not accounting for scr refresh
image.tStopRefresh = tThisFlipGlobal # on global time
image.frameNStop = frameN # exact frame index
# add timestamp to datafile
thisExp.timestampOnFlip(win, 'image.stopped')
# update status
image.status = FINISHED
image.setAutoDraw(False)
I may be incorrect here but the
frameN = frameN + 1
is creating a buffer frame on frame 0, then starts drawing objects on frame 1. Hence a “lost” frame.
Issac