Millisecond Forums

sync issue in Self-Paced Reading Task

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

By luca7 - 11/23/2015

Dear Inquisit users,
I’d like to modify the “Self-Paced Reading Task” (from the task library). I’d like the reading of the sentence to be preceded by a memory list (3 words), so the trial would be: memory list -> self-paced reading -> comprehension question -> recall memory list.
The comprehension question is correctly synchronized with the sentence (the Text element for the question has “/ select = list.mwstimsP.currentindex”).
However the memory list that appears before the sentence is not synchronized, and if I use “select = list.mwstimsP.currentindex” in the Text element for the memory list still is not synchronized.
Below there are some parts of the code that should help you to see what I have.
How can I sync the items in the memory list with the rest of the trial (sentence and comprehension question)? Any suggestion to solve this issue would be really appreciate.

Thank you.
Luca


<block pracBlock>
/ preinstructions = (pracBlockIntro1, pracBlockIntro2, pracBlockIntro3)
/ onblockbegin = [values.cumulative=false]
/ onblockbegin = [reset(list.mwstimsP)]
/ onblockend = [values.stopblock=0]
/ stop = [values.stopblock==1]
/ trials = [1= memory]
</block>


<trial memory>
/ stimulustimes = [0=background; 200=memoryP]
/ validresponse = (2, 3)
/ branch = [trial.getstimP]
</trial>

<trial getstimP>
/ ontrialbegin = [if(list.mwstimsP.unselectedcount==0)values.stopblock=1]
/ ontrialbegin = [values.inputstring=getitem(text.mwstimsP, list.mwstimsP.nextvalue)]
/ ontrialbegin = [values.maskstring=values.inputstring]
/ ontrialbegin = [reset(list.uppercase); reset(list.lowercase)]
/ ontrialbegin = [expressions.maskuppercase; expressions.masklowercase]
/ ontrialbegin = [values.maskstringhl=values.maskstring]
/ ontrialbegin = [expressions.maskuppercasehl; expressions.masklowercasehl]
/ ontrialbegin = [values.wincount=0; values.winstart=0; values.winend=0]
/ validresponse = (noresponse)
/ trialduration = 0
/ branch = [trial.MWtrialP]
/ recorddata = false
</trial>

[......]

<trial questiontrialP>
/ stimulustimes = [0=background; 200=questionP, ansKeyP, itemidP]
/ validresponse = (2, 3)
/ branch = [if(trial.getstimP.count < 3)trial.readytrialP else trial.getstimP]
</trial>

[.....]

<text memoryP>  
/ items = memory
/ select = list.mwstimsP.currentindex
</text>

<text mwstimsP>
/ items = mwstimsP
</text>

<text questionP>
/ items = questionP
/ fontstyle = ("Lucida Console", 2.2%, true, false, false)
/ select = list.mwstimsP.currentindex
</text>

[......]

<list mwstimsP>
/ items = (1-3)
/ selectionmode = random
</list>

By Dave - 11/23/2015

The *first* thing you present is your "memory list*. Thus, everything that *follows* must depend on whatever was randomly selected in the memory list part. That includes the sentence presented in the moving window portion.

You cannot have the memory item depend on something that has not happened yet, but that is exactly what you do here:

<text memoryP>  
/ items = memory
/ select = list.mwstimsP.currentindex
</text>

Instead, you need random selection

<text memoryP>  
/ items = memory
/ select = noreplace
</text>

and have the *moving window item* depend on the memory item.

<list mwstimsP>
/ items = (1,2,3)
/ selectionmode = text.memoryP.currentindex
</list>
By luca7 - 11/23/2015

thank you so much for your timely answer, Dave.
Your solution works just fine.

Best,
Luca