Millisecond Forums

Possible Stairway using 3 stimuli

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

By capr - 7/5/2017

This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks
By Dave - 7/6/2017

capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.


By capr - 7/25/2017

Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.

By Dave - 7/25/2017

capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?
By capr - 7/25/2017

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.
By Dave - 7/25/2017

capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....
By Dave - 7/25/2017

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Okay, lots of guesswork, but this here should give you an idea re. the "decreasing" staircase:

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [values.distance = abs(values.sameitem-values.differentitem);]
/ ontrialbegin = [if(trial.oddoneout.correct){
    values.differentitem=values.sameitem-round(values.distance/2);
    values.distance = abs(values.sameitem-values.differentitem)
    }
]
/ ontrialbegin = [if(trial.oddoneout.error && trial.oddoneout.trialcount!=0){
    values.differentitem=values.sameitem-round(values.distance*1.5);
    if(values.differentitem<1) values.differentitem = 1;
    values.distance = abs(values.sameitem-values.differentitem)
    }
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different, debug]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
/ branch = [trial.oddoneout]
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
/ 12 = "011"
/ 13 = "012"
/ 14 = "013"
/ 15 = "014"
/ 16 = "015"
/ 17 = "016"
/ 18 = "017"
/ 19 = "018"
/ 20 = "019"
/ 21 = "020"
/ 22 = "021"
/ 23 = "022"
/ 24 = "023"
/ 25 = "024"
/ 26 = "025"
/ 27 = "026"
/ 28 = "027"
/ 29 = "028"
/ 30 = "029"
/ 31 = "030"
/ 32 = "031"
/ 33 = "032"
/ 34 = "033"
/ 35 = "034"
/ 36 = "035"
/ 37 = "036"
/ 38 = "037"
/ 39 = "038"
/ 40 = "039"
/ 41 = "040"
/ 42 = "041"
/ 43 = "042"
/ 44 = "043"
/ 45 = "044"
/ 46 = "045"
/ 47 = "046"
/ 48 = "047"
/ 49 = "048"
/ 50 = "049"
/ 51 = "050"
/ 52 = "051"
/ 53 = "052"
/ 54 = "053"
/ 55 = "054"
/ 56 = "055"
/ 57 = "056"
/ 58 = "057"
/ 59 = "058"
/ 60 = "059"
/ 61 = "060"
/ 62 = "061"
/ 63 = "062"
/ 64 = "063"
/ 65 = "064"
/ 66 = "065"
/ 67 = "066"
/ 68 = "067"
/ 69 = "068"
/ 70 = "069"
/ 71 = "070"
/ 72 = "071"
/ 73 = "072"
/ 74 = "073"
/ 75 = "074"
/ 76 = "075"
/ 77 = "076"
/ 78 = "077"
/ 79 = "078"
/ 80 = "079"
/ 81 = "080"
/ 82 = "081"
/ 83 = "082"
/ 84 = "083"
/ 85 = "084"
/ 86 = "085"
/ 87 = "086"
/ 88 = "087"
/ 89 = "088"
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 101
/ differentitem = 1
/ distance = 0
/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

<text debug>
/ items = ("same item #<%values.sameitem%> | different item #<%values.differentitem%>~ndistance: <%values.distance%>")
/ erase = false
/ position = (50%, 10%)
/ size = (50%,10%)
</text>

As you can see, there is no fancy math involved. You merely calculate the "distance" between the two item numbers (same & different) and then derive the next one by subtracting either half the distance (correct response) or 1.5 times the distance (incorrect response) from the static "same" item number.

Your "increasing" staircase would work analogously.
By capr - 7/25/2017

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials







By Dave - 7/25/2017

capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.
By capr - 7/26/2017

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.

Thank you Dave

The Code you supplied worked perfectly and I am extremely thankful for your help with this.

Only one small problem, currently the script ends when there is an overall errorcount of 3. I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance. Below is which i currently have.

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

Thanks Again
By Dave - 7/27/2017

capr - Thursday, July 27, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.

Thank you Dave

The Code you supplied worked perfectly and I am extremely thankful for your help with this.

Only one small problem, currently the script ends when there is an overall errorcount of 3. I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance. Below is which i currently have.

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

Thanks Again

> I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance.

Not sure I understand. values.distance changes constantly, depending on whether the response is correct or not. I.e., you would theoretically have to track independent error counts for 100 different "levels" of distance. That strikes me as both tedious and strange, especially since a participant will not necessarily return to the same "level" of distance after submitting a correct response after an incorrect response due to how your adjustment procedure works. Perhaps you can come up with a more straightforward termination criterion? Something like X _consecutive_ errors would seem to make more sense to me intuitively.
By capr - 8/1/2017

capr - Thursday, July 27, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.

Thank you Dave

The Code you supplied worked perfectly and I am extremely thankful for your help with this.

Only one small problem, currently the script ends when there is an overall errorcount of 3. I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance. Below is which i currently have.

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

Thanks Again

Sorry again, when I tried reversing the code to make the stairway go in the upwards direction It would cancel out after the first trial, Would you be able to tell me the fault in my code

<block StairwayUp>
/ stop = [trial.oddoneout.correctcount >= 10 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [values.distance = abs(values.differentitem-values.sameitem);]
/ ontrialbegin = [if(trial.oddoneout.correct){
  values.differentitem=values.sameitem-round(values.distance/1.5);
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [if(trial.oddoneout.error && trial.oddoneout.trialcount!=0){
  values.differentitem=values.sameitem-round(values.distance*2);
  if(values.differentitem<1) values.differentitem = 1;
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [
  values.same1_x=list.xpositions.nextvalue;
  values.same2_x=list.xpositions.nextvalue;
  values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=malesame1, malesame2, maledifferent, debug]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
/ branch = [trial.oddoneout]
</trial>

<text same1>
/ items = items
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = items
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text maledifferent>
/ items = items
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item items>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
/ 12 = "011"
/ 13 = "012"
/ 14 = "013"
/ 15 = "014"
/ 16 = "015"
/ 17 = "016"
/ 18 = "017"
/ 19 = "018"
/ 20 = "019"
/ 21 = "020"
/ 22 = "021"
/ 23 = "022"
/ 24 = "023"
/ 25 = "024"
/ 26 = "025"
/ 27 = "026"
/ 28 = "027"
/ 29 = "028"
/ 30 = "029"
/ 31 = "030"
/ 32 = "031"
/ 33 = "032"
/ 34 = "033"
/ 35 = "034"
/ 36 = "035"
/ 37 = "036"
/ 38 = "037"
/ 39 = "038"
/ 40 = "039"
/ 41 = "040"
/ 42 = "041"
/ 43 = "042"
/ 44 = "043"
/ 45 = "044"
/ 46 = "045"
/ 47 = "046"
/ 48 = "047"
/ 49 = "048"
/ 50 = "049"
/ 51 = "050"
/ 52 = "051"
/ 53 = "052"
/ 54 = "053"
/ 55 = "054"
/ 56 = "055"
/ 57 = "056"
/ 58 = "057"
/ 59 = "058"
/ 60 = "059"
/ 61 = "060"
/ 62 = "061"
/ 63 = "062"
/ 64 = "063"
/ 65 = "064"
/ 66 = "065"
/ 67 = "066"
/ 68 = "067"
/ 69 = "068"
/ 70 = "069"
/ 71 = "070"
/ 72 = "071"
/ 73 = "072"
/ 74 = "073"
/ 75 = "074"
/ 76 = "075"
/ 77 = "076"
/ 78 = "077"
/ 79 = "078"
/ 80 = "079"
/ 81 = "080"
/ 82 = "081"
/ 83 = "082"
/ 84 = "083"
/ 85 = "084"
/ 86 = "085"
/ 87 = "086"
/ 88 = "087"
/ 89 = "088"
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 101
/ differentitem = 100
/ distance = 0
/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

<text debug>
/ items = ("same item #<%values.sameitem%> | different item #<%values.differentitem%>~ndistance: <%values.distance%>")
/ erase = false
/ position = (50%, 10%)
/ size = (50%, 10%)
</text>

<expt Stair>
/ blocks = [1=StairWayUp]
/ preinstructions = (StairIntro)
</expt>


By capr - 8/1/2017

capr - Tuesday, August 1, 2017
capr - Thursday, July 27, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.

Thank you Dave

The Code you supplied worked perfectly and I am extremely thankful for your help with this.

Only one small problem, currently the script ends when there is an overall errorcount of 3. I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance. Below is which i currently have.

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

Thanks Again

Sorry again, when I tried reversing the code to make the stairway go in the upwards direction It would cancel out after the first trial, Would you be able to tell me the fault in my code

<block StairwayUp>
/ stop = [trial.oddoneout.correctcount >= 10 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [values.distance = abs(values.differentitem-values.sameitem);]
/ ontrialbegin = [if(trial.oddoneout.correct){
  values.differentitem=values.sameitem-round(values.distance/1.5);
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [if(trial.oddoneout.error && trial.oddoneout.trialcount!=0){
  values.differentitem=values.sameitem-round(values.distance*2);
  if(values.differentitem<1) values.differentitem = 1;
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [
  values.same1_x=list.xpositions.nextvalue;
  values.same2_x=list.xpositions.nextvalue;
  values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=malesame1, malesame2, maledifferent, debug]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
/ branch = [trial.oddoneout]
</trial>

<text same1>
/ items = items
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = items
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text maledifferent>
/ items = items
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item items>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
/ 12 = "011"
/ 13 = "012"
/ 14 = "013"
/ 15 = "014"
/ 16 = "015"
/ 17 = "016"
/ 18 = "017"
/ 19 = "018"
/ 20 = "019"
/ 21 = "020"
/ 22 = "021"
/ 23 = "022"
/ 24 = "023"
/ 25 = "024"
/ 26 = "025"
/ 27 = "026"
/ 28 = "027"
/ 29 = "028"
/ 30 = "029"
/ 31 = "030"
/ 32 = "031"
/ 33 = "032"
/ 34 = "033"
/ 35 = "034"
/ 36 = "035"
/ 37 = "036"
/ 38 = "037"
/ 39 = "038"
/ 40 = "039"
/ 41 = "040"
/ 42 = "041"
/ 43 = "042"
/ 44 = "043"
/ 45 = "044"
/ 46 = "045"
/ 47 = "046"
/ 48 = "047"
/ 49 = "048"
/ 50 = "049"
/ 51 = "050"
/ 52 = "051"
/ 53 = "052"
/ 54 = "053"
/ 55 = "054"
/ 56 = "055"
/ 57 = "056"
/ 58 = "057"
/ 59 = "058"
/ 60 = "059"
/ 61 = "060"
/ 62 = "061"
/ 63 = "062"
/ 64 = "063"
/ 65 = "064"
/ 66 = "065"
/ 67 = "066"
/ 68 = "067"
/ 69 = "068"
/ 70 = "069"
/ 71 = "070"
/ 72 = "071"
/ 73 = "072"
/ 74 = "073"
/ 75 = "074"
/ 76 = "075"
/ 77 = "076"
/ 78 = "077"
/ 79 = "078"
/ 80 = "079"
/ 81 = "080"
/ 82 = "081"
/ 83 = "082"
/ 84 = "083"
/ 85 = "084"
/ 86 = "085"
/ 87 = "086"
/ 88 = "087"
/ 89 = "088"
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 101
/ differentitem = 100
/ distance = 0
/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

<text debug>
/ items = ("same item #<%values.sameitem%> | different item #<%values.differentitem%>~ndistance: <%values.distance%>")
/ erase = false
/ position = (50%, 10%)
/ size = (50%, 10%)
</text>

<expt Stair>
/ blocks = [1=StairWayUp]
/ preinstructions = (StairIntro)
</expt>



Im also aware that there is a small error in the line of code which does not lead anywhere but is just a problem of labelling
/ stimulusframes = [1=malesame1, malesame2, maledifferent, debug]

Please just ignore that and thank you again in advance
By Dave - 8/2/2017

capr - Tuesday, August 1, 2017
capr - Tuesday, August 1, 2017
capr - Thursday, July 27, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Tuesday, July 25, 2017
capr - Tuesday, July 25, 2017
Dave - Thursday, July 6, 2017
capr - Thursday, July 6, 2017
This is probably going to be a long shot but I thought I would give this a try. I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two. For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the different image is randomized). As I am trying to detect a threshold, i would need these images to change depending on the response being correct or incorrect. Another issue is that i want to set it up so that i can make my stimuli at the full range of what the experiment is (make every item from 1-100) and then have inquisit randomly select one of these items, copy it for another face and then take the required difference in range for the difference in the staircase and make the third image there. For example, have a screen in which three seperate jpegs come up all next to each other in a row with two at the highest point in the range (100) and one at the lowest point (0), if the response would be right then that difference would go shorter, then requiring two stimuli of a random value (e.g. 75) and the third of a smaller range of the stimuli (e.g. 50 difference, meaning stimulus 25) all whilst the odd image out is being randomised between the locations. 

I know that it is not the most easy of tasks but the amount of coding and stimulus making i would have to produce if I cannot get three seperate jpegs would be a lot. I know this is a long shot and I am vary new to inquisit and coding so any instructions or advice would be majorly appreciated. Also if there suggestions of other ways to do something similar, I am more than happy to hear them out. I have looked at the staircase method that is in the examples but was not sure how to manipulate that to what I need.

Thanks

> I would like to create an odd one out task, which would require to the participant to be able to identify which of three stimuli is different from the other two.
> For this I would require for three jpegs be shown on one screen in which two of them are the same and one is different (in which the location of the
> different image is randomized).

This is reasonably straightforward to do. You need three <picture> elements -- <picture same1>, <picture same2>, and <picture different> -- with same1 and same2 set to select the same item number, and <picture different> selecting a different one. This can be done using values and lists. You then simply randomize the picture elements' on-screen positions also using a <list> containing the three candidate positions. Basic example using <text> stimuli (works the same for <picture>s):

<block myblock>
/ trials = [1-10 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [
    values.sameitem=list.sameitemnumbers.nextindex;
    values.differentitem=list.differentitemnumbers.nextindex;
]
/ ontrialbegin = [
    values.same1_x=list.xpositions.nextvalue;
    values.same2_x=list.xpositions.nextvalue;
    values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
</trial>

<text same1>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = allitems
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = allitems
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item allitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
/ 5 = "E"
/ 6 = "F"
/ 7 = "G"
/ 8 = "H"
/ 9 = "I"
/ 10 = "J"
</item>

<list sameitemnumbers>
/ poolsize = 10
</list>

<list differentitemnumbers>
/ poolsize = 10
/ not = (list.sameitemnumbers.currentindex)
</list>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 1
/ differentitem = 1

/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

As for the staircase / adjustment procedure, there is too little detail for me to offer concrete syntax or code. As the above should make clear, however, what it ultimately comes down to is mapping the adjustment to _item numbers_. I.e., based on response correctness, constrain item selection to a specific range of item numbers / calculate the applicable item number for the "different" stimulus using some (more or less) simple math.



Thank You for your help as this worked perfectly for the presentation of Stimuli.

However by myself I have not been able to figure out how to get the staircase portion of it to work. I will try my best to explain to see if you can help me out as I have used the above code as a template of what I have so far.

So my stimuli, (The pictures in items list) would be be organised in order from 0-100, so that the item 0 and item 100 are the most different and then as they come closer together they get closer together. In real terms the items are just one stimuli that I have manipulated to range from 0% manipulation to 100% Manipulation, and I am trying to discover how much manipulation a person can actually identify.

As well as this I am aware that the easiest way to do this would be to have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%, if they identified that they would move on to 25%, then 13% (rounded up to whole number)). After 3 incorrect responses it would end the trail

For this experiment I would also like there to be two staiways in which one would decrease the difference in stimuli (as above) and one would increase the difference (Start at 100% same, 99% different; then go onto 98% different; then 96%; then 92%; etc..), .Also for this increasing staircase it would cancel after 3 correct responses. I was not sure if it would be an easy thing to be able to complete and once again any help would be amazing.


"have the manipulation start at either 0 or 100, and then let it change from there. The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"

I'm not sure what the problem is: If you arrange your item as numbers 1 to 101, it seems to me that you should be to calculate the proper item number for the next trial quite straightforwardly if the response in the current trial is correct. I must be missing something. What exactly are you not sure how to do? I'm also not clear on what you plan to do in case of an incorrect response. Are stimuli supposed to remain at the same "level" or change in some way?

Sorry, I'll be honest I am not good at coding at all so it is very confusing for me.

So the stimuli that are labeled same in the original code you provided would stay the same (Either item 1 or 101, staying constant throughout the stairway). 

Also for an incorrect response, the difference would then get larger again by the same halved amount (E.g. If incorrect in trial where there is 50% difference, jumps up to 75%).

I apologise in advance, as I said before, my knowledge of things like this is extremely basic and looking at the code files is like reading another language.

Okay, still not clear to me. Assume your items are arranged like this:

<item allitems>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
...
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

Draw me a table:
Trial number                 Same item number                   Different item number                 Response
1                                   101                                          1                                                  correct
2                                   101                                          50                                                correct
....

So Ive had a though that a variable change would be much more difficult and put in terms of just a difference of five gaps (which would change the need for 100 stimuli but for the sake of the what we have so far ill leave it as youve got it.) But hopefully this will help explain things.
 
Trial Number
Same Item Number
Different Item Number
Response
1
101
1
Correct
2
101
6
Correct
3
101
11
Correct
4
101
16
Correct
5
101
21
Correct
6
101
26
Correct
7
101
31
Correct
8
101
36
Incorrect
9
101
31
Correct
10
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
11
101
41
Incorrect
12
101
36
Correct
13
101
41
Incorrect
End Trials








#1: Please see my previous reply. We were cross-posting, you might have missed it.
#2: I'm having trouble reconciling your table with your previous descriptions. What the table shows are constant changes in increments / decrements of 5 depending on response, not what you described previously ("The amount of change i would like it to be halved (for example if they identify correct where the same stimuli is 100% and the different is 0%, the same stimuli would stay at 100% and the different would move to 50%"). A fixed stepsize (here: 5) is trivial to implement. You merely add 5 to or subtract 5 from values.differentitem depending on response correctness.

Thank you Dave

The Code you supplied worked perfectly and I am extremely thankful for your help with this.

Only one small problem, currently the script ends when there is an overall errorcount of 3. I was wondering if you would be able to help me out with the expression which would state that when the participant gets 3 errors on a a specific values.distance. Below is which i currently have.

<block myblock>
/ stop = [trial.oddoneout.errorcount >= 3 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

Thanks Again

Sorry again, when I tried reversing the code to make the stairway go in the upwards direction It would cancel out after the first trial, Would you be able to tell me the fault in my code

<block StairwayUp>
/ stop = [trial.oddoneout.correctcount >= 10 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [values.distance = abs(values.differentitem-values.sameitem);]
/ ontrialbegin = [if(trial.oddoneout.correct){
  values.differentitem=values.sameitem-round(values.distance/1.5);
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [if(trial.oddoneout.error && trial.oddoneout.trialcount!=0){
  values.differentitem=values.sameitem-round(values.distance*2);
  if(values.differentitem<1) values.differentitem = 1;
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [
  values.same1_x=list.xpositions.nextvalue;
  values.same2_x=list.xpositions.nextvalue;
  values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=malesame1, malesame2, maledifferent, debug]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
/ branch = [trial.oddoneout]
</trial>

<text same1>
/ items = items
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = items
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text maledifferent>
/ items = items
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item items>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
/ 12 = "011"
/ 13 = "012"
/ 14 = "013"
/ 15 = "014"
/ 16 = "015"
/ 17 = "016"
/ 18 = "017"
/ 19 = "018"
/ 20 = "019"
/ 21 = "020"
/ 22 = "021"
/ 23 = "022"
/ 24 = "023"
/ 25 = "024"
/ 26 = "025"
/ 27 = "026"
/ 28 = "027"
/ 29 = "028"
/ 30 = "029"
/ 31 = "030"
/ 32 = "031"
/ 33 = "032"
/ 34 = "033"
/ 35 = "034"
/ 36 = "035"
/ 37 = "036"
/ 38 = "037"
/ 39 = "038"
/ 40 = "039"
/ 41 = "040"
/ 42 = "041"
/ 43 = "042"
/ 44 = "043"
/ 45 = "044"
/ 46 = "045"
/ 47 = "046"
/ 48 = "047"
/ 49 = "048"
/ 50 = "049"
/ 51 = "050"
/ 52 = "051"
/ 53 = "052"
/ 54 = "053"
/ 55 = "054"
/ 56 = "055"
/ 57 = "056"
/ 58 = "057"
/ 59 = "058"
/ 60 = "059"
/ 61 = "060"
/ 62 = "061"
/ 63 = "062"
/ 64 = "063"
/ 65 = "064"
/ 66 = "065"
/ 67 = "066"
/ 68 = "067"
/ 69 = "068"
/ 70 = "069"
/ 71 = "070"
/ 72 = "071"
/ 73 = "072"
/ 74 = "073"
/ 75 = "074"
/ 76 = "075"
/ 77 = "076"
/ 78 = "077"
/ 79 = "078"
/ 80 = "079"
/ 81 = "080"
/ 82 = "081"
/ 83 = "082"
/ 84 = "083"
/ 85 = "084"
/ 86 = "085"
/ 87 = "086"
/ 88 = "087"
/ 89 = "088"
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 101
/ differentitem = 100
/ distance = 0
/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

<text debug>
/ items = ("same item #<%values.sameitem%> | different item #<%values.differentitem%>~ndistance: <%values.distance%>")
/ erase = false
/ position = (50%, 10%)
/ size = (50%, 10%)
</text>

<expt Stair>
/ blocks = [1=StairWayUp]
/ preinstructions = (StairIntro)
</expt>



Im also aware that there is a small error in the line of code which does not lead anywhere but is just a problem of labelling
/ stimulusframes = [1=malesame1, malesame2, maledifferent, debug]

Please just ignore that and thank you again in advance

<block StairwayUp>
/ stop = [trial.oddoneout.correctcount >= 10 || values.distance <= 1]
/ trials = [1 = oddoneout]
</block>

You have told the block to stop if the distance is less than or equal to 1. The distance is equal to 1 in the first trial, so the block naturally stops immediately.

What you probably want is something like this:

<block StairwayUp>
/ stop = [trial.oddoneout.correctcount >= 10 || (trial.oddoneout.trialcount > 1 && values.distance <= 1)]
/ trials = [1 = oddoneout]
</block>

<trial oddoneout>
/ ontrialbegin = [values.distance = abs(values.differentitem-values.sameitem);]
/ ontrialbegin = [if(trial.oddoneout.correct){
  values.differentitem=values.sameitem-round(values.distance/1.5);
  if(values.differentitem<1) values.differentitem = 1;
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [if(trial.oddoneout.error && trial.oddoneout.trialcount!=0){
  values.differentitem=values.sameitem-round(values.distance*2);
  values.distance = abs(values.differentitem-values.sameitem)
  }
]
/ ontrialbegin = [
  values.same1_x=list.xpositions.nextvalue;
  values.same2_x=list.xpositions.nextvalue;
  values.different_x=list.xpositions.nextvalue;
]
/ stimulusframes = [1=same1, same2, different, debug]
/ inputdevice = mouse
/ validresponse = (same1, same2, different)
/ correctresponse = (different)
/ branch = [trial.oddoneout]
</trial>

<text same1>
/ items = items
/ select = values.sameitem
/ hposition = values.same1_x
</text>

<text same2>
/ items = items
/ select = values.sameitem
/ hposition = values.same2_x
</text>

<text different>
/ items = items
/ select = values.differentitem
/ hposition = values.different_x
</text>

<item items>
/ 1 = "000"
/ 2 = "001"
/ 3 = "002"
/ 4 = "003"
/ 5 = "004"
/ 6 = "005"
/ 7 = "006"
/ 8 = "007"
/ 9 = "008"
/ 10 = "009"
/ 11 = "010"
/ 12 = "011"
/ 13 = "012"
/ 14 = "013"
/ 15 = "014"
/ 16 = "015"
/ 17 = "016"
/ 18 = "017"
/ 19 = "018"
/ 20 = "019"
/ 21 = "020"
/ 22 = "021"
/ 23 = "022"
/ 24 = "023"
/ 25 = "024"
/ 26 = "025"
/ 27 = "026"
/ 28 = "027"
/ 29 = "028"
/ 30 = "029"
/ 31 = "030"
/ 32 = "031"
/ 33 = "032"
/ 34 = "033"
/ 35 = "034"
/ 36 = "035"
/ 37 = "036"
/ 38 = "037"
/ 39 = "038"
/ 40 = "039"
/ 41 = "040"
/ 42 = "041"
/ 43 = "042"
/ 44 = "043"
/ 45 = "044"
/ 46 = "045"
/ 47 = "046"
/ 48 = "047"
/ 49 = "048"
/ 50 = "049"
/ 51 = "050"
/ 52 = "051"
/ 53 = "052"
/ 54 = "053"
/ 55 = "054"
/ 56 = "055"
/ 57 = "056"
/ 58 = "057"
/ 59 = "058"
/ 60 = "059"
/ 61 = "060"
/ 62 = "061"
/ 63 = "062"
/ 64 = "063"
/ 65 = "064"
/ 66 = "065"
/ 67 = "066"
/ 68 = "067"
/ 69 = "068"
/ 70 = "069"
/ 71 = "070"
/ 72 = "071"
/ 73 = "072"
/ 74 = "073"
/ 75 = "074"
/ 76 = "075"
/ 77 = "076"
/ 78 = "077"
/ 79 = "078"
/ 80 = "079"
/ 81 = "080"
/ 82 = "081"
/ 83 = "082"
/ 84 = "083"
/ 85 = "084"
/ 86 = "085"
/ 87 = "086"
/ 88 = "087"
/ 89 = "088"
/ 90 = "089"
/ 91 = "090"
/ 92 = "091"
/ 93 = "092"
/ 94 = "093"
/ 95 = "094"
/ 96 = "095"
/ 97 = "096"
/ 98 = "097"
/ 99 = "098"
/ 100 = "099"
/ 101 = "100"
</item>

<list xpositions>
/ items = (25%, 50%, 75%)
/ selectionrate = always
</list>

<values>
/ sameitem = 101
/ differentitem = 100
/ distance = 0
/ same1_x = 0%
/ same2_x = 0%
/ different_x = 0%
</values>

<text debug>
/ items = ("same item #<%values.sameitem%> | different item #<%values.differentitem%>~ndistance: <%values.distance%>")
/ erase = false
/ position = (50%, 10%)
/ size = (50%, 10%)
</text>

<expt Stair>
/ blocks = [1=StairWayUp]
</expt>