I am about to launch my first experiment and I have been thinking about how to deal with the fact that non 60Hz monitors are becoming more and more common these days. My stimuli currently vary (randomly) between 200-800ms, and I was originally going to just round them to the nearest 50/3s (one frame on a 60Hz monitor), but this wouldn’t be precise on 144Hz (or 75Hz) monitors.
In the table above you can see the nearest number of frames needed to display stimuli that increment by 50ms on 60Hz, 75Hz and 144Hz monitors. As you can see, for 60Hz monitors the durations are precise, for 75Hz they can be as much as 6.67ms off and for 144Hz they can be as much as 4.17ms off. Using 50ms increments seems like a fair compromise for me to be able to run the experiment on any monitor, as stimulus presentation durations should then differ by no more than 6.67ms between monitors (and most users will likely still be using 60Hz monitors on which the stimuli will be precisely displayed).
This assumes, however, that Pavlovia takes the stimulus duration in milliseconds and converts it to the closest number of frames (e.g. a 150ms stimulus converted to 11 frames on a 75Hz monitor, rounded up from 146.67). Does Pavlovia round frames in this way? Does it always round to the nearest frame? Always round down? Always up?
How it behaves would determine how I set the durations of my stimuli.
Thanks for reading, hope someone here can help!