Millisecond Forums

centered self-paced reading

https://forums.millisecond.com/Topic17808.aspx

By luca7 - 11/24/2015

Dear Inquisit users,
I'd like to make the "Self-Paced Reading Task" (from the task library) a centered self-paced reading task (as compared to the moving window paradigm). In other words, I'd like the current window (not masked) to be always in the center of the screen, and the previous and following windows always invisible (not masked, but completely invisible). Changing the two values in the code below from "-" to "", makes the task close to what I want, but the current window is not properly displayed in the center of the screen.

<values userparams>
[....]
/ ucmaskchar = ""
/ lcmaskchar = ""
</values>

Do you have any suggestion for making the current window properly centered in the middle of the screen?
Thank you.
Luca

By Dave - 11/24/2015

Edit the settings of

<text mywindow>
/ items = ("<%values.outputstring%>")
/ fontstyle = ("Consolas", 3.00%, true, false, false)
/ vjustify = center
/ hjustify = center

/ txcolor = (black)
/ txbgcolor = (transparent)
/ erase = false
/ size = (86%, 90%)
</text>

accordingly.
By luca7 - 11/24/2015

Thank you very much, Dave.
It works, but there is still an issue. I'm testing it using this item (capital C indicates the center of the window):
/ 1 ="|flyweCels x|oneC of|the aCldest|mechanicaC devicesx|knoCwto|"

All windows are properly centered except the first one (its center is on the left of the center of all other windows).
Do you have any idea why the first window is different? Any suggestion about how to fix it?

Thank you very much again.
Luca
By Dave - 11/24/2015

I'm not sure how I'm supposed to answer that (a) without your script (I have no idea which changes you made to it) and (b) you illustrating more clearly what you understand the center indicated by the 'C' to mean (screenshots would be helpful here).
By luca7 - 11/24/2015

Hi Dave, I'm using the script from the "Self-Paced Reading Task" (noncumulative) from the task library. These are the only changes that I made to that script:

1) replaced "-" with "" in:
<values userparams>
[....]
/ ucmaskchar = ""
/ lcmaskchar = ""
</values>

2) as you suggested, the text.mywindow is now centered:
<text mywindow>
[.....]
/ vjustify = center
/ hjustify = center
[.....]
</text>

3) (optional) to easily test whether the windows are centered, I'm using the following item. The "C" indicates the center of the window; so the "C" of the different windows should appear in the same position on the screen (center).
/ 1 ="|1xxxxCxxx x|2xxC xx|3xx xCxxxxx|4xxxxxxxxC xxxxxxxx|5xxCxxx|"

As mentioned in my previous message, all windows are centered except the first, which is a bit on the left. Below is an example: windows 2-5 have the center ("C" in my example) in the same position on the screen, but window1 is a bit on the left, that is, its center is on the left of the center of all other windows. In this illustration pretend that "|" is the boundary of the screen:

window1: |      1xxxxCxxx x          |
window2: |          2xxC xx          |
window3: |        3xx xCxxxxx        |
window4: |    4xxxxxxxxC xxxxxxxx    |
window5: |          5xxCxxx          |


See also the picture attached (screenshots of the first three windows). As you can see from the red line that I added, windows 2-3 (and the following windows) are aligned in the center; the first window is a bit on the left.
https://www.millisecond.com/forums/uploads/images/2d2e68ca-1444-4d38-b7fd-d830.jpg

I hope, I explained it more clearly.
Please let me know if you would like me to attach the task too.
Thank you,
Luca

By Dave - 11/24/2015

I made the changes you detailed to the original script. Here's a screen shot of the 1st window on my system:

https://www.millisecond.com/forums/uploads/images/f6e560a9-2f88-4697-8882-012e.jpg

I guess there is some additional, perhaps subtle change in your script that's missing.
By Dave - 11/24/2015

What I would suggest at any rate, though, is to display only values.windowstring (*not* values.outputstring), which is what you seem to want anyway:

<text mywindow>
/ items = ("<%values.windowstring%>")
/ fontstyle = ("Consolas", 3.00%, true, false, false)
/ vjustify = center
/ hjustify = center
/ txcolor = (black)
/ txbgcolor = (transparent)
/ erase = false
/ size = (86%, 90%)
</text>
By luca7 - 11/24/2015

Hi Dave,
"<%values.windowstring%>" fixed the misalignment problem!
Now everything works well.

Thank you so much for all your help.
Best,
Luca
By Dave - 11/24/2015

Great -- glad to hear you're up and running!
By luca7 - 11/25/2015

Hi Dave, I have a follow up question (sorry to bother you again but I’m not sure how to do this).
Given the task as it is now (see the example you sent me yesterday), each trial starts with a blank screen and after pressing the spacebar it appears the first window (first phrase of the sentence).
I’d like to be able to flexibly manage timing and content of what precede the first phrase of the sentence (like in the code below) and therefore I’d like to start the reading task with the first phrase of the sentence and not with a blank screen.
How can I make that task starting from the first phrase, that is, how I can drop the first blank screen that appears before the beginning of the sentence?

<trial getready>
[....]
/ branch = [trial.getstim]
</trial>

<trial getstim>
[....]
</trial>

Thank you.
Luca
By Dave - 11/25/2015

Omit the 1st "window indicator" character ( | ) in your items as in

<item mwstims>
/ 1 ="1xxxxCxxx x|2xxC xx|3xx xCxxxxx|4xxxxxxxxC xxxxxxxx|5xxCxxx|"
...
</item>
By luca7 - 11/25/2015

thank you so much, Dave!

Luca