Hi, I’m trying to get the timing of a series of stimuli in order to check the precision of my experiment. I’m wondering if this approach is reasonable:
from psychopy import core, visual win = visual.Window(fullscr=True, color='black', allowGUI=False) stim = visual.TextStim(win, text="Stimulus") mask = visual.TextStim(win, text="Mask") stim_clock = core.Clock() stim_dur = 0 def get_time(): global stim_dur stim_dur = stim_clock.getTime() win.callOnFlip(stim_clock.reset) for frame in range(3): stim.draw() win.flip() win.callOnFlip(get_time) for frame in range(5): mask.draw() win.flip()
In this way, I should be able to get the correct timing right? The results seem ok (I’ve done it 1000 times and then averaged the result). My main doubt is that I’ve seen a lot of coding examples like this:
# setup screen and stimuli clock = core.Clock() win.callOnFlip(stim_clock.reset) for frame in range(3) stim.draw() win.flip() win.flip() # this is not compatible with my approach stim_dur = stim_clock.getTime()
But I need the second stimulus immediately after (no blanks), so my only idea was to use
win.callOnFlip() also for getting the time given that it always return
What do you think?