Millisecond Forums

Random stimulus pairs from lists

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

By Lafayote - 7/24/2018

Hello,



I want to present two statements on the screen which belong together, i.e. any time a statement from stimulus list A is shown, the respective statement from stimulus list B should appear as well. I could already solve this issue with help of the /select = ....currentindex function and defining separate stim/stimB lists (each containing 24 statements).
I am now struggling the the randomization of the statement sequence: I want to counterbalance whether statement A is presented first and followed by the respective statement B, or whether statement B is presented first and followed by the respective statement A. I thought of using a counter, however, it seems that there are still some double trials because sometimes, the statement is drawn directly from the list, and sometimes only indirectly via the corresponding list.

How can I solve this problem and "exclude" also those statements which were only drawn via the /select function?

Any advice would be great!

Thank you in advance and kind regards,
L.

-------

<text high_highlow_updown>
/items = high_status
/select = mycounter
/resetinterval = 0
/position = (30,12.5)
/fontstyle = ("Arial", 20pt)
</text>

<text low_highlow_updown>
/items = low_status
/select = text.high_highlow_updown.currentindex
/position = (30,65)
/fontstyle = ("Arial", 20pt)
</text>

<text low_lowhigh_updown>
/items = low_status
/select = mycounter
/resetinterval = 0
/position = (30,12.5)
/fontstyle = ("Arial", 20pt)
</text>

<text high_lowhigh_updown>
/items = high_status
/select = text.low_lowhigh_updown.currentindex
/resetinterval = 0
/position = (70,65)
/fontstyle = ("Arial", 20pt)
</text>

<counter mycounter>
/ select = noreplace(1-24)
/ selectionrate = always
/ resetinterval = 0
</counter>
By Dave - 7/24/2018

Lafayote - Tuesday, July 24, 2018
Hello,



I want to present two statements on the screen which belong together, i.e. any time a statement from stimulus list A is shown, the respective statement from stimulus list B should appear as well. I could already solve this issue with help of the /select = ....currentindex function and defining separate stim/stimB lists (each containing 24 statements).
I am now struggling the the randomization of the statement sequence: I want to counterbalance whether statement A is presented first and followed by the respective statement B, or whether statement B is presented first and followed by the respective statement A. I thought of using a counter, however, it seems that there are still some double trials because sometimes, the statement is drawn directly from the list, and sometimes only indirectly via the corresponding list.

How can I solve this problem and "exclude" also those statements which were only drawn via the /select function?

Any advice would be great!

Thank you in advance and kind regards,
L.

-------

<text high_highlow_updown>
/items = high_status
/select = mycounter
/resetinterval = 0
/position = (30,12.5)
/fontstyle = ("Arial", 20pt)
</text>

<text low_highlow_updown>
/items = low_status
/select = text.high_highlow_updown.currentindex
/position = (30,65)
/fontstyle = ("Arial", 20pt)
</text>

<text low_lowhigh_updown>
/items = low_status
/select = mycounter
/resetinterval = 0
/position = (30,12.5)
/fontstyle = ("Arial", 20pt)
</text>

<text high_lowhigh_updown>
/items = high_status
/select = text.low_lowhigh_updown.currentindex
/resetinterval = 0
/position = (70,65)
/fontstyle = ("Arial", 20pt)
</text>

<counter mycounter>
/ select = noreplace(1-24)
/ selectionrate = always
/ resetinterval = 0
</counter>

You should not need two lists or counters, one suffices. Consider this example, with two trials, one of which presents statement A first, the other presents statement B first.

<text a>
/ items = aitems
/ select = values.itemnumber
</text>

<text b>
/ items = bitems
/ select = values.itemnumber
</text>

<item aitems>
/ 1 = "A 01"
/ 2 = "A 02"
/ 3 = "A 03"
/ 4 = "A 04"
/ 5 = "A 05"
/ 6 = "A 06"
</item>

<item bitems>
/ 1 = "B 01"
/ 2 = "B 02"
/ 3 = "B 03"
/ 4 = "B 04"
/ 5 = "B 05"
/ 6 = "B 06"
</item>

<list allitemnumbers>
/ poolsize = 6
</list>

<trial ab>
/ ontrialbegin = [
    values.itemnumber = list.allitemnumbers.nextindex;
]
/ stimulustimes = [0=a; 2000=b]
/ validresponse = (57)
</trial>

<trial ba>
/ ontrialbegin = [
    values.itemnumber = list.allitemnumbers.nextindex;
]
/ stimulustimes = [0=b; 2000=a]
/ validresponse = (57)
</trial>

<block myblock>
/ trials = [1-6 = noreplace(ab, ba)]
</block>

<values>
/ itemnumber = 1
</values>

By Lafayote - 7/24/2018

Thank you! I adapted it for my purposes and it worked perfectly!