Environment
OS: MacOS 15.7.4
PsychoPy version: 2025.1.1 (Standalone)
Do you want it to also run online?: no
Goal
I am running a memory encoding task where:
- Each image is shown for 3 seconds
- A variable ITI (from CSV) ranges from 1.5-4.0 seconds
- During the ITI, background images are displayed
The ITIs are hard-coded in the conditions file, and I want the actual ITI duration to match the CSV values.
Problem
The experiment consistently runs ~1 minute longer than expected.
When I inspected the log file, I computed:
- ITI duration: time from ITI background (Q1_enc_iti) onset to ITI background offset
- ITI offset: (actual ITI duration - CSV ITI value)
- Proportion offset: ITI offset / ITI duration
The offsets vary systematically across trials, and are not clean multiples of frame durations.
What I Tried
- Changed component stop condition from “duration (s)” to “time (s)”. This reduced total time by ~ 30 seconds, but the task is still longer than expected.
- Locked monitor refresh to 60 Hz.
- Examined timing in the log file.
Here is a screenshot of those calculations in the log file.
As a side note, we are also wondering why the routine (enc_iti) ended slightly earlier than the background images during the ITI (Q1_enc_iti).
Here is my PsychoPy Builder structure:
Could image loading be introducing these timing delays? Is there a recommended method to preload all images at the beginning of the experiment to minimize per-trial latency (e.g., as one does for online experiments)?
Thank you!

