I programmed four online experiments for a research class. Accurate presentation times for the visual stimuli were important. I therefore used the number of frames instead of times in seconds to present the stimuli. The number of frames ultimately employed to achieve the desired presentation duration was determined based on the frame rate that PsychoPy attempted to ascertain at the start of the experiment.
This approach was successful, as only frame rates faster than 58 Hz were reported. 58 Hz was my lower boundary. When I checked the reported OS, I noticed that only Linux, Windows and MacIntel machines took part in the experiment.
It seems that my routine excluded newer Macs without Intel processors. This is a shame because I lose a lot of potential participants with my approach.
Does anyone have any ideas on how I could include newer Macs and still have accurate timing?
Iām aware of macs having introduced some form of strange screen refresh timing (my best guess is that it now has a system of āvirtualā frames like its system of virtual pixels in the retina display meaning that what you get is what MacOS thinks you probably want, rather than what you explicitly request). Weāre currently exploring how to get around this on the Python side but I havenāt tested or explored the problem on PsychoJS yet. Getting control of this through the browser could be even more difficult.
But I think itās fair to say that on MacOS timing by frames is currently not possible
I wasnāt hoping for this answer, but I was afraid I might get it. Iāll try advising Mac users to set a fixed refresh rate and restart the experiment. Unfortunately, I do not have direct access to a Mac for testing.
I wrote a short PsychoPy program that loops 20 times, trying to retrieve the frame rate on each trial. It reports the refresh rate in a text component and saves it to the data file.
This program runs with consistent frame rates on a Windows 11 PC. However, I see varying frame rates from trial to trial on a Mac mini, ranging from 55 Hz to 62.5 Hz. I had set the Mac to 60 Hz; this was, in fact, the only available setting.
I also noticed that the Mac mini is registered as a āMacIntelā. I thought that PsychoPy could differentiate between Macs with Intel processors and Macs with Apple processors.