By ezgi - 11/13/2020
Hello Dave,
I'm having a problem with the short term memory bind test running on Inquisit 4. I tried to make some adjustments yet, I cannot use valid answer keys (E & I). Experiment is using all keyboard buttons as answer keys. Can you please help me with that? Also, another problem is this not all .jpg pictures are shown on the screen during the experiment. Only 2 pictures out of 4 are presented on the screen while a participant is supposed to give an answer. I have tried to solve these problems however I could not. I'd appreciate if you'd help me. Thank you very much, best wishes.
Ezgi.
P.S.: the script is attached.
|
By Dave - 11/13/2020
+xHello Dave, I'm having a problem with the short term memory bind test running on Inquisit 4. I tried to make some adjustments yet, I cannot use valid answer keys (E & I). Experiment is using all keyboard buttons as answer keys. Can you please help me with that? Also, another problem is this not all .jpg pictures are shown on the screen during the experiment. Only 2 pictures out of 4 are presented on the screen while a participant is supposed to give an answer. I have tried to solve these problems however I could not. I'd appreciate if you'd help me. Thank you very much, best wishes. Ezgi. P.S.: the script is attached. This is not vaiid Inquisit 4 syntax:
/ isvalidresponse = [(values.leftKey), (values.rightKey)]
As addressed many times before on here, the proper Inquisit 4 construct is
<trial example> ... / isvalidresponse = [trial.example.response == values.leftKey || trial.example.response == values.rightKey] ... </trial>
|
By ezgi - 11/13/2020
Thank you for your quick reply Dave. While waiting for your answer I changed it as written on forum. But it is still not working. Where did I go wrong?
|
By Dave - 11/13/2020
+xThank you for your quick reply Dave. While waiting for your answer I changed it as written on forum. But it is still not working. Where did I go wrong? <trial getReady> / stimulusframes = [1 = getReady] / trialduration = 3000 / isvalidresponse = [(values.leftKey), (values.rightKey)] / beginresponsetime = 3000 / errormessage = false / recorddata = false / inputdevice = keyboard </trial>
is still as wrong as it was before.
|
By ezgi - 11/13/2020
Thank you Dave, you are right. I fixed it but still the problem persists both with the response keys and missing pictures. I do not know where else I should change. Can you please help? I really appreciate it. Thanks
|
By Dave - 11/13/2020
+xThank you Dave, you are right. I fixed it but still the problem persists both with the response keys and missing pictures. I do not know where else I should change. Can you please help? I really appreciate it. Thanks <trial array2_binding_same> ... / isvalidresponse = [trial.array2_color_different.response == values.leftKey || trial.array2_color_different.response == values.rightKey] / iscorrectresponse = [trial.array2_color_different.response == values.sameKey] ... </trial>
Please double-check your syntax first. In the above, you'e looking for responses to <trial array2_color_different> in <trial array2_binding_same>. That obviously cannot work.
|
By ezgi - 11/13/2020
It was careless of me, thanks Dave
|
By Dave - 11/13/2020
+xIt was careless of me, thanks Dave Regarding the other issue, you have stray statement separators in your /ontrialbegin logic throughout. Those will cause problems. E.g.
<trial array2_shape_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ item.arrayStimuli.reset(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.array = 2; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.changeShapes; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue;; <--- HERE values.shape = values.shape1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue;; <--- HERE values.shape = values.shape2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue;; <--- HERE values.shape = values.shape3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue;; <--- HERE values.shape = values.shape4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_shape_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_shape_different.insertstimulusframe(picture.shape4, 1); };
]
Fix those and it should work.
|
By ezgi - 12/21/2020
Thanks Dave, you helped a lot. Since then I have been trying to solve some problems. However I failed. I think while adapting the script I went wrong somewhere. The colors, shapes or bindings are not changing in the task. I see the same stimuli in every trial. Short term memory binding test is not working as it is supposed to be. Can you please help me? Thank you very much Dave!
Best regards
<values> /arraySize = 4 /arrayPresentationTime = 1000 /blankPresentationTime = 900 /ITI = 1500 /picSize = 20%
/leftKey = 18 /rightKey = 23 /leftKey_label = "E" /rightKey_label = "I"
/sameKey = values.leftKey /sameKey_label = values.leftKey_label /sameKey_location = "sol" /differentKey = values.rightKey /differentKey_label = values.rightKey_label /differentKey_location = "sağ" </values> ************************************************************************************************************** ************************************************************************************************************** EDITABLE STIMULI: change editable stimuli here ************************************************************************************************************** **************************************************************************************************************
Note: These item lists store each shape in 8 different colors. The images can easily be exchanged for others.
<item Shape1> /1 = "Shape1_black.jpg" /2 = "Shape1_blue.jpg" /3 = "Shape1_green.jpg" /4 = "Shape1_pink.jpg" /5 = "Shape1_purple.jpg" /6 = "Shape1_red.jpg" /7 = "Shape1_turquoise.jpg" /8 = "Shape1_yellow.jpg" </item>
<item Shape2> /1 = "Shape2_black.jpg" /2 = "Shape2_blue.jpg" /3 = "Shape2_green.jpg" /4 = "Shape2_pink.jpg" /5 = "Shape2_purple.jpg" /6 = "Shape2_red.jpg" /7 = "Shape2_turquoise.jpg" /8 = "Shape2_yellow.jpg" </item>
<item Shape3> /1 = "Shape3_black.jpg" /2 = "Shape3_blue.jpg" /3 = "Shape3_green.jpg" /4 = "Shape3_pink.jpg" /5 = "Shape3_purple.jpg" /6 = "Shape3_red.jpg" /7 = "Shape3_turquoise.jpg" /8 = "Shape3_yellow.jpg" </item>
<item Shape4> /1 = "Shape4_black.jpg" /2 = "Shape4_blue.jpg" /3 = "Shape4_green.jpg" /4 = "Shape4_pink.jpg" /5 = "Shape4_purple.jpg" /6 = "Shape4_red.jpg" /7 = "Shape4_turquoise.jpg" /8 = "Shape4_yellow.jpg" </item>
<item Shape5> /1 = "Shape5_black.jpg" /2 = "Shape5_blue.jpg" /3 = "Shape5_green.jpg" /4 = "Shape5_pink.jpg" /5 = "Shape5_purple.jpg" /6 = "Shape5_red.jpg" /7 = "Shape5_turquoise.jpg" /8 = "Shape5_yellow.jpg" </item>
<item Shape6> /1 = "Shape6_black.jpg" /2 = "Shape6_blue.jpg" /3 = "Shape6_green.jpg" /4 = "Shape6_pink.jpg" /5 = "Shape6_purple.jpg" /6 = "Shape6_red.jpg" /7 = "Shape6_turquoise.jpg" /8 = "Shape6_yellow.jpg" </item>
<item Shape7> /1 = "Shape7_black.jpg" /2 = "Shape7_blue.jpg" /3 = "Shape7_green.jpg" /4 = "Shape7_pink.jpg" /5 = "Shape7_purple.jpg" /6 = "Shape7_red.jpg" /7 = "Shape7_turquoise.jpg" /8 = "Shape7_yellow.jpg" </item>
<item Shape8> /1 = "Shape8_black.jpg" /2 = "Shape8_blue.jpg" /3 = "Shape8_green.jpg" /4 = "Shape8_pink.jpg" /5 = "Shape8_purple.jpg" /6 = "Shape8_red.jpg" /7 = "Shape8_turquoise.jpg" /8 = "Shape8_yellow.jpg" </item>
************************************************************************************************************** ************************************************************************************************************** EDITABLE INSTRUCTIONS: change instructions here ************************************************************************************************************** ************************************************************************************************************** <instruct> / fontstyle = ("Arial", 2%, false, false, false, false, 5, 1) / txcolor = (black) /windowsize = (1280px, 800px) </instruct>
<htmlpage bindingIntro1> / file = "bindingintro1.htm" </htmlpage>
<htmlpage bindingIntro2> / file = "bindingintro2.htm" </htmlpage>
<htmlpage bindingIntro3> / file = "bindingintro3.htm" </htmlpage>
<htmlpage shapeIntro1> / file = "shapeintro1.htm" </htmlpage>
<htmlpage shapeIntro2> / file = "shapeintro2.htm" </htmlpage>
<htmlpage shapeIntro3> / file = "shapeintro3.htm" </htmlpage>
<htmlpage colorIntro1> / file = "colorintro1.htm" </htmlpage>
<htmlpage colorIntro2> / file = "colorintro2.htm" </htmlpage>
<htmlpage colorIntro3> / file = "colorintro3.htm" </htmlpage>
<page End> ^Testin sonuna geldiniz. ^^Teşekkürler! </page>
<text same> / onprepare = [ if (values.sameKey_location == "sol"){ text.same.hposition = 25%; } else { text.same.hposition = 75%; }; ] / vposition = 95% / items = ("aynı") / size = (25%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text different> / onprepare = [ if (values.differentKey_location == "sol"){ text.different.hposition = 25%; } else { text.different.hposition = 75%; }; ] / vposition = 95% / items = ("farklı") / size = (25%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text attention> / items = ("DİKKAT!") / position = (50%, 30%) / size = (80%, 8%) / fontstyle = ("Arial", 10%, true, false, false, false, 5, 1) </text>
<text attentionInstruct> / items = ("Yönerge şimdi değişecek.") / position = (50%, 50%) / size = (80%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text continue> / items = ("<Devam etmek için boşluk tuşuna basın>") / position = (50%, 90%) / size = (50%, 8%) / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) </text>
<trial attention> / stimulusframes = [1 = attention, attentionInstruct, continue] / isvalidresponse = [57] / recorddata = false / inputdevice = keyboard </trial>
******************************* General Helper Instructions ******************************
<text getReady> /items = ("Hazırlanın: ~n<%expressions.buttoninstruct3%>") / fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 1) / size = (80%, 40%) </text>
**************************************************************************************************** general instruction expressions: adjust the instruction text depending on device used to run script **************************************************************************************************** <expressions> /buttoninstruct1 = if (computer.platform) {" <%values.sameKey_location%> yanıt tuşuna";} else {"Klavyedeki <%values.sameKey_location%> '<%values.sameKey_label%>' tuşuna";} /buttoninstruct2 = if (computer.platform) {" <%values.differentKey_location%> yanıt tuşuna";} else {"Klavyedeki <%values.differentKey_location%> '<%values.differentKey_label%>' tuşuna";} /buttoninstruct3 = if (computer.platform) {"işaret parmaklarınızı sol ve sağ yanıt tuşlarına yerleştiriniz.";} else {"işaret parmaklarınızı '<%values.leftKey_label%>' ve '<%values.rightKey_label%>' tuşlarına yerleştiriniz.";}
</expressions>
************************************************************************************************************** ************************************************************************************************************** EDITABLE LISTS: change editable lists here ************************************************************************************************************** **************************************************************************************************************
************************************************************************************************************** !!!REMAINING CODE: Customize after careful consideration only!!! **************************************************************************************************************
************************************************************************************************************** ************************************************************************************************************** DEFAULTS ************************************************************************************************************** ************************************************************************************************************** script requires Inquisit 5.0.7.0 or higher
<defaults> /canvasaspectratio = (4,3) /minimumversion = "4.0.7.0" / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) /txbgcolor = white / txcolor = (0, 0, 0) </defaults>
************************************************************************************************************** ************************************************************************************************************** DATA ************************************************************************************************************** **************************************************************************************************************
Note: data file explanations under User Manual Information at the top
To change from one data file per participant to one data file for all participants, set /separatefiles = false
*********************** raw data file *********************** <data> / separatefiles = true / columns = [build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum, values.array, values.congruency, values.image1, values.image2, values.image3, values.image4, response, correct, latency, values.shape1, values.color1, values.location1, values.location1x, values.location1y, values.shape2, values.color2, values.location2, values.location2x, values.location2y, values.shape3, values.color3, values.location3, values.location3x, values.location3y, values.shape4, values.color4, values.location4, values.location4x, values.location4y, values.change1, values.change2, values.countDiffs] </data>
*********************** summary data file *********************** <summarydata> /columns = [script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, expressions.propCorrect_binding_same, expressions.meanRT_binding_same, expressions.SD_binding_same, expressions.propCorrect_binding_different, expressions.meanRT_binding_different, expressions.SD_binding_different, expressions.propCorrect_shape_same, expressions.meanRT_shape_same, expressions.SD_shape_same, expressions.propCorrect_shape_different, expressions.meanRT_shape_different, expressions.SD_shape_different, expressions.propCorrect_color_same, expressions.meanRT_color_same, expressions.SD_color_same, expressions.propCorrect_color_different, expressions.meanRT_color_different, expressions.SD_color_different] / separatefiles = true </summarydata>
************************************************************************************************************** ************************************************************************************************************** VALUES: automatically updated ************************************************************************************************************** ************************************************************************************************************** /completed: 0 = script was not completed; 1 = script was completed (all conditions run)
/congruency: 'same' vs. 'different' /array: 1 (array1) vs. 2 (array2) /shape1: stores the shape number (1-8) for object #1 /color1: stores the color (1-8) for object #1 /location1: stores the location (1-9) for object #1 /location1x: stores the x-coordinate for object #1 /location1y: stores the y-coordinate for object #1 (same for objects 2-4)
/location: stores the location of the current object /shape: stores the shape of the current object /color: stores the color of the current object
/change1: helper variable: stores the object number of the first object that will change in different trials /change2: helper variable: stores the object number of the second object that will change in different trials
/index: stores the current object index /helper: helper variable to switch colors in binding trials /image1-image4: store the current image files used for object1-object4 /previmage1-previmage4: helper variable that stores the images of display1 for the entire duration of the current trial sequence /countDiffs: counts the differences in the presented images (helper variable)
<values> /completed = 0
/congruency = 0 /array = 0 /shape1 = 0 /color1 = 0 /location1 = 0 /location1x = 0 /location1y = 0 /shape2 = 0 /color2 = 0 /location2 = 0 /location2x = 0 /location2y = 0 /shape3 = 0 /color3 = 0 /location3 = 0 /location3x = 0 /location3y = 0 /shape4 = 0 /color4 = 0 /location4 = 0 /location4x = 0 /location4y = 0
/location = 0 /shape = 0 /color = 0
/change1 = 0 /change2 = 0
/index = 0 /helper = 0
/image1 = "" /image2 = "" /image3 = "" /image4 = ""
/previmage1 = "" /previmage2 = "" /previmage3 = "" /previmage4 = ""
/countDiffs = 0
</values>
************************************************************************************************************** ************************************************************************************************************** EXPRESSIONS ************************************************************************************************************** **************************************************************************************************************
/propCorrect_binding_same: proportion correct responses of 'same' binding trials /meanRT_binding_same: mean latency (in ms) of correct responses in 'same' binding trials /SD_binding_same: Standard Deviation (in ms) of latencies to correct responses in 'same' binding trials /propCorrect_binding_different: proportion correct responses of 'different' binding trials /meanRT_binding_different: mean latency (in ms) of correct responses in 'different' binding trials /SD_binding_different: Standard Deviation (in ms) of latencies to correct responses in 'different' binding trials
/propCorrect_shape_same: proportion correct responses of 'same' shape trials /meanRT_shape_same: mean latency (in ms) of correct responses in 'same' shape trials /SD_shape_same: Standard Deviation (in ms) of latencies to correct responses in 'same' shape trials /propCorrect_shape_different: proportion correct responses of 'different' shape trials /meanRT_shape_different: mean latency (in ms) of correct responses in 'different' shape trials /SD_shape_different: Standard Deviation (in ms) of latencies to correct responses in 'different' shape trials
/propCorrect_color_same: proportion correct responses of 'same' color trials /meanRT_color_same: mean latency (in ms) of correct responses in 'same' color trials /SD_color_same: Standard Deviation (in ms) of latencies to correct responses in 'same' color trials /propCorrect_color_different: proportion correct responses of 'different' color trials /meanRT_color_different: mean latency (in ms) of correct responses in 'different' color trials /SD_color_different: Standard Deviation (in ms) of latencies to correct responses in 'different' color trials
<expressions> /propCorrect_binding_same = expressions.propcorrect_binding_same /meanRT_binding_same = expressions.meanrt_binding_same /SD_binding_same = expressions.sd_binding_same /propCorrect_binding_different = expressions.propcorrect_binding_different /meanRT_binding_different = expressions.meanRT_binding_different /SD_binding_different = expressions.sd_binding_different
/propCorrect_shape_same = expressions.propcorrect_shape_same /meanRT_shape_same = expressions.meanrt_shape_same /SD_shape_same = expressions.sd_shape_same /propCorrect_shape_different = expressions.propcorrect_shape_different /meanRT_shape_different = expressions.meanrt_shape_different /SD_shape_different =expressions.sd_shape_different
/propCorrect_color_same = expressions.propcorrect_color_same /meanRT_color_same = expressions.meanrt_color_same /SD_color_same = expressions.sd_color_same /propCorrect_color_different = expressions.propcorrect_color_different /meanRT_color_different = expressions.meanrt_color_different /SD_color_different = expressions.sd_color_different </expressions>
/createArray: function that fills item.arrayStimuli with the current trial shapes /swapColors: function that swaps the colors of 2 randomly selected trial shapes
<expressions> /createArray = {
if (values.shape == 1){ if (values.color == 1){ item.arrayStimuli.item = item.Shape1.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape1.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape1.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape1.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape1.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape1.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape1.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape1.item(8); }; } else if (values.shape == 2){ if (values.color == 1){ item.arrayStimuli.item = item.Shape2.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape2.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape2.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape2.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape2.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape2.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape2.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape2.item(8); }; } else if (values.shape == 3){ if (values.color == 1){ item.arrayStimuli.item = item.Shape3.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape3.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape3.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape3.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape3.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape3.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape3.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape3.item(8); }; } else if (values.shape == 4){ if (values.color == 1){ item.arrayStimuli.item = item.Shape4.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape4.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape4.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape4.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape4.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape4.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape4.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape4.item(8); }; } else if (values.shape == 5){ if (values.color == 1){ item.arrayStimuli.item = item.Shape5.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape5.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape5.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape5.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape5.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape5.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape5.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape5.item(8); }; } else if (values.shape == 6){ if (values.color == 1){ item.arrayStimuli.item = item.Shape6.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape6.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape6.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape6.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape6.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape6.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape6.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape6.item(8); }; } else if (values.shape == 7){ if (values.color == 1){ item.arrayStimuli.item = item.Shape7.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape7.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape7.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape7.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape7.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape7.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape7.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape7.item(8); }; } else if (values.shape == 8){ if (values.color == 1){ item.arrayStimuli.item = item.Shape8.item(1); } else if (values.color == 2){ item.arrayStimuli.item = item.Shape8.item(2); } else if (values.color == 3){ item.arrayStimuli.item = item.Shape8.item(3); } else if (values.color == 4){ item.arrayStimuli.item = item.Shape8.item(4); } else if (values.color == 5){ item.arrayStimuli.item = item.Shape8.item(5); } else if (values.color == 6){ item.arrayStimuli.item = item.Shape8.item(6); } else if (values.color == 7){ item.arrayStimuli.item = item.Shape8.item(7); } else if (values.color == 8){ item.arrayStimuli.item = item.Shape8.item(8); }; }; } /swapColors = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.helper = values.color1; values.color1 = values.color2; values.color2 = values.helper; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.helper = values.color1; values.color1 = values.color3; values.color3 = values.helper; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.helper = values.color1; values.color1 = values.color4; values.color4 = values.helper; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.helper = values.color2; values.color2 = values.color3; values.color3 = values.helper; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.helper = values.color2; values.color2 = values.color4; values.color4 = values.helper; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.helper = values.color3; values.color3 = values.color4; values.color4 = values.helper; }; } /changeShapes = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.shape1 = list.shape.nextvalue; values.shape2 = list.shape.nextvalue; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.shape1 = list.shape.nextvalue; values.shape3 = list.shape.nextvalue; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.shape1 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.shape2 = list.shape.nextvalue; values.shape3 = list.shape.nextvalue; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.shape2 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.shape3 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; }; } /changeColors = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.color1 = list.color.nextvalue; values.color2 = list.color.nextvalue; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.color1 = list.color.nextvalue; values.color3 = list.color.nextvalue; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.color1 = list.color.nextvalue; values.color4 = list.color.nextvalue; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.color2 = list.color.nextvalue; values.color3 = list.color.nextvalue; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.color2 = list.color.nextvalue; values.color4 = list.color.nextvalue; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.color3 = list.color.nextvalue; values.color4 = list.color.nextvalue; }; }
/countDiffs = { values.countDiffs = 0; if (values.image1 != values.previmage1){ values.countDiffs += 1; }; if (values.image2 != values.previmage2){ values.countDiffs += 1; }; if (values.image3 != values.previmage3){ values.countDiffs += 1; }; if (values.image4 != values.previmage4){ values.countDiffs += 1; }; } </expressions>
************************************************************************************************************** ************************************************************************************************************** INSTRUCTIONS ************************************************************************************************************** **************************************************************************************************************
************************************* General Helper Instruction Trials/Blocks *************************************
This trial is used when participants are asked to place their fingers on specific response buttons. On the touchscreen, this trial presents the (inactive) response buttons to the participants. <trial getReady> / stimulusframes = [1 = getReady] / trialduration = 3000 / isvalidresponse = [trial.getReady.response == values.leftKey || trial.getReady.response == values.rightKey] / beginresponsetime = 3000 / errormessage = false / recorddata = false / inputdevice = keyboard
</trial>
<port getReadyeeg> / port = LPT1 / subport = data / items = ("00000000") </port>
************************************************************************************************************** ************************************************************************************************************** STIMULI ************************************************************************************************************** **************************************************************************************************************
Note: contains the item list for the current array (is assembled dynamically for each trial) <item arrayStimuli> </item>
<picture shape1> / items = shape1 / select = 1 / position = (values.location1x, values.location1y) / size = (values.picSize, values.picSize)
</picture>
<port shape1eeg> / port = LPT1 / subport = data / items = ("00000001") </port>
<picture shape2> / items = shape2 / select = 2 / position = (values.location2x, values.location2y) / size = (values.picSize, values.picSize) </picture>
<port shape2eeeg> / port = LPT1 / subport = data / items = ("00000011") </port>
<picture shape3> / items = shape3 / select = 3 / position = (values.location3x, values.location3y) / size = (values.picSize, values.picSize) </picture>
<port shape3eeeg> / port = LPT1 / subport = data / items = ("00000111") </port>
<picture shape4> / items = shape4 / select = 4 / position = (values.location4x, values.location4y) / size = (values.picSize, values.picSize) </picture>
<port shape4eeeg> / port = LPT1 / subport = data / items = ("00001111") </port>
************************************************************************************************************** ************************************************************************************************************** LISTS ************************************************************************************************************** **************************************************************************************************************
Note: list.color selects the colors for the array objects (1-8 => itemnumbers) <list color> /items = (1, 2, 3, 4, 5, 6, 7, 8) / replace = false / selectionrate = always </list>
Note: list.shape selects the shapes for the array objects <list shape> /items = (1, 2, 3, 4, 5, 6, 7, 8) / replace = false / selectionrate = always </list>
Note: list.location randomly assigns 1 of 9 possible screen locations to each array object <list location> /items = (1, 2, 3, 4, 5, 6, 7, 8, 9) / replace = false / selectionrate = always / resetinterval = 0 </list>
Note: list.xpositions assigns the corresponding horizontal screen position to selected object location <list xpositions> /items = ( 25%, 50%, 75%, 25%, 50%, 75%, 25%, 50%, 75%) / selectionmode = values.location / selectionrate = always </list>
Note: list.ypositions assigns the corresponding vertical screen position to selected object location <list ypositions> /items = ( 25%, 25%, 25%, 50%, 50%, 50%, 75%, 75%, 75%) / selectionmode = values.location / selectionrate = always </list>
Note: list is dynamically updated with values 1-4 (depends on values.arraySize) It randomly selects the images that should be changed in changed trials <list changeItems> / replace = false / selectionrate = always </list>
************************************************* Data Lists: used for descriptive statistics store correct latencies/accuracy data fill up during runtime *************************************************
Note: list stores 1 = correct; 0 = error for each same shape trial <list accuracy_shape_same> </list>
Note: list stores 1 = correct; 0 = error for each different shape trial <list accuracy_shape_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_shape_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_shape_different> </list>
Note: list stores 1 = correct; 0 = error for each same color trial <list accuracy_color_same> </list>
Note: list stores 1 = correct; 0 = error for each different color trial <list accuracy_color_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_color_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_color_different> </list>
Note: list stores 1 = correct; 0 = error for each same binding trial <list accuracy_binding_same> </list>
Note: list stores 1 = correct; 0 = error for each different binding trial <list accuracy_binding_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_binding_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_binding_different> </list>
************************************************************************************************************** ************************************************************************************************************** TRIALS ************************************************************************************************************** **************************************************************************************************************
******************************************** Shape Trials ********************************************
Note: trial.array1_shape_same * resets necessary lists * randomly selects a color and assigns it to all picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_same
<trial array1_shape_same> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0; values.color = list.color.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = values.color; values.shape = values.shape1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = values.color; values.shape = values.shape2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = values.color; values.shape = values.shape3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = values.color; values.shape = values.shape4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_shape_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_shape_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_shape_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_shape_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_shape_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response * evaluates response <trial array2_shape_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2;
values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_shape_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_shape_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_shape_same.response == values.leftKey || trial.array2_shape_same.response == values.rightKey] / iscorrectresponse = [trial.array2_shape_same.response == values.sameKey] / ontrialend = [ trial.array2_shape_same.resetstimulusframes(); list.accuracy_shape_same.insertitem(trial.array2_shape_same.correct, 1); if (trial.array2_shape_same.correct){ list.latencies_shape_same.insertitem(trial.array2_shape_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_shape_different * resets necessary lists * randomly assigns the color 'black' to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_different
<trial array1_shape_different> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.color = list.color.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.shape = values.shape1; values.color1 = values.color; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.shape = values.shape2; values.index = 2; values.color2 = values.color; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.shape = values.shape3; values.index = 3; values.color3 = values.color; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.shape = values.shape4; values.index = 4; values.color4 = values.color; expressions.createArray; if (values.arraySize > 2){ trial.array1_shape_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_shape_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_shape_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_shape_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_shape_different * resets necessary lists * randomly selects the shapes that get exchanged for new shapes (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_shape_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ item.arrayStimuli.reset(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.array = 2; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.changeShapes; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_shape_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_shape_different.insertstimulusframe(picture.shape4, 1); };
] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_shape_different.response == values.leftKey || trial.array2_shape_different.response == values.rightKey] / iscorrectresponse = [trial.array2_shape_different.response == values.differentKey] / ontrialend = [ trial.array2_shape_different.resetstimulusframes(); list.accuracy_shape_different.insertitem(trial.array2_shape_different.correct, 1); if (trial.array2_shape_different.correct){ list.latencies_shape_different.insertitem(trial.array2_shape_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
******************************************** Color Trials ********************************************
Note: trial.array1_ * resets necessary lists * randomly selects the same shape for picture.shape1-picture.shape4 * randomly assigns color 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_same
<trial array1_color_same> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0; values.shape = list.shape.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = values.shape; values.color1 = list.color.nextvalue; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = values.shape; values.color2 = list.color.nextvalue; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = values.shape; values.color3 = list.color.nextvalue; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = values.shape; values.color4 = list.color.nextvalue; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_color_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_color_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_color_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_color_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_color_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response * evaluates response <trial array2_color_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_color_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_color_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_color_same.response == values.leftKey || trial.array2_color_same.response == values.rightKey] / iscorrectresponse = [trial.array2_color_same.response == values.sameKey] / ontrialend = [ trial.array2_color_same.resetstimulusframes(); list.accuracy_color_same.insertitem(trial.array2_color_same.correct, 1); if (trial.array2_color_same.correct){ list.latencies_color_same.insertitem(trial.array2_color_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_color_different * resets necessary lists * randomly assigns the same shape to picture.shape1-picture.shape4 * randomly assigns color 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_different
<trial array1_color_different> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.shape = list.shape.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = values.shape; values.color1 = list.color.nextvalue; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = values.shape; values.color2 = list.color.nextvalue; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = values.shape; values.color3 = list.color.nextvalue; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = values.shape; values.color4 = list.color.nextvalue; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_color_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_color_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_color_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_color_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_color_different * resets necessary lists * randomly selects the colors that get exchanged for new colors (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_color_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; item.arrayStimuli.reset(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.changeColors; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_color_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_color_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_color_different.response == values.leftKey || trial.array2_color_different.response == values.rightKey] / iscorrectresponse = [trial.array2_color_different.response == values.differentKey] / ontrialend = [ trial.array2_color_different.resetstimulusframes(); list.accuracy_color_different.insertitem(trial.array2_color_different.correct, 1); if (trial.array2_color_different.correct){ list.latencies_color_different.insertitem(trial.array2_color_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
******************************************** Binding Trials ********************************************
Note: trial.array1_binding_same * resets necessary lists * randomly assigns color1-8 to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_binding_same
<trial array1_binding_same> / ontrialbegin = [ list.color.reset(); list.shape.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0;
values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = list.color.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = list.color.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = list.color.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = list.color.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_binding_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_binding_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_binding_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_binding_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_binding_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response <trial array2_binding_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_binding_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_binding_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_binding_same.response == values.leftKey || trial.array2_binding_same.response == values.rightKey] / iscorrectresponse = [trial.array2_binding_same.response == values.sameKey] / ontrialend = [ trial.array2_binding_same.resetstimulusframes(); list.accuracy_binding_same.insertitem(trial.array2_binding_same.correct, 1); if (trial.array2_binding_same.correct){ list.latencies_binding_same.insertitem(trial.array2_binding_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_binding_different * resets necessary lists * randomly assigns color1-8 to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_binding_different <trial array1_binding_different> / ontrialbegin = [ list.color.reset(); list.shape.reset(); list.location.reset(); item.arrayStimuli.reset(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = list.color.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = list.color.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = list.color.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = list.color.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_binding_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_binding_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_binding_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_binding_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_binding_different * resets necessary lists * randomly selects the shapes that swap colors and arranges the swap (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_binding_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ item.arrayStimuli.reset(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.array = 2; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.swapColors; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_binding_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_binding_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_binding_different.response == values.leftKey || trial.array2_binding_different.response == values.rightKey] / iscorrectresponse = [trial.array2_binding_different.response == values.differentKey] / ontrialend = [ trial.array2_binding_different.resetstimulusframes(); list.accuracy_binding_different.insertitem(trial.array2_binding_different.correct, 1); if (trial.array2_binding_different.correct){ list.latencies_binding_different.insertitem(trial.array2_binding_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
************************************************************************************************************** ************************************************************************************************************** BLOCKS ************************************************************************************************************** **************************************************************************************************************
<block binding> / preinstructions = (bindingIntro1, bindingIntro2, bindingIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_binding_same,array1_binding_different)] </block>
<block color> / preinstructions = (colorIntro1, colorIntro2, colorIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_color_same, array1_color_different)]
</block>
<block shape> / preinstructions = (shapeIntro1, shapeIntro2, shapeIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_shape_same, array1_shape_different)] </block>
<block instructionChange> / trials = [1 = attention] </block>
************************************************************************************************************** ************************************************************************************************************** EXPERIMENT ************************************************************************************************************** **************************************************************************************************************
<expt> / subjects = (1 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = binding; 2 = instructionChange; 3 = color; 4 = instructionChange; 5 = shape; ] / postinstructions = (End) </expt>
<expt> / subjects = (2 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = binding; 2 = instructionChange; 3 = shape; 4 = instructionChange; 5 = color; ] / postinstructions = (End) </expt>
<expt> / subjects = (3 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = color; 2 = instructionChange; 3 = binding; 4 = instructionChange; 5 = shape; ] / postinstructions = (End) </expt>
<expt> / subjects = (4 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = color; 2 = instructionChange; 3 = shape; 4 = instructionChange; 5 = binding; ] / postinstructions = (End) </expt>
<expt> / subjects = (5 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = shape; 2 = instructionChange; 3 = binding; 4 = instructionChange; 5 = color; ] / postinstructions = (End) </expt>
<expt> / subjects = (6 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = shape; 2 = instructionChange; 3 = color; 4 = instructionChange; 5 = binding; ] / postinstructions = (End) </expt>
|
By Dave - 12/22/2020
You see the same stimuli on every trial because that is what you have instructed the script to do.
<picture shape1> / items = shape1 / select = 1 / position = (values.location1x, values.location1y) / size = (values.picSize, values.picSize) </picture>
<picture shape2> / items = shape2 / select = 2 / position = (values.location2x, values.location2y) / size = (values.picSize, values.picSize) </picture>
<picture shape3> / items = shape3 / select = 3 / position = (values.location3x, values.location3y) / size = (values.picSize, values.picSize) </picture>
<picture shape4> / items = shape4 / select = 4 / position = (values.location4x, values.location4y) / size = (values.picSize, values.picSize) </picture>
That is just completely wrong, and I have no idea why you changed that from the original. If you want to display the dynamically created array stimuli, then those <picture> elements obviously ought to use <item arrayStimuli> as their items.
There are also still parts of the script where you use Inquisit 5 syntax constructs that do not exist under Inquisit 4. For example, there is no item() member function for <item> elements in Inqusit 4. This will be the last revision I offer here. Inquisit 4 has serious limitations compared to Inquisit 5 and 6, trying to get things to work under Inquisit 4 that were never intended to run under Inquisit 4 is error prone and sometimes downright impossible; even if the procedure can somehow be made to run, it'll typically be considerably crippled. You may want to consider upgrading.
<values> /arraySize = 4 /arrayPresentationTime = 1000 /blankPresentationTime = 900 /ITI = 1500 /picSize = 20%
/leftKey = 18 /rightKey = 23 /leftKey_label = "E" /rightKey_label = "I"
/sameKey = values.leftKey /sameKey_label = values.leftKey_label /sameKey_location = "sol" /differentKey = values.rightKey /differentKey_label = values.rightKey_label /differentKey_location = "sağ" </values> ************************************************************************************************************** ************************************************************************************************************** EDITABLE STIMULI: change editable stimuli here ************************************************************************************************************** **************************************************************************************************************
Note: These item lists store each shape in 8 different colors. The images can easily be exchanged for others.
<item Shape1> /1 = "Shape1_black.jpg" /2 = "Shape1_blue.jpg" /3 = "Shape1_green.jpg" /4 = "Shape1_pink.jpg" /5 = "Shape1_purple.jpg" /6 = "Shape1_red.jpg" /7 = "Shape1_turquoise.jpg" /8 = "Shape1_yellow.jpg" </item>
<item Shape2> /1 = "Shape2_black.jpg" /2 = "Shape2_blue.jpg" /3 = "Shape2_green.jpg" /4 = "Shape2_pink.jpg" /5 = "Shape2_purple.jpg" /6 = "Shape2_red.jpg" /7 = "Shape2_turquoise.jpg" /8 = "Shape2_yellow.jpg" </item>
<item Shape3> /1 = "Shape3_black.jpg" /2 = "Shape3_blue.jpg" /3 = "Shape3_green.jpg" /4 = "Shape3_pink.jpg" /5 = "Shape3_purple.jpg" /6 = "Shape3_red.jpg" /7 = "Shape3_turquoise.jpg" /8 = "Shape3_yellow.jpg" </item>
<item Shape4> /1 = "Shape4_black.jpg" /2 = "Shape4_blue.jpg" /3 = "Shape4_green.jpg" /4 = "Shape4_pink.jpg" /5 = "Shape4_purple.jpg" /6 = "Shape4_red.jpg" /7 = "Shape4_turquoise.jpg" /8 = "Shape4_yellow.jpg" </item>
<item Shape5> /1 = "Shape5_black.jpg" /2 = "Shape5_blue.jpg" /3 = "Shape5_green.jpg" /4 = "Shape5_pink.jpg" /5 = "Shape5_purple.jpg" /6 = "Shape5_red.jpg" /7 = "Shape5_turquoise.jpg" /8 = "Shape5_yellow.jpg" </item>
<item Shape6> /1 = "Shape6_black.jpg" /2 = "Shape6_blue.jpg" /3 = "Shape6_green.jpg" /4 = "Shape6_pink.jpg" /5 = "Shape6_purple.jpg" /6 = "Shape6_red.jpg" /7 = "Shape6_turquoise.jpg" /8 = "Shape6_yellow.jpg" </item>
<item Shape7> /1 = "Shape7_black.jpg" /2 = "Shape7_blue.jpg" /3 = "Shape7_green.jpg" /4 = "Shape7_pink.jpg" /5 = "Shape7_purple.jpg" /6 = "Shape7_red.jpg" /7 = "Shape7_turquoise.jpg" /8 = "Shape7_yellow.jpg" </item>
<item Shape8> /1 = "Shape8_black.jpg" /2 = "Shape8_blue.jpg" /3 = "Shape8_green.jpg" /4 = "Shape8_pink.jpg" /5 = "Shape8_purple.jpg" /6 = "Shape8_red.jpg" /7 = "Shape8_turquoise.jpg" /8 = "Shape8_yellow.jpg" </item>
************************************************************************************************************** ************************************************************************************************************** EDITABLE INSTRUCTIONS: change instructions here ************************************************************************************************************** ************************************************************************************************************** <instruct> / fontstyle = ("Arial", 2%, false, false, false, false, 5, 1) / txcolor = (black) /windowsize = (1280px, 800px) </instruct>
<htmlpage bindingIntro1> / file = "bindingintro1.htm" </htmlpage>
<htmlpage bindingIntro2> / file = "bindingintro2.htm" </htmlpage>
<htmlpage bindingIntro3> / file = "bindingintro3.htm" </htmlpage>
<htmlpage shapeIntro1> / file = "shapeintro1.htm" </htmlpage>
<htmlpage shapeIntro2> / file = "shapeintro2.htm" </htmlpage>
<htmlpage shapeIntro3> / file = "shapeintro3.htm" </htmlpage>
<htmlpage colorIntro1> / file = "colorintro1.htm" </htmlpage>
<htmlpage colorIntro2> / file = "colorintro2.htm" </htmlpage>
<htmlpage colorIntro3> / file = "colorintro3.htm" </htmlpage>
<page End> ^Testin sonuna geldiniz. ^^Teşekkürler! </page>
<text same> / onprepare = [ if (values.sameKey_location == "sol"){ text.same.hposition = 25%; } else { text.same.hposition = 75%; }; ] / vposition = 95% / items = ("aynı") / size = (25%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text different> / onprepare = [ if (values.differentKey_location == "sol"){ text.different.hposition = 25%; } else { text.different.hposition = 75%; }; ] / vposition = 95% / items = ("farklı") / size = (25%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text attention> / items = ("DİKKAT!") / position = (50%, 30%) / size = (80%, 8%) / fontstyle = ("Arial", 10%, true, false, false, false, 5, 1) </text>
<text attentionInstruct> / items = ("Yönerge şimdi değişecek.") / position = (50%, 50%) / size = (80%, 8%) / fontstyle = ("Arial", 5%, false, false, false, false, 5, 1) </text>
<text continue> / items = ("<Devam etmek için boşluk tuşuna basın>") / position = (50%, 90%) / size = (50%, 8%) / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) </text>
<trial attention> / stimulusframes = [1 = attention, attentionInstruct, continue] / isvalidresponse = [57] / recorddata = false / inputdevice = keyboard </trial>
******************************* General Helper Instructions ******************************
<text getReady> /items = ("Hazırlanın: ~n<%expressions.buttoninstruct3%>") / fontstyle = ("Arial", 3.00%, false, false, false, false, 5, 1) / size = (80%, 40%) </text>
**************************************************************************************************** general instruction expressions: adjust the instruction text depending on device used to run script **************************************************************************************************** <expressions> /buttoninstruct1 = if (computer.platform) {" <%values.sameKey_location%> yanıt tuşuna";} else {"Klavyedeki <%values.sameKey_location%> '<%values.sameKey_label%>' tuşuna";} /buttoninstruct2 = if (computer.platform) {" <%values.differentKey_location%> yanıt tuşuna";} else {"Klavyedeki <%values.differentKey_location%> '<%values.differentKey_label%>' tuşuna";} /buttoninstruct3 = if (computer.platform) {"işaret parmaklarınızı sol ve sağ yanıt tuşlarına yerleştiriniz.";} else {"işaret parmaklarınızı '<%values.leftKey_label%>' ve '<%values.rightKey_label%>' tuşlarına yerleştiriniz.";}
</expressions>
************************************************************************************************************** ************************************************************************************************************** EDITABLE LISTS: change editable lists here ************************************************************************************************************** **************************************************************************************************************
************************************************************************************************************** !!!REMAINING CODE: Customize after careful consideration only!!! **************************************************************************************************************
************************************************************************************************************** ************************************************************************************************************** DEFAULTS ************************************************************************************************************** ************************************************************************************************************** script requires Inquisit 5.0.7.0 or higher
<defaults> /canvasaspectratio = (4,3) /minimumversion = "4.0.7.0" / fontstyle = ("Arial", 3%, false, false, false, false, 5, 1) /txbgcolor = white / txcolor = (0, 0, 0) </defaults>
************************************************************************************************************** ************************************************************************************************************** DATA ************************************************************************************************************** **************************************************************************************************************
Note: data file explanations under User Manual Information at the top
To change from one data file per participant to one data file for all participants, set /separatefiles = false
*********************** raw data file *********************** <data> / separatefiles = true / columns = [build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum, values.array, values.congruency, values.image1, values.image2, values.image3, values.image4, response, correct, latency, values.shape1, values.color1, values.location1, values.location1x, values.location1y, values.shape2, values.color2, values.location2, values.location2x, values.location2y, values.shape3, values.color3, values.location3, values.location3x, values.location3y, values.shape4, values.color4, values.location4, values.location4x, values.location4y, values.change1, values.change2, values.countDiffs] </data>
*********************** summary data file *********************** <summarydata> /columns = [script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, expressions.propCorrect_binding_same, expressions.meanRT_binding_same, expressions.SD_binding_same, expressions.propCorrect_binding_different, expressions.meanRT_binding_different, expressions.SD_binding_different, expressions.propCorrect_shape_same, expressions.meanRT_shape_same, expressions.SD_shape_same, expressions.propCorrect_shape_different, expressions.meanRT_shape_different, expressions.SD_shape_different, expressions.propCorrect_color_same, expressions.meanRT_color_same, expressions.SD_color_same, expressions.propCorrect_color_different, expressions.meanRT_color_different, expressions.SD_color_different] / separatefiles = true </summarydata>
************************************************************************************************************** ************************************************************************************************************** VALUES: automatically updated ************************************************************************************************************** ************************************************************************************************************** /completed: 0 = script was not completed; 1 = script was completed (all conditions run)
/congruency: 'same' vs. 'different' /array: 1 (array1) vs. 2 (array2) /shape1: stores the shape number (1-8) for object #1 /color1: stores the color (1-8) for object #1 /location1: stores the location (1-9) for object #1 /location1x: stores the x-coordinate for object #1 /location1y: stores the y-coordinate for object #1 (same for objects 2-4)
/location: stores the location of the current object /shape: stores the shape of the current object /color: stores the color of the current object
/change1: helper variable: stores the object number of the first object that will change in different trials /change2: helper variable: stores the object number of the second object that will change in different trials
/index: stores the current object index /helper: helper variable to switch colors in binding trials /image1-image4: store the current image files used for object1-object4 /previmage1-previmage4: helper variable that stores the images of display1 for the entire duration of the current trial sequence /countDiffs: counts the differences in the presented images (helper variable)
<values> /completed = 0
/congruency = 0 /array = 0 /shape1 = 0 /color1 = 0 /location1 = 0 /location1x = 0 /location1y = 0 /shape2 = 0 /color2 = 0 /location2 = 0 /location2x = 0 /location2y = 0 /shape3 = 0 /color3 = 0 /location3 = 0 /location3x = 0 /location3y = 0 /shape4 = 0 /color4 = 0 /location4 = 0 /location4x = 0 /location4y = 0
/location = 0 /shape = 0 /color = 0
/change1 = 0 /change2 = 0
/index = 0 /helper = 0
/image1 = "" /image2 = "" /image3 = "" /image4 = ""
/previmage1 = "" /previmage2 = "" /previmage3 = "" /previmage4 = ""
/countDiffs = 0
</values>
************************************************************************************************************** ************************************************************************************************************** EXPRESSIONS ************************************************************************************************************** **************************************************************************************************************
/propCorrect_binding_same: proportion correct responses of 'same' binding trials /meanRT_binding_same: mean latency (in ms) of correct responses in 'same' binding trials /SD_binding_same: Standard Deviation (in ms) of latencies to correct responses in 'same' binding trials /propCorrect_binding_different: proportion correct responses of 'different' binding trials /meanRT_binding_different: mean latency (in ms) of correct responses in 'different' binding trials /SD_binding_different: Standard Deviation (in ms) of latencies to correct responses in 'different' binding trials
/propCorrect_shape_same: proportion correct responses of 'same' shape trials /meanRT_shape_same: mean latency (in ms) of correct responses in 'same' shape trials /SD_shape_same: Standard Deviation (in ms) of latencies to correct responses in 'same' shape trials /propCorrect_shape_different: proportion correct responses of 'different' shape trials /meanRT_shape_different: mean latency (in ms) of correct responses in 'different' shape trials /SD_shape_different: Standard Deviation (in ms) of latencies to correct responses in 'different' shape trials
/propCorrect_color_same: proportion correct responses of 'same' color trials /meanRT_color_same: mean latency (in ms) of correct responses in 'same' color trials /SD_color_same: Standard Deviation (in ms) of latencies to correct responses in 'same' color trials /propCorrect_color_different: proportion correct responses of 'different' color trials /meanRT_color_different: mean latency (in ms) of correct responses in 'different' color trials /SD_color_different: Standard Deviation (in ms) of latencies to correct responses in 'different' color trials
/propCorrect_binding_same = expressions.propcorrect_binding_same <expressions> /propCorrect_binding_same = "" /meanRT_binding_same = "" /SD_binding_same = "" /propCorrect_binding_different = "" /meanRT_binding_different = "" /SD_binding_different = ""
/propCorrect_shape_same = "" /meanRT_shape_same = "" /SD_shape_same = "" /propCorrect_shape_different = "" /meanRT_shape_different = "" /SD_shape_different = ""
/propCorrect_color_same = "" /meanRT_color_same = "" /SD_color_same = "" /propCorrect_color_different = "" /meanRT_color_different = "" /SD_color_different = "" </expressions>
/createArray: function that fills item.arrayStimuli with the current trial shapes /swapColors: function that swaps the colors of 2 randomly selected trial shapes
<expressions> /createArray = {
if (values.shape == 1 && values.color == 1){ item.arrayStimuli.item = item.Shape1.item.1; } else if (values.shape == 1 && values.color == 2){ item.arrayStimuli.item = item.Shape1.item.2; } else if (values.shape == 1 && values.color == 3){ item.arrayStimuli.item = item.Shape1.item.3; } else if (values.shape == 1 && values.color == 4){ item.arrayStimuli.item = item.Shape1.item.4; } else if (values.shape == 1 && values.color == 5){ item.arrayStimuli.item = item.Shape1.item.5; } else if (values.shape == 1 && values.color == 6){ item.arrayStimuli.item = item.Shape1.item.6; } else if (values.shape == 1 && values.color == 7){ item.arrayStimuli.item = item.Shape1.item.7; } else if (values.shape == 1 && values.color == 8){ item.arrayStimuli.item = item.Shape1.item.8; }; if (values.shape == 2 && values.color == 1){ item.arrayStimuli.item = item.Shape2.item.1; } else if (values.shape == 2 && values.color == 2){ item.arrayStimuli.item = item.Shape2.item.2; } else if (values.shape == 2 && values.color == 3){ item.arrayStimuli.item = item.Shape2.item.3; } else if (values.shape == 2 && values.color == 4){ item.arrayStimuli.item = item.Shape2.item.4; } else if (values.shape == 2 && values.color == 5){ item.arrayStimuli.item = item.Shape2.item.5; } else if (values.shape == 2 && values.color == 6){ item.arrayStimuli.item = item.Shape2.item.6; } else if (values.shape == 2 && values.color == 7){ item.arrayStimuli.item = item.Shape2.item.7; } else if (values.shape == 2 && values.color == 8){ item.arrayStimuli.item = item.Shape2.item.8; }; if (values.shape == 3 && values.color == 1){ item.arrayStimuli.item = item.Shape3.item.1; } else if (values.shape == 3 && values.color == 2){ item.arrayStimuli.item = item.Shape3.item.2; } else if (values.shape == 3 && values.color == 3){ item.arrayStimuli.item = item.Shape3.item.3; } else if (values.shape == 3 && values.color == 4){ item.arrayStimuli.item = item.Shape3.item.4; } else if (values.shape == 3 && values.color == 5){ item.arrayStimuli.item = item.Shape3.item.5; } else if (values.shape == 3 && values.color == 6){ item.arrayStimuli.item = item.Shape3.item.6; } else if (values.shape == 3 && values.color == 7){ item.arrayStimuli.item = item.Shape3.item.7; } else if (values.shape == 3 && values.color == 8){ item.arrayStimuli.item = item.Shape3.item.8; }; if (values.shape == 4 && values.color == 1){ item.arrayStimuli.item = item.Shape4.item.1; } else if (values.shape == 4 && values.color == 2){ item.arrayStimuli.item = item.Shape4.item.2; } else if (values.shape == 4 && values.color == 3){ item.arrayStimuli.item = item.Shape4.item.3; } else if (values.shape == 4 && values.color == 4){ item.arrayStimuli.item = item.Shape4.item.4; } else if (values.shape == 4 && values.color == 5){ item.arrayStimuli.item = item.Shape4.item.5; } else if (values.shape == 4 && values.color == 6){ item.arrayStimuli.item = item.Shape4.item.6; } else if (values.shape == 4 && values.color == 7){ item.arrayStimuli.item = item.Shape4.item.7; } else if (values.shape == 4 && values.color == 8){ item.arrayStimuli.item = item.Shape4.item.8; }; if (values.shape == 5 && values.color == 1){ item.arrayStimuli.item = item.Shape5.item.1; } else if (values.shape == 5 && values.color == 2){ item.arrayStimuli.item = item.Shape5.item.2; } else if (values.shape == 5 && values.color == 3){ item.arrayStimuli.item = item.Shape5.item.3; } else if (values.shape == 5 && values.color == 4){ item.arrayStimuli.item = item.Shape5.item.4; } else if (values.shape == 5 && values.color == 5){ item.arrayStimuli.item = item.Shape5.item.5; } else if (values.shape == 5 && values.color == 6){ item.arrayStimuli.item = item.Shape5.item.6; } else if (values.shape == 5 && values.color == 7){ item.arrayStimuli.item = item.Shape5.item.7; } else if (values.shape == 5 && values.color == 8){ item.arrayStimuli.item = item.Shape5.item.8; }; if (values.shape == 6 && values.color == 1){ item.arrayStimuli.item = item.Shape6.item.1; } else if (values.shape == 6 && values.color == 2){ item.arrayStimuli.item = item.Shape6.item.2; } else if (values.shape == 6 && values.color == 3){ item.arrayStimuli.item = item.Shape6.item.3; } else if (values.shape == 6 && values.color == 4){ item.arrayStimuli.item = item.Shape6.item.4; } else if (values.shape == 6 && values.color == 5){ item.arrayStimuli.item = item.Shape6.item.5; } else if (values.shape == 6 && values.color == 6){ item.arrayStimuli.item = item.Shape6.item.6; } else if (values.shape == 6 && values.color == 7){ item.arrayStimuli.item = item.Shape6.item.7; } else if (values.shape == 6 && values.color == 8){ item.arrayStimuli.item = item.Shape6.item.8; }; if (values.shape == 7 && values.color == 1){ item.arrayStimuli.item = item.Shape7.item.1; } else if (values.shape == 7 && values.color == 2){ item.arrayStimuli.item = item.Shape7.item.2; } else if (values.shape == 7 && values.color == 3){ item.arrayStimuli.item = item.Shape7.item.3; } else if (values.shape == 7 && values.color == 4){ item.arrayStimuli.item = item.Shape7.item.4; } else if (values.shape == 7 && values.color == 5){ item.arrayStimuli.item = item.Shape7.item.5; } else if (values.shape == 7 && values.color == 6){ item.arrayStimuli.item = item.Shape7.item.6; } else if (values.shape == 7 && values.color == 7){ item.arrayStimuli.item = item.Shape7.item.7; } else if (values.shape == 7 && values.color == 8){ item.arrayStimuli.item = item.Shape7.item.8; }; if (values.shape == 8 && values.color == 1){ item.arrayStimuli.item = item.Shape8.item.1; } else if (values.shape == 8 && values.color == 2){ item.arrayStimuli.item = item.Shape8.item.2; } else if (values.shape == 8 && values.color == 3){ item.arrayStimuli.item = item.Shape8.item.3; } else if (values.shape == 8 && values.color == 4){ item.arrayStimuli.item = item.Shape8.item.4; } else if (values.shape == 8 && values.color == 5){ item.arrayStimuli.item = item.Shape8.item.5; } else if (values.shape == 8 && values.color == 6){ item.arrayStimuli.item = item.Shape8.item.6; } else if (values.shape == 8 && values.color == 7){ item.arrayStimuli.item = item.Shape8.item.7; } else if (values.shape == 8 && values.color == 8){ item.arrayStimuli.item = item.Shape8.item.8; }; } /swapColors = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.helper = values.color1; values.color1 = values.color2; values.color2 = values.helper; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.helper = values.color1; values.color1 = values.color3; values.color3 = values.helper; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.helper = values.color1; values.color1 = values.color4; values.color4 = values.helper; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.helper = values.color2; values.color2 = values.color3; values.color3 = values.helper; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.helper = values.color2; values.color2 = values.color4; values.color4 = values.helper; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.helper = values.color3; values.color3 = values.color4; values.color4 = values.helper; }; } /changeShapes = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.shape1 = list.shape.nextvalue; values.shape2 = list.shape.nextvalue; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.shape1 = list.shape.nextvalue; values.shape3 = list.shape.nextvalue; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.shape1 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.shape2 = list.shape.nextvalue; values.shape3 = list.shape.nextvalue; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.shape2 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.shape3 = list.shape.nextvalue; values.shape4 = list.shape.nextvalue; }; } /changeColors = { if ((values.change1 == 1 && values.change2 == 2) || (values.change2 == 1 && values.change1 == 2)){ values.color1 = list.color.nextvalue; values.color2 = list.color.nextvalue; } else if ((values.change1 == 1 && values.change2 == 3) || (values.change2 == 1 && values.change1 == 3)){ values.color1 = list.color.nextvalue; values.color3 = list.color.nextvalue; } else if ((values.change1 == 1 && values.change2 == 4) || (values.change2 == 1 && values.change1 == 4)){ values.color1 = list.color.nextvalue; values.color4 = list.color.nextvalue; } else if ((values.change1 == 2 && values.change2 == 3) || (values.change2 == 2 && values.change1 == 3)){ values.color2 = list.color.nextvalue; values.color3 = list.color.nextvalue; } else if ((values.change1 == 2 && values.change2 == 4) || (values.change2 == 2 && values.change1 == 4)){ values.color2 = list.color.nextvalue; values.color4 = list.color.nextvalue; } else if ((values.change1 == 3 && values.change2 == 4) || (values.change2 == 3 && values.change1 == 4)){ values.color3 = list.color.nextvalue; values.color4 = list.color.nextvalue; }; }
/countDiffs = { values.countDiffs = 0; if (values.image1 != values.previmage1){ values.countDiffs += 1; }; if (values.image2 != values.previmage2){ values.countDiffs += 1; }; if (values.image3 != values.previmage3){ values.countDiffs += 1; }; if (values.image4 != values.previmage4){ values.countDiffs += 1; }; } </expressions>
************************************************************************************************************** ************************************************************************************************************** INSTRUCTIONS ************************************************************************************************************** **************************************************************************************************************
************************************* General Helper Instruction Trials/Blocks *************************************
This trial is used when participants are asked to place their fingers on specific response buttons. On the touchscreen, this trial presents the (inactive) response buttons to the participants. <trial getReady> / stimulusframes = [1 = getReady] / trialduration = 3000 / isvalidresponse = [trial.getReady.response == values.leftKey || trial.getReady.response == values.rightKey] / beginresponsetime = 3000 / errormessage = false / recorddata = false / inputdevice = keyboard
</trial>
<port getReadyeeg> / port = LPT1 / subport = data / items = ("00000000") </port>
************************************************************************************************************** ************************************************************************************************************** STIMULI ************************************************************************************************************** **************************************************************************************************************
Note: contains the item list for the current array (is assembled dynamically for each trial) <item arrayStimuli> /1 = "Shape1_black.jpg" /2 = "Shape1_black.jpg" /3 = "Shape1_black.jpg" /4 = "Shape1_black.jpg" </item>
<values> / array1 = 1 / array2 = 2 / array3 = 3 / array4 = 4 </values>
<picture shape1> / items = arraystimuli / select = values.array1 / position = (values.location1x, values.location1y) / size = (values.picSize, values.picSize) </picture>
<port shape1eeg> / port = LPT1 / subport = data / items = ("00000001") </port>
<picture shape2> / items = arraystimuli / select = values.array2 / position = (values.location2x, values.location2y) / size = (values.picSize, values.picSize) </picture>
<port shape2eeeg> / port = LPT1 / subport = data / items = ("00000011") </port>
<picture shape3> / items = arraystimuli / select = values.array3 / position = (values.location3x, values.location3y) / size = (values.picSize, values.picSize) </picture>
<port shape3eeeg> / port = LPT1 / subport = data / items = ("00000111") </port>
<picture shape4> / items = arraystimuli / select = values.array4 / position = (values.location4x, values.location4y) / size = (values.picSize, values.picSize) </picture>
<port shape4eeeg> / port = LPT1 / subport = data / items = ("00001111") </port>
************************************************************************************************************** ************************************************************************************************************** LISTS ************************************************************************************************************** **************************************************************************************************************
Note: list.color selects the colors for the array objects (1-8 => itemnumbers) <list color> /items = (1, 2, 3, 4, 5, 6, 7, 8) / replace = false / selectionrate = always </list>
Note: list.shape selects the shapes for the array objects <list shape> /items = (1, 2, 3, 4, 5, 6, 7, 8) / replace = false / selectionrate = always </list>
Note: list.location randomly assigns 1 of 9 possible screen locations to each array object <list location> /items = (1, 2, 3, 4, 5, 6, 7, 8, 9) / replace = false / selectionrate = always / resetinterval = 0 </list>
Note: list.xpositions assigns the corresponding horizontal screen position to selected object location <list xpositions> /items = ( 25%, 50%, 75%, 25%, 50%, 75%, 25%, 50%, 75%) / selectionmode = values.location / selectionrate = always </list>
Note: list.ypositions assigns the corresponding vertical screen position to selected object location <list ypositions> /items = ( 25%, 25%, 25%, 50%, 50%, 50%, 75%, 75%, 75%) / selectionmode = values.location / selectionrate = always </list>
Note: list is dynamically updated with values 1-4 (depends on values.arraySize) It randomly selects the images that should be changed in changed trials <list changeItems> / replace = false / selectionrate = always </list>
************************************************* Data Lists: used for descriptive statistics store correct latencies/accuracy data fill up during runtime *************************************************
Note: list stores 1 = correct; 0 = error for each same shape trial <list accuracy_shape_same> </list>
Note: list stores 1 = correct; 0 = error for each different shape trial <list accuracy_shape_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_shape_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_shape_different> </list>
Note: list stores 1 = correct; 0 = error for each same color trial <list accuracy_color_same> </list>
Note: list stores 1 = correct; 0 = error for each different color trial <list accuracy_color_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_color_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_color_different> </list>
Note: list stores 1 = correct; 0 = error for each same binding trial <list accuracy_binding_same> </list>
Note: list stores 1 = correct; 0 = error for each different binding trial <list accuracy_binding_different> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_binding_same> </list>
Note: list stores the latency of correct responses for each relevant trial <list latencies_binding_different> </list>
************************************************************************************************************** ************************************************************************************************************** TRIALS ************************************************************************************************************** **************************************************************************************************************
******************************************** Shape Trials ********************************************
Note: trial.array1_shape_same * resets necessary lists * randomly selects a color and assigns it to all picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_same
<trial array1_shape_same> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0; values.color = list.color.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = values.color; values.shape = values.shape1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = values.color; values.shape = values.shape2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = values.color; values.shape = values.shape3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = values.color; values.shape = values.shape4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_shape_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_shape_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_shape_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_shape_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_shape_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response * evaluates response <trial array2_shape_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2;
values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_shape_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_shape_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_shape_same.response == values.leftKey || trial.array2_shape_same.response == values.rightKey] / iscorrectresponse = [trial.array2_shape_same.response == values.sameKey] / ontrialend = [ trial.array2_shape_same.resetstimulusframes(); list.accuracy_shape_same.insertitem(trial.array2_shape_same.correct, 1); if (trial.array2_shape_same.correct){ list.latencies_shape_same.insertitem(trial.array2_shape_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_shape_different * resets necessary lists * randomly assigns the color 'black' to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_different
<trial array1_shape_different> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.color = list.color.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.shape = values.shape1; values.color1 = values.color; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.shape = values.shape2; values.index = 2; values.color2 = values.color; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.shape = values.shape3; values.index = 3; values.color3 = values.color; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.shape = values.shape4; values.index = 4; values.color4 = values.color; expressions.createArray; if (values.arraySize > 2){ trial.array1_shape_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_shape_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_shape_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_shape_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_shape_different * resets necessary lists * randomly selects the shapes that get exchanged for new shapes (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_shape_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ item.arrayStimuli.clearitems(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.array = 2; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.changeShapes; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_shape_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_shape_different.insertstimulusframe(picture.shape4, 1); };
] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_shape_different.response == values.leftKey || trial.array2_shape_different.response == values.rightKey] / iscorrectresponse = [trial.array2_shape_different.response == values.differentKey] / ontrialend = [ trial.array2_shape_different.resetstimulusframes(); list.accuracy_shape_different.insertitem(trial.array2_shape_different.correct, 1); if (trial.array2_shape_different.correct){ list.latencies_shape_different.insertitem(trial.array2_shape_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
******************************************** Color Trials ********************************************
Note: trial.array1_ * resets necessary lists * randomly selects the same shape for picture.shape1-picture.shape4 * randomly assigns color 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_same
<trial array1_color_same> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0; values.shape = list.shape.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = values.shape; values.color1 = list.color.nextvalue; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = values.shape; values.color2 = list.color.nextvalue; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = values.shape; values.color3 = list.color.nextvalue; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = values.shape; values.color4 = list.color.nextvalue; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_color_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_color_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_color_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_color_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_color_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response * evaluates response <trial array2_color_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_color_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_color_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_color_same.response == values.leftKey || trial.array2_color_same.response == values.rightKey] / iscorrectresponse = [trial.array2_color_same.response == values.sameKey] / ontrialend = [ trial.array2_color_same.resetstimulusframes(); list.accuracy_color_same.insertitem(trial.array2_color_same.correct, 1); if (trial.array2_color_same.correct){ list.latencies_color_same.insertitem(trial.array2_color_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_color_different * resets necessary lists * randomly assigns the same shape to picture.shape1-picture.shape4 * randomly assigns color 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_shape_different
<trial array1_color_different> / ontrialbegin = [ list.shape.reset(); list.color.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.shape = list.shape.nextvalue; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = values.shape; values.color1 = list.color.nextvalue; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = values.shape; values.color2 = list.color.nextvalue; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = values.shape; values.color3 = list.color.nextvalue; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = values.shape; values.color4 = list.color.nextvalue; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_color_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_color_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_color_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_color_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_color_different * resets necessary lists * randomly selects the colors that get exchanged for new colors (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_color_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; item.arrayStimuli.clearitems(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.changeColors; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_color_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_color_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_color_different.response == values.leftKey || trial.array2_color_different.response == values.rightKey] / iscorrectresponse = [trial.array2_color_different.response == values.differentKey] / ontrialend = [ trial.array2_color_different.resetstimulusframes(); list.accuracy_color_different.insertitem(trial.array2_color_different.correct, 1); if (trial.array2_color_different.correct){ list.latencies_color_different.insertitem(trial.array2_color_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
******************************************** Binding Trials ********************************************
Note: trial.array1_binding_same * resets necessary lists * randomly assigns color1-8 to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_binding_same
<trial array1_binding_same> / ontrialbegin = [ list.color.reset(); list.shape.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "aynı"; values.array = 1; values.countDiffs = 0;
values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = list.color.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = list.color.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = list.color.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = list.color.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_binding_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_binding_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_binding_same.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_binding_same; ] / inputdevice = keyboard </trial>
Note: trial.array2_binding_same * resets location list * presents a blank screen for a predetermined amount of time * assigns new locations to picture.shape1-picture.shape4 * presents the same stimuli as in the trial before * waits for response <trial array2_binding_same> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ values.array = 2; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; if (values.arraySize > 2){ trial.array2_binding_same.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_binding_same.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_binding_same.response == values.leftKey || trial.array2_binding_same.response == values.rightKey] / iscorrectresponse = [trial.array2_binding_same.response == values.sameKey] / ontrialend = [ trial.array2_binding_same.resetstimulusframes(); list.accuracy_binding_same.insertitem(trial.array2_binding_same.correct, 1); if (trial.array2_binding_same.correct){ list.latencies_binding_same.insertitem(trial.array2_binding_same.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
Note: trial.array1_binding_different * resets necessary lists * randomly assigns color1-8 to picture.shape1-picture.shape4 * randomly assigns shape form 1 - 8 to picture.shape1-picture.shape4 * randomly assigns 1 of 9 screen locations to picture.shape1-picture.shape4 * assembles a dynamic item list item.arrayStimuli that stores the 4 selected images * presents the items stored in item.arrayStimuli for a predetermined amount of time * calls trial.array2_binding_different <trial array1_binding_different> / ontrialbegin = [ list.color.reset(); list.shape.reset(); list.location.reset(); item.arrayStimuli.clearitems(); values.change1 = 0; values.change2 = 0; values.congruency = "farklı"; values.array = 1; values.countDiffs = 0; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape1 = list.shape.nextvalue; values.color1 = list.color.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray; values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape2 = list.shape.nextvalue; values.color2 = list.color.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray; values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape3 = list.shape.nextvalue; values.color3 = list.color.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray; values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape4 = list.shape.nextvalue; values.color4 = list.color.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array1_binding_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array1_binding_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulustimes = [0 = shape1, shape2] / timeout = values.arrayPresentationTime / ontrialend = [ trial.array1_binding_different.resetstimulusframes(); values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; values.previmage1 = values.image1; values.previmage2 = values.image2; values.previmage3 = values.image3; values.previmage4 = values.image4; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; ] / branch = [ trial.array2_binding_different; ] / inputdevice = keyboard </trial>
Note: trial.array2_binding_different * resets necessary lists * randomly selects the shapes that swap colors and arranges the swap (selection pool is updated to reflect the number of array objects) * reassembles dynamic item list 'item.arrayStimuli' with the changed list of items * presents the items stored in 'item.arrayStimuli' until response occurs * evaluates accuracy of response <trial array2_binding_different> / pretrialpause = values.blankPresentationTime / ontrialbegin = [ item.arrayStimuli.clearitems(); list.changeItems.reset(); list.changeItems.poolsize = values.arraySize; values.array = 2; values.change1 = list.changeItems.nextindex; values.change2 = list.changeItems.nextindex; expressions.swapColors; values.location1 = list.location.nextvalue; values.location = values.location1; values.location1x = list.xpositions.nextvalue; values.location1y = list.ypositions.nextvalue; values.shape = values.shape1; values.color = values.color1; values.index = 1; expressions.createArray;
values.location2 = list.location.nextvalue; values.location = values.location2; values.location2x = list.xpositions.nextvalue; values.location2y = list.ypositions.nextvalue; values.shape = values.shape2; values.color = values.color2; values.index = 2; expressions.createArray;
values.location3 = list.location.nextvalue; values.location = values.location3; values.location3x = list.xpositions.nextvalue; values.location3y = list.ypositions.nextvalue; values.shape = values.shape3; values.color = values.color3; values.index = 3; expressions.createArray;
values.location4 = list.location.nextvalue; values.location = values.location4; values.location4x = list.xpositions.nextvalue; values.location4y = list.ypositions.nextvalue; values.shape = values.shape4; values.color = values.color4; values.index = 4; expressions.createArray; if (values.arraySize > 2){ trial.array2_binding_different.insertstimulusframe(picture.shape3, 1); }; if (values.arraySize > 3){ trial.array2_binding_different.insertstimulusframe(picture.shape4, 1); }; ] / stimulusframes = [1 = shape1, shape2, same, different] / isvalidresponse = [trial.array2_binding_different.response == values.leftKey || trial.array2_binding_different.response == values.rightKey] / iscorrectresponse = [trial.array2_binding_different.response == values.differentKey] / ontrialend = [ trial.array2_binding_different.resetstimulusframes(); list.accuracy_binding_different.insertitem(trial.array2_binding_different.correct, 1); if (trial.array2_binding_different.correct){ list.latencies_binding_different.insertitem(trial.array2_binding_different.latency, 1); }; values.image1 = picture.shape1.currentitem; values.image2 = picture.shape2.currentitem; values.image3 = picture.shape3.currentitem; values.image4 = picture.shape4.currentitem; if (values.arraySize < 3){ values.image3=""; }; if (values.arraySize < 4){ values.image4=""; }; expressions.countDiffs; ] / posttrialpause = values.ITI / inputdevice = keyboard </trial>
************************************************************************************************************** ************************************************************************************************************** BLOCKS ************************************************************************************************************** **************************************************************************************************************
<block binding> / preinstructions = (bindingIntro1, bindingIntro2, bindingIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_binding_same,array1_binding_different)] </block>
<block color> / preinstructions = (colorIntro1, colorIntro2, colorIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_color_same, array1_color_different)]
</block>
<block shape> / preinstructions = (shapeIntro1, shapeIntro2, shapeIntro3) / trials = [1 = getReady; 2-49 = noreplace(array1_shape_same, array1_shape_different)] </block>
<block instructionChange> / trials = [1 = attention] </block>
************************************************************************************************************** ************************************************************************************************************** EXPERIMENT ************************************************************************************************************** **************************************************************************************************************
<expt> / subjects = (1 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = binding; 2 = instructionChange; 3 = color; 4 = instructionChange; 5 = shape; ] / postinstructions = (End) </expt>
<expt> / subjects = (2 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = binding; 2 = instructionChange; 3 = shape; 4 = instructionChange; 5 = color; ] / postinstructions = (End) </expt>
<expt> / subjects = (3 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = color; 2 = instructionChange; 3 = binding; 4 = instructionChange; 5 = shape; ] / postinstructions = (End) </expt>
<expt> / subjects = (4 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = color; 2 = instructionChange; 3 = shape; 4 = instructionChange; 5 = binding; ] / postinstructions = (End) </expt>
<expt> / subjects = (5 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = shape; 2 = instructionChange; 3 = binding; 4 = instructionChange; 5 = color; ] / postinstructions = (End) </expt>
<expt> / subjects = (6 of 6) / groupassignment = groupnumber / onexptend = [ values.completed = 1; ] / blocks = [ 1 = shape; 2 = instructionChange; 3 = color; 4 = instructionChange; 5 = binding; ] / postinstructions = (End) </expt>
|
By ezgi - 12/24/2020
Hello Dave,
I really appreciate your help. I can't thank you enough. Actually we are using Inquisit 5, but since I will do EEG research in my doctoral thesis, I need to run this experiment properly if it is possible. We have purchased Inquisit 5 but because of the parallel port issue we cannot change the computer which is compatible with Inquisit 4. That is why I am desperately trying to write MID task on Inquisit 4 to use with EEG. That is why I am struggling. Thanks to you, a friend of mine had adapted the MID task to the Inquisit 4 and EEG in previous years. That's why I bother you over and over again. I thought I could modify the script with your help. But do you think we can't do this because of the task? What would you suggest? I am very sorry for taking your time, but since my thesis is in question, I have to determine a path.
Thank you very much, I wish you healthy days.
|
By Dave - 12/24/2020
+xHello Dave, I really appreciate your help. I can't thank you enough. Actually we are using Inquisit 5, but since I will do EEG research in my doctoral thesis, I need to run this experiment properly if it is possible. We have purchased Inquisit 5 but because of the parallel port issue we cannot change the computer which is compatible with Inquisit 4. That is why I am desperately trying to write MID task on Inquisit 4 to use with EEG. That is why I am struggling. Thanks to you, a friend of mine had adapted the MID task to the Inquisit 4 and EEG in previous years. That's why I bother you over and over again. I thought I could modify the script with your help. But do you think we can't do this because of the task? What would you suggest? I am very sorry for taking your time, but since my thesis is in question, I have to determine a path. Thank you very much, I wish you healthy days. (1) I don't understand what prevents you from using Inquisit 5 or which parallel port issue you are referring to. (2) It's not clear to me which other questions, if any, you're asking. I've provided you with a version in my previous reply that fixes the issues you pointed out. I do not know whether there are any other issues you did not mention -- you're in a better position to figure that out than I am.
|
By ezgi - 12/24/2020
Thank you very much for your reply Dave. The computer that we are using for EEG recording is not actually new. Because of the software it only runs Inquisit 4. That is why I am trying to modify the task. And the last problem that I asked for your help in the previous message, was about the stimulus set. I did what you suggested but this time although the experiment started shapes did not show up on the screen and the experiment stopped. According to the last script that I sent you, shapes show up but they do not change trial to trial. The colors, shapes and bindings should change however when I launch the experiment, I only see the same shapes. I could not find out how to fix this problem. I think after solving this problem, it will run properly. Sorry to bother you that much. I appreciate your help.
Merry Christmas!
|
By Dave - 12/24/2020
+xThank you very much for your reply Dave. The computer that we are using for EEG recording is not actually new. Because of the software it only runs Inquisit 4. That is why I am trying to modify the task. And the last problem that I asked for your help in the previous message, was about the stimulus set. I did what you suggested but this time although the experiment started shapes did not show up on the screen and the experiment stopped. According to the last script that I sent you, shapes show up but they do not change trial to trial. The colors, shapes and bindings should change however when I launch the experiment, I only see the same shapes. I could not find out how to fix this problem. I think after solving this problem, it will run properly. Sorry to bother you that much. I appreciate your help. Merry Christmas! There is full, fixed script code in my previous reply, here: https://www.millisecond.com/forums/FindPost30416.aspx
That code works under Inquisit 4, I've tried. The shapes show up. They change from trial to trial.
|
By ezgi - 12/24/2020
Thank you very much Dave:) It is working now. Wish you a healthy happy new year!!
Best regards,
|
|