Adding additional stimuli on subsequent trials


Author
Message
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 4/22/2021
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!

This should be perfectly possible. However, neither the exact procedure you have in mind nor what exactly you're struggling with is clear to me from the fairly vague description you provided. Please elaborate on both in sufficient detail.

lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 4/22/2021
lir1995 - 4/22/2021
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!

This should be perfectly possible. However, neither the exact procedure you have in mind nor what exactly you're struggling with is clear to me from the fairly vague description you provided. Please elaborate on both in sufficient detail.

Sure, I apologize for not being more clear. I attached some brief code below. Currently, my code displays two images that are each given a name. Participants are told to "give" the item to either character. There will be 10 ovals on top of the images that will start off not filled in (right now I have four for demonstration). When a participant chooses Jordan by pressing Z, we are hoping to have one of the ovals become filled in. We would want this to remained filled in for the remainder of the block. I am having struggling with figuring out how to change the stimulus to be filled in (so a new stimulus) based on participant response such that it remains for subsequent trials. I know how to change the stimulus based on participant response using responsemessage (as I have done already), but that only holds for that current trial. 

I apologize if that is still not clear, thanks!


<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>



<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>



<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>


<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>


<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>



<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>


<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>


<item oval>
/1= "Oval.png"
</item>


<picture oval>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
</picture>




<trial pair1>
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval, oval2, oval3, oval4; 3000 = blank]
/ validresponse = ("m", "z")
/ responsemessage = ("z", Jordan_feedback, 3000)
/ responsemessage = ("m", Cameron_feedback, 3000)
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>



<block pair1>
/ trials = [1-10 = pair1]
</block>
Attachments
FinalVersionToca31_neutral.jpg (155 views, 2.00 MB)
Oval.png (141 views, 11.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 4/22/2021
Dave - 4/22/2021
lir1995 - 4/22/2021
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!

This should be perfectly possible. However, neither the exact procedure you have in mind nor what exactly you're struggling with is clear to me from the fairly vague description you provided. Please elaborate on both in sufficient detail.

Sure, I apologize for not being more clear. I attached some brief code below. Currently, my code displays two images that are each given a name. Participants are told to "give" the item to either character. There will be 10 ovals on top of the images that will start off not filled in (right now I have four for demonstration). When a participant chooses Jordan by pressing Z, we are hoping to have one of the ovals become filled in. We would want this to remained filled in for the remainder of the block. I am having struggling with figuring out how to change the stimulus to be filled in (so a new stimulus) based on participant response such that it remains for subsequent trials. I know how to change the stimulus based on participant response using responsemessage (as I have done already), but that only holds for that current trial. 

I apologize if that is still not clear, thanks!


<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>



<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>



<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>


<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>


<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>



<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>


<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>


<item oval>
/1= "Oval.png"
</item>


<picture oval>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
</picture>




<trial pair1>
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval, oval2, oval3, oval4; 3000 = blank]
/ validresponse = ("m", "z")
/ responsemessage = ("z", Jordan_feedback, 3000)
/ responsemessage = ("m", Cameron_feedback, 3000)
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>



<block pair1>
/ trials = [1-10 = pair1]
</block>

Elaborate on the "filled in" part, please. Filled in how? Left to right? In different colors depending on what the response was? etc.
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 4/22/2021
lir1995 - 4/22/2021
Dave - 4/22/2021
lir1995 - 4/22/2021
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!

This should be perfectly possible. However, neither the exact procedure you have in mind nor what exactly you're struggling with is clear to me from the fairly vague description you provided. Please elaborate on both in sufficient detail.

Sure, I apologize for not being more clear. I attached some brief code below. Currently, my code displays two images that are each given a name. Participants are told to "give" the item to either character. There will be 10 ovals on top of the images that will start off not filled in (right now I have four for demonstration). When a participant chooses Jordan by pressing Z, we are hoping to have one of the ovals become filled in. We would want this to remained filled in for the remainder of the block. I am having struggling with figuring out how to change the stimulus to be filled in (so a new stimulus) based on participant response such that it remains for subsequent trials. I know how to change the stimulus based on participant response using responsemessage (as I have done already), but that only holds for that current trial. 

I apologize if that is still not clear, thanks!


<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>



<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>



<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>


<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>


<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>



<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>


<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>


<item oval>
/1= "Oval.png"
</item>


<picture oval>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
</picture>




<trial pair1>
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval, oval2, oval3, oval4; 3000 = blank]
/ validresponse = ("m", "z")
/ responsemessage = ("z", Jordan_feedback, 3000)
/ responsemessage = ("m", Cameron_feedback, 3000)
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>



<block pair1>
/ trials = [1-10 = pair1]
</block>

Elaborate on the "filled in" part, please. Filled in how? Left to right? In different colors depending on what the response was? etc.

All the same color. If you think of it as two sets of 5, I'm thinking that it would start to fill up from the left side if they make the z response (which chooses the image on the left) but fill in the ones starting on the right side if they make an m response (which chooses the image on the right). 

If it makes sense to demonstrate it just filling it in from left to right, I can adapt it after as well. Thanks!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 4/22/2021
Dave - 4/22/2021
lir1995 - 4/22/2021
Dave - 4/22/2021
lir1995 - 4/22/2021
Hello, 

In our experiment, participants will be sorting items to one of two characters. We are hoping to have 10 empty slots at the top to help balance the sorting. Once they sort an item on a given trial, one of the slots will fill up to indicate that they sorted the item to one of the characters. I was wondering if this is possible to do in inquisit? I've been struggling with this as I was unsure if there is a way to show different stimuli on each trial without creating new trial elements.

So for example, trial 1 will have all 10 slots empty in addition to the character stimuli. Trial 2 would have 9 slots empty and one slot full, etc. This could also work by having 10 slots and removing one each trial the participant makes a response. 

Thank you!

This should be perfectly possible. However, neither the exact procedure you have in mind nor what exactly you're struggling with is clear to me from the fairly vague description you provided. Please elaborate on both in sufficient detail.

Sure, I apologize for not being more clear. I attached some brief code below. Currently, my code displays two images that are each given a name. Participants are told to "give" the item to either character. There will be 10 ovals on top of the images that will start off not filled in (right now I have four for demonstration). When a participant chooses Jordan by pressing Z, we are hoping to have one of the ovals become filled in. We would want this to remained filled in for the remainder of the block. I am having struggling with figuring out how to change the stimulus to be filled in (so a new stimulus) based on participant response such that it remains for subsequent trials. I know how to change the stimulus based on participant response using responsemessage (as I have done already), but that only holds for that current trial. 

I apologize if that is still not clear, thanks!


<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>



<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>



<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>


<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>


<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>



<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>


<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>


<item oval>
/1= "Oval.png"
</item>


<picture oval>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
</picture>




<trial pair1>
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval, oval2, oval3, oval4; 3000 = blank]
/ validresponse = ("m", "z")
/ responsemessage = ("z", Jordan_feedback, 3000)
/ responsemessage = ("m", Cameron_feedback, 3000)
/ posttrialpause = 1000
/ trialduration = 4000
/ responseinterrupt = frames
/ beginresponsetime = 0
</trial>



<block pair1>
/ trials = [1-10 = pair1]
</block>

Elaborate on the "filled in" part, please. Filled in how? Left to right? In different colors depending on what the response was? etc.

All the same color. If you think of it as two sets of 5, I'm thinking that it would start to fill up from the left side if they make the z response (which chooses the image on the left) but fill in the ones starting on the right side if they make an m response (which chooses the image on the right). 

If it makes sense to demonstrate it just filling it in from left to right, I can adapt it after as well. Thanks!

<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>



<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>


<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>

<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>

<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>

<item oval>
/1 = "oval.png"
/2 = "oval_filled.png"
</item>

<picture oval1>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
/ select = list.left_set.items.1
/ erase = false
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
/ select = list.left_set.items.2
/ erase = false
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
/ select = list.right_set.items.1
/ erase = false
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
/ select = list.right_set.items.2
/ erase = false
</picture>

<values>
/ left_responses = 0
/ right_responses = 0
/ left_overflow = 0
/ right_overflow = 0
</values>

<list left_set>
/ items = (1,1)
</list>

<list right_set>
/ items = (1,1)
</list>

<trial pair1>
/ ontrialend = [
    if (trial.pair1.responsetext == "m" && values.right_responses < 2) {
        values.right_responses += 1;
        list.right_set.setitem(2, values.right_responses);
    } else if (trial.pair1.responsetext == "m" && values.right_responses >= 2) {
        values.right_responses += 1;
        values.right_overflow += 1;
        list.left_set.setitem(2, values.left_responses + values.right_overflow);
    } else if (trial.pair1.responsetext == "z" && values.left_responses < 2) {
        values.left_responses += 1;
        list.left_set.setitem(2, values.left_responses);
    } else if (trial.pair1.responsetext == "z" && values.left_responses >= 2) {
        values.left_responses += 1;
        values.left_overflow += 1;
        list.right_set.setitem(2, values.right_responses + values.left_overflow);
    };
]
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval1, oval2, oval3, oval4]
/ validresponse = ("m", "z")
/ timeout = 3000
/ beginresponsetime = 0
/ branch = [
    trial.ptp;
]
</trial>

<trial ptp>
/ stimulustimes = [0 = oval1, oval2, oval3, oval4; 1000=blank]
/ validresponse = (0)
/ recorddata = false
/ trialduration = max(4000-trial.pair1.elapsedtime, 2000)
</trial>

<block pair1>
/ trials = [1-4 = pair1]
</block>


Attachments
oval_filled.png (150 views, 19.00 KB)
Edited 3 Years Ago by Dave
lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Thank you so much!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
lir1995 - 4/23/2021
Thank you so much!

Come to think of it, we can actually make the trial timing more consistent with what it was before by changing the ptp trial to

<trial ptp>
/ ontrialbegin = [
    trial.ptp.resetstimulusframes();
    trial.ptp.insertstimulustime(shape.blank, 3000-trial.pair1.latency);
]

/ stimulustimes = [0 = oval1, oval2, oval3, oval4]
/ validresponse = (0)
/ recorddata = false
/ trialduration = 4000-trial.pair1.latency
</trial>


That way, all stimuli should remain on-screen for approximately 3 seconds, followed by a 1 second blank period.
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
Dave - 4/23/2021
lir1995 - 4/23/2021
Thank you so much!

Come to think of it, we can actually make the trial timing more consistent with what it was before by changing the ptp trial to

<trial ptp>
/ ontrialbegin = [
    trial.ptp.resetstimulusframes();
    trial.ptp.insertstimulustime(shape.blank, 3000-trial.pair1.latency);
]

/ stimulustimes = [0 = oval1, oval2, oval3, oval4]
/ validresponse = (0)
/ recorddata = false
/ trialduration = 4000-trial.pair1.latency
</trial>


That way, all stimuli should remain on-screen for approximately 3 seconds, followed by a 1 second blank period.

Posting a correction to previous code here; it didn't catch one edge case, where there was already an "overflow" of assignments to one character, while no assignments had yet been made to the other.

<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>

<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>


<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>

<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>

<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>

<item oval>
/1 = "oval.png"
/2 = "oval_filled.png"
</item>

<picture oval1>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
/ select = list.left_set.items.1
/ erase = false
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
/ select = list.left_set.items.2
/ erase = false
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
/ select = list.right_set.items.1
/ erase = false
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
/ select = list.right_set.items.2
/ erase = false
</picture>

<values>
/ left_responses = 0
/ right_responses = 0
/ left_overflow = 0
/ right_overflow = 0
</values>

<list left_set>
/ items = (1,1)
</list>

<list right_set>
/ items = (1,1)
</list>

<trial pair1>
/ ontrialend = [
    if (trial.pair1.responsetext == "m" && values.right_responses < 2) {
        values.right_responses += 1;
        list.right_set.setitem(2, values.left_overflow + values.right_responses);
    } else if (trial.pair1.responsetext == "m" && values.right_responses >= 2) {
        values.right_responses += 1;
        values.right_overflow += 1;
        list.left_set.setitem(2, values.left_responses + values.right_overflow);
    } else if (trial.pair1.responsetext == "z" && values.left_responses < 2) {
        values.left_responses += 1;
        list.left_set.setitem(2, values.right_overflow + values.left_responses);
    } else if (trial.pair1.responsetext == "z" && values.left_responses >= 2) {
        values.left_responses += 1;
        values.left_overflow += 1;
        list.right_set.setitem(2, values.right_responses + values.left_overflow);
    };
]
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval1, oval2, oval3, oval4]
/ validresponse = ("m", "z")
/ timeout = 3000
/ beginresponsetime = 0
/ branch = [
    trial.ptp;
]
</trial>

<trial ptp>
/ ontrialbegin = [
    trial.ptp.resetstimulusframes();
    trial.ptp.insertstimulustime(shape.blank, 3000-trial.pair1.latency);
]

/ stimulustimes = [0 = oval1, oval2, oval3, oval4]
/ validresponse = (0)
/ recorddata = false
/ trialduration = 4000-trial.pair1.latency
</trial>

<block pair1>
/ trials = [1-4 = pair1]
</block>


The relevant change is minor and highlighted in bold below:

<trial pair1>
/ ontrialend = [
    if (trial.pair1.responsetext == "m" && values.right_responses < 2) {
        values.right_responses += 1;
        list.right_set.setitem(2, values.left_overflow + values.right_responses);
    } else if (trial.pair1.responsetext == "m" && values.right_responses >= 2) {
        values.right_responses += 1;
        values.right_overflow += 1;
        list.left_set.setitem(2, values.left_responses + values.right_overflow);
    } else if (trial.pair1.responsetext == "z" && values.left_responses < 2) {
        values.left_responses += 1;
        list.left_set.setitem(2, values.right_overflow + values.left_responses);
    } else if (trial.pair1.responsetext == "z" && values.left_responses >= 2) {
        values.left_responses += 1;
        values.left_overflow += 1;
        list.right_set.setitem(2, values.right_responses + values.left_overflow);
    };
]
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval1, oval2, oval3, oval4]
/ validresponse = ("m", "z")
/ timeout = 3000
/ beginresponsetime = 0
/ branch = [
    trial.ptp;
]
</trial>

lir1995
lir1995
Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)Partner Member (697 reputation)
Group: Forum Members
Posts: 40, Visits: 190
Dave - 4/26/2021
Dave - 4/23/2021
lir1995 - 4/23/2021
Thank you so much!

Come to think of it, we can actually make the trial timing more consistent with what it was before by changing the ptp trial to

<trial ptp>
/ ontrialbegin = [
    trial.ptp.resetstimulusframes();
    trial.ptp.insertstimulustime(shape.blank, 3000-trial.pair1.latency);
]

/ stimulustimes = [0 = oval1, oval2, oval3, oval4]
/ validresponse = (0)
/ recorddata = false
/ trialduration = 4000-trial.pair1.latency
</trial>


That way, all stimuli should remain on-screen for approximately 3 seconds, followed by a 1 second blank period.

Posting a correction to previous code here; it didn't catch one edge case, where there was already an "overflow" of assignments to one character, while no assignments had yet been made to the other.

<text noun>
/ items = noun
/select = noreplacenorepeat
/ position = (50,75)
/ fontstyle = ("Arial", 40pt)
/ erase = false
</text>

<item noun>
/ 1 = "ACORN"
/ 2 = "APPLE"
/ 3 = "APRON"
/ 4 = "ATLAS"
/ 5 = "BACON"
/ 6 = "BANDAGE"
/ 7 = "BANJO"
/ 8 = "BARLEY"
/ 9 = "BASEBALL"
/ 10 = "BISCUIT"
</item>

<item pair1_item1>
/1 = "FinalVersionToca31_neutral.jpg"
</item>

<item Jordan>
/1 = "Jordan"
</item>


<item pair1_item2>
/1 = "FinalVersionToca42_neutral.jpg"
</item>

<item Cameron>
/1 = "Cameron"
</item>

<picture pair1_item1>
/ items = pair1_item1
/ select = noreplacenorepeat
/ size = (40%, 40%)
/ position = (30,50)
/ erase = false
</picture>

<picture pair1_item2>
/ items = pair1_item2
/ size = (40%, 40%)
/ position = (70,50)
/ select = picture.pair1_item1.currentindex
/ erase = false
</picture>

<text Jordan>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Jordan_feedback>
/ items = Jordan
/select = noreplacenorepeat
/ position = (30,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<text Cameron>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = black
</text>

<text Cameron_feedback>
/ items = Cameron
/select = noreplacenorepeat
/ position = (70,23)
/ fontstyle = ("Arial", 35pt)
/ erase = false
/ color = chartreuse
</text>

<shape blank>
/ color = white
/ shape = rectangle
/ size = (100%, 100%)
/ erase = false
</shape>

<item oval>
/1 = "oval.png"
/2 = "oval_filled.png"
</item>

<picture oval1>
/ items = oval
/ size = (15%, 15%)
/ position = (10,10)
/ select = list.left_set.items.1
/ erase = false
</picture>

<picture oval2>
/ items = oval
/ size = (15%, 15%)
/ position = (20,10)
/ select = list.left_set.items.2
/ erase = false
</picture>

<picture oval3>
/ items = oval
/ size = (15%, 15%)
/ position = (70,10)
/ select = list.right_set.items.1
/ erase = false
</picture>

<picture oval4>
/ items = oval
/ size = (15%, 15%)
/ position = (80,10)
/ select = list.right_set.items.2
/ erase = false
</picture>

<values>
/ left_responses = 0
/ right_responses = 0
/ left_overflow = 0
/ right_overflow = 0
</values>

<list left_set>
/ items = (1,1)
</list>

<list right_set>
/ items = (1,1)
</list>

<trial pair1>
/ ontrialend = [
    if (trial.pair1.responsetext == "m" && values.right_responses < 2) {
        values.right_responses += 1;
        list.right_set.setitem(2, values.left_overflow + values.right_responses);
    } else if (trial.pair1.responsetext == "m" && values.right_responses >= 2) {
        values.right_responses += 1;
        values.right_overflow += 1;
        list.left_set.setitem(2, values.left_responses + values.right_overflow);
    } else if (trial.pair1.responsetext == "z" && values.left_responses < 2) {
        values.left_responses += 1;
        list.left_set.setitem(2, values.right_overflow + values.left_responses);
    } else if (trial.pair1.responsetext == "z" && values.left_responses >= 2) {
        values.left_responses += 1;
        values.left_overflow += 1;
        list.right_set.setitem(2, values.right_responses + values.left_overflow);
    };
]
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval1, oval2, oval3, oval4]
/ validresponse = ("m", "z")
/ timeout = 3000
/ beginresponsetime = 0
/ branch = [
    trial.ptp;
]
</trial>

<trial ptp>
/ ontrialbegin = [
    trial.ptp.resetstimulusframes();
    trial.ptp.insertstimulustime(shape.blank, 3000-trial.pair1.latency);
]

/ stimulustimes = [0 = oval1, oval2, oval3, oval4]
/ validresponse = (0)
/ recorddata = false
/ trialduration = 4000-trial.pair1.latency
</trial>

<block pair1>
/ trials = [1-4 = pair1]
</block>


The relevant change is minor and highlighted in bold below:

<trial pair1>
/ ontrialend = [
    if (trial.pair1.responsetext == "m" && values.right_responses < 2) {
        values.right_responses += 1;
        list.right_set.setitem(2, values.left_overflow + values.right_responses);
    } else if (trial.pair1.responsetext == "m" && values.right_responses >= 2) {
        values.right_responses += 1;
        values.right_overflow += 1;
        list.left_set.setitem(2, values.left_responses + values.right_overflow);
    } else if (trial.pair1.responsetext == "z" && values.left_responses < 2) {
        values.left_responses += 1;
        list.left_set.setitem(2, values.right_overflow + values.left_responses);
    } else if (trial.pair1.responsetext == "z" && values.left_responses >= 2) {
        values.left_responses += 1;
        values.left_overflow += 1;
        list.right_set.setitem(2, values.right_responses + values.left_overflow);
    };
]
/ stimulustimes = [0 = pair1_item1, pair1_item2, Jordan, Cameron, noun, oval1, oval2, oval3, oval4]
/ validresponse = ("m", "z")
/ timeout = 3000
/ beginresponsetime = 0
/ branch = [
    trial.ptp;
]
</trial>

Thank you so much for following up on this!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search