Can't change resolution on 2nd monitor or make Psychopy read scaling info from Windows

Hi everyone,

I’m running an experiment in a laptop + 2nd monitor set-up and I need the stimuli to be shown at specific distances in cm on the 2nd monitor.

I’ve played with the different resolutions of the second monitor and found out that either the native resolution (1920 x1080) with a 150% scaling or a smaller resolution (1280 x 720) should do the trick. However, when I try to run the experiment on a Win 10 Dell laptop + ASUS MB169C+ (connected to the laptop via USB C), it reports the following error:

WARNING User requested fullscreen with size [1280, 720], but screen is actually [1920, 1080]. Using actual size.

This would be fine if Psychopy could take the information about the scaling from Windows (i.e. having a 1920 x 1080 resolution with a 150% scaling would solve the issue) - but it seems like it doesn’t do it.

Hence, I’d need either to force PsychoPy to show a different resolution that the one it’s registering from the 2nd monitor or find a way to insert the scaling alongside the native resolution.

At this point I would appreciate any solution - even if it involves switching to the Coder.

Thanks a lot for your help!

Sonia

Recap of info:
Laptop OS (e.g. Win10): Win 10
2nd monitor: ASUS MB169C+
PsychoPy version (e.g. 1.84.x): 1.85.4
Standard Standalone? (y/n) Y

Hi Sonia, I’m a bit confused about this, maybe because I’m not a Windows user, but why would you want PsychoPy to use anything other than the native resolution of the display? You can get stimuli to appear at a given size in cm as long as the appropriate information for the display (physical size, pixel dimensions, and distance) are entered in the Monitor Centre.

Perhaps you could give us a specific example of what is going wrong for us to help with? This scaling sounds like just an OS setting for presenting interface elements at consistent sizes across different displays and is likely not really relevant at all to PsychoPy.

Hi Michael,

Apologies about the confusion and thanks a lot for getting back to me.

I have an issue (which is that the distance between stimuli and their size is not the one I’d need) that could be solved in potentially 2 ways - as far as my trial and error goes.

First way - changing the resolution:
When I input the information about the wanted resolution (including width) of the monitor in the monitor centre, I get the warning I mentioned above (I.e. psychopy tells me it’s using the actual resolution and overriding the information I entered). Psychopy uses the 1920x1080 regardless of what I input in the monitor centre. This resolution makes distances smaller than they’re supposed to be (~50% smaller).

Second way - scaling with the original resolution:
Given the fail with the solution above, I tried scaling the size of stimuli presented via Windows display setting.
When I do so, I.e. when I use a resolution of 1920 x 1080 with a 150% scaling and I open the online ruler (iruler.net), I get the best match between the real distances in cm.
I then open psychopy and run the experiment, but the changes in scaling I made on Windows are not registered by the program and hence the stimuli are still not presented at the right distance.

I tried looking online and it seemed like python does not take information regarding scaling from the OS but directly from the monitor.

My question is: is there either a way of avoiding Psychopy using the original resolution or to have Psychopy use the scaling information from Windows?

Thanks in advance - it’s much appreciated.

Sonia

This is where I’m getting confused. The screen resolution is what the screen resolution is. It doesn’t make sense to pretend that it is something else. So the real question is why your stimuli are not appearing at the size you need. We probably need to see the settings you are using in the Monitor Centre. If the pixel dimensions, the physical width, and the distance to the screen are all correct, then your stimuli should be the correct size.

If there are issues with this, then online rulers could also go astray. If in doubt, use an actual real-world piece of wood or plastic. EDIT: I just checked iruler.net and it is out by 18% on my display. It should not be used for anything science-related.

I don’t know what influence any Windows-Level interface scaling would have on PsychoPy but I imagine it should just be switched off.

Hi Michael,

As you said, the problem is that the monitor is not displaying stimuli as it should. The pixels are correctly input and so is the distance to the screen and its width in cm (all measured multiple times and inserted in the monitor centre under the monitor name). Also, when I run the experiment with my laptop (win 7) and any other another HDMI or VGA connected monitor, I don’t have any issue at all - distances are correctly displayed. The issue is specific to this set-up (Asus monitor + win 10 laptop).

My solution was to change resolution or the scaling of the Win 10 laptop in order to have the distances I need - but this was just an attempt to solve it. If you have any other suggestion, I’m more than happy to go with that.

Re: Iruler - I used I ruler only to get an estimation of how distances would have been displaying by changing the resolution of the monitor, not to base the experiment. In order to find out the distances between the stimuli on the monitor I used a real ruler in the first place.

Thanks,
Sonia