Presenting Randomized Images at 100ms (Attentional Blink Task-Variation)

Hi All,

Disclaimer: I’m new to Psychopy and Coding so if more information is needed about my circumstance to gain a better understanding please let me know how I can help you help me.

About the Task:

This is a variation of an attentional blink task.

One session consists of five blocks. One block consists of 10 trials. One trial consists of 17 images each presented one after the other for 100ms/image. However, 15 of these (Background) images must be randomly selected from a set of 252 images, one of these (T1 Images) from a set of 115 images and one (T2 Images) from a set of 84 images. Furthermore, the presentation of these images has to occur pseudo-randomly such that T2 is always displayed either 2 (called Lag2) or 8 (called Lag8) images after T1. The pseudo-randomization continues in that Lag2 and Lag 8 sequences can only occur if the T1 image is in the 4th, 5th, 6th, 7th, or 8th spot of the total 17 image sequence. Ultimately this results in Psychopy needing to display both lag2 and lag8 iterations (10 iterations [trials] total), in a shuffled order. From that shuffled order, Psychopy then needs to randomly select images from their respective categories and display them according to the trials’ lag iteration.

The Problem:

I was able to get the task to work without crashing. However, I cannot get the stimuli to be presented without some frames dropping or there being a delay in their presentation. For example, some images might stall and display for 150ms and the next image will only be displayed for 50ms. Timing is crucial to this task.

What I have done:

Setting the duration (s) to stop at my routine at .1sec has produced the worst result (whole images being dropped from the presentation)

I am using a Windows Dell Laptop and I know the frame rate is 60hz. With one trial lasting 1700ms, my understanding is that one image would need to be presented for 6 frames to equal 100ms in duration. I tried to set the Basic Image Properties to Start frameN = 0 and Stop frameN =6. However, the images are still not displaying at exactly 100ms.

I would greatly appreciate any suggestions on ways to troubleshoot this problem.


I think that you have different question there.

First, if I understand well, you have trouble because your want your images being called and displayed instantly. However, images have to be loaded from you file before being displayed, which result in a delay. You should pre-load them in a ISI before being displayed (e.g. during a fixation cross) to have no delay when calling them.

Second, you’re have troubles with the drop of some frames, which is probably linked to your first problem as you’re asking a lot to your computer. I guess that pre-loading some stim may help a little, but you should try to close other consuming processing running in parallel on your computer and maybe check that the specifications of your computer are sufficient. You can also specify the specifications of your monitor in the monitor manager.

Last, you’re bothered because your stimuli are not displayed exactly for 100 ms. I have no idea of the variation of the presentation time of your stimuli, but as far as I know, psychopy - just like any other program - is not capable of displaying stimuli for an exact time, as it depends of the refresh rate.
You can have more information here :
If you are experiencing huge differences in the timing of your experiment, you should check the actual fps when running the experiment. Usually psychopy measure the frame rate before each experiment, so you should check that it is effectively around 60 fps (in the log file generated, or in the runner after launching the task).
Variations may also appear depending on the specifications of your computer, especially the graphic card. If you have a dedicated graphic card, you should use it for running your experiment; an integrated graphic card will have weaker performances. This may help with the dropping of frames too.