This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
biac:experimentalcontrol:biac6hardware [2024/04/15 19:49] cmp12 [BIAC6 Screen Configuration] |
biac:experimentalcontrol:biac6hardware [2024/04/16 14:21] (current) cmp12 [BIAC6 Screen Configuration] |
||
---|---|---|---|
Line 131: | Line 131: | ||
>> run SetupPsychtoolbox.m | >> run SetupPsychtoolbox.m | ||
- | >> Screen(' | + | >> |
ans = | ans = | ||
0 | 0 | ||
+ | % there is only a single screen | ||
+ | |||
+ | % you can use the first index, or min / max functions because there is only 1 option | ||
+ | >> screens(1) | ||
+ | ans = | ||
+ | 0 | ||
+ | >> min(screens) | ||
+ | ans = | ||
+ | 0 | ||
+ | >> max(screens) | ||
+ | ans = | ||
+ | 0 | ||
+ | |||
+ | |||
+ | |||
</ | </ | ||
Line 152: | Line 167: | ||
- | Any **EXTENDED** configuration will result in multiple monitors being available | + | Any **EXTENDED** configuration, or configuration with goggles |
+ | |||
PTB: | PTB: | ||
<code matlab> | <code matlab> | ||
>> run SetupPsychtoolbox.m | >> run SetupPsychtoolbox.m | ||
- | >> Screen(' | + | >> |
ans = | ans = | ||
| | ||
| | ||
%in this case | %in this case | ||
- | % 0 - the full display across the extended | + | % 0 - the full extended |
- | % 1 - screen #1 | + | % 1 - screen #1 only |
- | % 2 - screen #2 | + | % 2 - screen #2 only |
+ | % because matlab is indexed a 1, you need to select the correct index to get to screen #1 | ||
+ | >> screens(2) | ||
+ | ans = | ||
+ | 1 | ||
+ | |||
+ | |||
</ | </ | ||
Line 182: | Line 203: | ||
# screens[1] is the second screen because python is zero indexed | # screens[1] is the second screen because python is zero indexed | ||
+ | </ | ||
+ | |||
+ | You need to code your tasks to send to the specific screen you want your subjects to see. If they are viewing the projector, then they can only single a screen at a time. The default is to send the first display to the projector. | ||
+ | * screen 0 in matlab **only** if its a **cloned** display, or screen 1 if it is extended/ | ||
+ | * screen 0 in PTB | ||
+ | |||
+ | |||
+ | One of the best ways to account for a variable to setup in matlab would be to code the task to work with either. | ||
+ | |||
+ | Matlab: | ||
+ | <code matlab> | ||
+ | screens=Screen(' | ||
+ | |||
+ | %if there is only 1 entry | ||
+ | if (length(screens) == 1) | ||
+ | %use it | ||
+ | S.screenNumber = min(screens); | ||
+ | %but if there are more, use #1 explicitely | ||
+ | elseif (length(screens) > 1) | ||
+ | S.screenNumber = screens(2); | ||
+ | %same as S.screenNumber = 1; | ||
+ | end | ||
+ | |||
+ | [S.Window, S.screenRect]=Screen(' | ||
</ | </ | ||