Presenting stimuli frame by frame in builder

I’m trying to use the builder in order to present visual stimuli using frames as unit. I’m not really familiar with using the builder with this fast presentation time.
I would like to present an image for 3 frames (target) and immediately after another image (mask) for 6 frames. My approach was to set the start with frameN to 0 and the duration in frames to 3. Then the mask the start to 3 (because is the third frame counting from 0) and the duration for 6 frames. Like in the image below:

Is that the correct approach? because the mask.started on the csv occurs after the mask.stopped. I’m not able to understand why, seems a pretty straightforward frame counting.
Thank you!

OS : Win10
PsychoPy version: 2021.2.3
Standard Standalone?: yes

one way to check - add a code component use print('anything') in the each frame tab - does the number of prints you get in a routine correspond to the number of frames you expected it to last for?

Thank you @Becca! I’ve simplified my example in order to check it. If I set the experiment as follows:

A single routine, the stimulus last for 1 frame and I print as you suggested I obtain:
I’ve repeated the routine for a lot of trials and is still running two frames for that routine. Is it normal?


is it set to Sync timing with screen refresh?

Best wishes Jens

OK that looks good then no? in your data output what is the “target.startT” and target.stopT" saved?


If I get correctly, I should have just one printed frame given that my stimulus lasts for one frame right?

I think the reason you’re getting two frame values printed is that a Code :code: component puts its code before all the stimuli are drawn - meaning the frame loop iterates over the bit where your print statement is, but as the frame number is now 1 it doesn’t draw the stimulus - so you’re getting two prints, but only 1 frame of stimulus being drawn, as intended.