**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************
/congruentStim = "heart"
/incongruentStim = "flower"
/minPracticeACC = 0.75
/maxPracticeRepeats = 3
/numberPracticeTrials = 8
/numberTestTrials = 20
/stimDuration_simpleBlock = 5000
/stimDuration_mixedBlock = 6000
/iti = 1000
/picSize = 10%
/fixationSize = 15%
/left_x = 30%
/right_x = 70%
/leftkey = 30
/leftkey_label = "A"
/rightkey = 38
/rightkey_label = "L"
**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ txcolor = black
/ screencolor = white
/ windowsize = (100%, 100%)
/ items = ("Welcome!")
/ fontstyle = ("Arial", 10%, true, false, false, false, 5, 1)
/ position = (50%, 10%)
/ vjustify = center
/ size = (80%, 12%)
/ items = ("We will you show you hearts!")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 25%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("The hearts can appear on the left or the right")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 75%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("press one of the two buttons now")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 90%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("press the '<%parameters.leftkey_label%>' button now")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 90%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("press the '<%parameters.rightkey_label%>' button now")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 90%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("If you see the heart:
Press the button on the same side as the heart")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 15%)
/ vjustify = center
/ size = (80%, 20%)
/ items = ("If you see the heart on this side: press this button")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 75%)
/ vjustify = center
/ size = (80%, 20%)
/ items = ("Are you ready to play?
~n~nRemember:
Press the button on the same side as you see the heart.
Try to be fast to press the correct button.
~n~nPress one of the two buttons to start practice")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ size = (80%, 60%)
/ items = ("Let's change the game!")
/ fontstyle = ("Arial", 8%, true, false, false, false, 5, 1)
/ position = (50%, 10%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("We will you show you flowers now!")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 25%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("The flowers can appear on the left or the right")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 75%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("If you see the flower:
Press the button on the OPPOSITE side of the flower")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 15%)
/ vjustify = center
/ size = (80%, 20%)
/ items = ("If you see the flower on this side: press that button over there")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 75%)
/ vjustify = center
/ size = (80%, 20%)
/ items = ("Are you ready to play?
~n~nRemember:
Press the button on the OPPOSITE side of the flower.
Try to be fast to press the correct button.
~n~nPress one of the two buttons to start practice")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ size = (80%, 60%)
/ items = ("Let's put it all together!")
/ fontstyle = ("Arial", 8%, true, false, false, false, 5, 1)
/ position = (50%, 10%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("We will you show you hearts AND flowers now!")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 25%)
/ vjustify = center
/ size = (80%, 12%)
/ items = ("The flowers and hearts can appear on the left or the right")
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
/ position = (50%, 75%)
/ vjustify = center
/ size = (80%, 8%)
/ items = ("Are you ready to play?
~n~nRemember:
Press the button on the SAME side as the HEART
Press the button on the OPPOSITE side of the FLOWER.
Try to be fast to press the correct button.
~n~nPress one of the two buttons to start practice")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 50%)
/ vjustify = center
/ size = (90%, 80%)
/ items = ("press the button on the same side")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 65%)
/ vjustify = center
/ size = (80%, 10%)
/items = ("heart_press.wav")
/ playthrough = true
/ items = ("press the button on the opposite side")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 65%)
/ vjustify = center
/ size = (80%, 10%)
/items = ("flower_press_overthere.wav")
/ playthrough = true
/ items = ("goodjob.wav")
/ playthrough = true
/ items = ("Try to be faster next time")
/ position = (50%, 30%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ size = (80%, 10%)
/ vjustify = center
/ txcolor = blue
/items = ("Let's play some more!
But this time the computer will not tell you whether you were right.")
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ position = (50%, 15%)
/ size = (80%, 30%)
/ vjustify = center
/items = ("Press one of the two buttons to start")
/ fontstyle = ("Arial", 4%, true, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 30%)
/ vjustify = center
/ items = ("Thank you!")
/ fontstyle = ("Arial", 8%, true, false, false, false, 5, 1)
/ position = (50%, 50%)
/ size = (80%, 80%)
/ vjustify = center
/ items = ("")
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
**************************************************************************************************************
**************************************************************************************************************
INCLUDE: the following helper scripts include visual/text stimuli specific to
devices with and without external keyboards
**************************************************************************************************************
**************************************************************************************************************
/ precondition = [
computer.haskeyboard
]
/ file = "heartsandflowers_instructions_keyboard.iqx"
/ precondition = [
!computer.haskeyboard
]
/ file = "heartsandflowers_instructions_touchscreen.iqx"
**************************************************************************************************************
!!!REMAINING CODE: Customize after careful consideration only!!!
**************************************************************************************************************
**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 5.0.11.0 or higher
/canvasaspectratio = (4,3)
/minimumversion = "5.0.11.0"
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = white
/ txcolor = black
/ screencolor = white
**************************************************************************************************************
**************************************************************************************************************
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
***********************
/ separatefiles = true
/ columns = (build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum,
values.condition, values.position, values.congruence, values.prevCongruence, values.switch, values.countSwitch,
stimulusitem, response, correct, latency, list.ACC_practice.mean, values.countCongruent, values.countIncongruent, values.countMixed)
***********************
summary data file
***********************
/columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform,
values.completed,
values.countCongruent, values.practiceACC_congruent, values.passCongruent,
values.countIncongruent, values.practiceACC_incongruent, values.passInCongruent,
values.countMixed, values.practiceACC_mixed, values.passMixed,
expressions.propCorrect, expressions.meanRT,
expressions.propCorrect_congruent, expressions.meanRT_congruent,
expressions.propCorrect_incongruent, expressions.meanRT_incongruent,
expressions.propCorrect_mixed, expressions.meanRT_mixed,
expressions.propCorrect_switch, expressions.meanRT_switch,
expressions.propCorrect_nonswitch, expressions.meanRT_nonswitch,
)
/ separatefiles = true
**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************
/completed: 0 = script was not completed; 1 = script was completed (all conditions run)
/condition: 1 = congruent-only; 2 = incongruent-only; 3 = mixed
/congruence: 1 = congruent trial; 2 = incongruent trial
/stimDuration: the current stim duration (= response timeout) in ms
/position: 1 = stimulus is positioned on the left; 2 = stimulus is positioned on the right
/prevCongruence: the congruence of the previous trial (important for mixed condition only)
/switch: 1 = switch trial (trial type changed from congruent to incongruent or vice versa);
2 = nonswitch trial (trial type stayed the same)
/countSwitch: counts the number of switch trials per block
/selectTaskInstructions: helper variable to select the correct task instructions/reminder
/passCongruent: 1 = participant successfully passed the congruent practice; 0 = otherwise
/passInCongruent: 1 = participant successfully passed the incongruent practice; 0 = otherwise
/passMixed: 1 = participant successfully passed the mixed practice; 0 = otherwise
/practiceACC_congruent: the highest proportion correct in one of the congruent practice blocks (if not run, propCorrect = 0)
/practiceACC_incongruent: the highest proportion correct in one of the incongruent practice blocks (if not run, propCorrect = 0)
/practiceACC_mixed: the highest proportion correct in one of the mixed practice blocks (if not run, propCorrect = 0)
/countCongruent: counts the number of congruent practice blocks run
/countIncongruent: counts the number of incongruent practice blocks run
/countMixed: counts the number of mixed practice blocks run
/completed = 0
/condition = 1
/congruence = 0
/stimDuration = 0
/position = 0
/prevCongruence = 0
/switch = 0
/countSwitch = 0
/selectTaskInstructions = 3
/passCongruent = 0
/passInCongruent = 0
/passMixed = 0
/practiceACC_congruent = 0
/practiceACC_incongruent = 0
/practiceACC_mixed = 0
/countCongruent = 0
/countIncongruent = 0
/countMixed = 0
**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/propCorrect: proportion correct across all test trials
/meanRT: mean latency of correct responses across all test trials
/propCorrect_congruent: proportion correct across congruent-only test trials
/meanRT_congruent: mean latency of correct responses across congruent-only test trials
/propCorrect_incongruent: proportion correct across incongruent-only test trials
/meanRT_incongruent: mean latency of correct responses across incongruent-only test trials
/propCorrect_mixed: proportion correct across test trials in mixed block
/meanRT_mixed: mean latency of correct responses across test trials in mixed block
/propCorrect_switch: proportion correct across switch trials in mixed block
/meanRT_switch: mean latency of correct responses across switch test trials in mixed block
switch trial: switch from congruent to incongruent trial and vice versa
/propCorrect_nonswitch: proportion correct across nonswitch trials in mixed block
/meanRT_nonswitch: mean latency of correct responses across nonswitch test trials in mixed block
/propCorrect = list.ACC.mean
/meanRT = list.RT.mean
/propCorrect_congruent = list.ACC_congruent.mean
/meanRT_congruent = list.RT_congruent.mean
/propCorrect_incongruent = list.ACC_incongruent.mean
/meanRT_incongruent = list.RT_incongruent.mean
/propCorrect_mixed = list.ACC_mixed.mean
/meanRT_mixed = list.RT_mixed.mean
/propCorrect_switch = list.ACC_switch.mean
/meanRT_switch = list.RT_switch.mean
/propCorrect_nonswitch = list.ACC_nonswitch.mean
/meanRT_nonswitch = list.RT_nonswitch.mean
**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************
/ stimulustimes = [
0 = welcome, fingerplacement, fingerplacementPic;
3000 = continueLeft, fingerplacementleft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ beginresponsetime = 3000
/ recorddata = false
/ stimulustimes = [
0 = intro_congruent, heartmoving;
2000 = intro2_congruent;
]
/ timeout = 10000
/ recorddata = false
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (noresponse)
/ response = correct
/ stimulustimes = [
0 = continueRight, fingerplacementright;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = congruentTask, leftheart;
2000 = congruentTask2, pressleft_congruent;
5000 = continueLeft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = congruentTask, rightheart;
2000 = congruentTask2, pressright_congruent;
5000 = continueRight;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = PracticeStart_congruent, heart;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ recorddata = false
/ stimulustimes = [
0 = ChangeGame, fingerplacement, fingerplacementPic;
3000 = continueLeft, fingerplacementleft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ beginresponsetime = 3000
/ recorddata = false
/ stimulustimes = [
0 = intro_incongruent, flowermoving;
2000 = intro2_incongruent;
]
/ timeout = 10000
/ recorddata = false
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (noresponse)
/ response = correct
/ stimulustimes = [
0 = continueRight, fingerplacementright;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = incongruentTask, rightflower;
2000 = incongruentTask2, pressleft_incongruent;
5000 = continueLeft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = incongruentTask, leftflower;
2000 = incongruentTask2, pressright_incongruent;
5000 = continueRight;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = PracticeStart_incongruent, flower;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ recorddata = false
/ stimulustimes = [
0 = MixedGame, fingerplacement, fingerplacementPic;
3000 = continueLeft, fingerplacementleft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ beginresponsetime = 3000
/ recorddata = false
/ stimulustimes = [
0 = intro_mixed, mixedmoving;
2000 = intro2_mixed;
]
/ timeout = 10000
/ recorddata = false
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (noresponse)
/ response = correct
/ stimulustimes = [
0 = continueRight, fingerplacementright;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = congruentTask, leftheart;
2000 = congruentTask2, pressleft_congruent;
5000 = continueLeft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = congruentTask, rightheart;
2000 = congruentTask2, pressright_congruent;
5000 = continueRight;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = incongruentTask, rightflower;
2000 = incongruentTask2, pressleft_incongruent;
5000 = continueLeft;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.leftkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = incongruentTask, leftflower;
2000 = incongruentTask2, pressright_incongruent;
5000 = continueRight;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (parameters.rightkey)
/ response = correct
/ recorddata = false
/ stimulustimes = [
0 = PracticeStart_mixed, heartflower;
]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ recorddata = false
/ stimulusframes = [1 = teststart, fingerplacementPic, teststart2]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ recorddata = false
/ stimulusframes = [1 = finish, Feedback, exit]
/ validresponse = (57)
/ recorddata = false
**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************
/ items = ("+")
/ fontstyle = ("Arial", parameters.fixationSize, false, false, false, false, 5, 1)
/ position = (50%, 50%)
/ erase = false
/ vjustify = center
**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************
Note: list randomly (without replacement) selects 1 = left or 2 = right position for congruent trials in a block.
The poolsize is set under the relevant block.
Default:
Congruent block - poolsize is 20 (10 hearts on the left, 10 on the right)
Mixed block - poolsize is 10 (5 hearts on the left, 5 on the right)
/ items = (1, 2)
/ replace = false
/ resetinterval = 0
Note: list randomly (without replacement) selects 1 = left or 2 = right position for congruent trials in a block.
The poolsize is set under the relevant block.
Default:
Congruent block - poolsize is 20 (10 flowers on the left, 10 on the right)
Mixed block - poolsize is 10 (5 flowers on the left, 5 on the right)
/ items = (1, 2)
/ replace = false
/ resetinterval = 0
Note: list randomly (without replacement) selects 1 (congruent) and 2 (incongruent) trials for the mixed block
The poolsize is set under block.
Default: script runs 10 congruent and 10 incongruent trials
/ items = (1, 2)
/ replace = false
/ resetinterval = 0
/ maxrunsize = 3
*************************************************
Data Lists: used for descriptive statistics
store correct latencies/accuracy data
fill up during runtime
*************************************************
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
Note: list stores the latency of correct responses for each relevant trial
**************************************************************************************************************
**************************************************************************************************************
TRIALS: Practice
**************************************************************************************************************
**************************************************************************************************************
/ stimulustimes = [0 = clearscreen, fixation]
/ branch = [
if (values.condition == 1){
trial.congruent_practice;
} else if (values.condition == 2){
trial.incongruent_practice;
} else {
if (list.mixed.nextvalue == 1){
trial.congruent_practice;
} else {
trial.incongruent_practice;
};
};
]
/ trialduration = parameters.iti
/ recorddata = false
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (noresponse)
/ response = correct
/ ontrialbegin = [
values.prevCongruence = values.congruence;
values.congruence = 1;
if (values.prevCongruence == values.congruence || values.prevCongruence == 0){
values.switch = 0;
} else {
if (values.prevCongruence)
values.switch = 1;
values.countSwitch += 1;
};
values.position = list.positions_congruent.nextvalue;
if (values.position == 1){
picture.congruentStim.hposition = parameters.left_x;
} else {
picture.congruentStim.hposition = parameters.right_x;
};
]
/ stimulustimes = [0 = congruentStim]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.congruent_practice.response == parameters.leftkey) ||
(values.position == 2 && trial.congruent_practice.response == parameters.rightkey)
]
/ ontrialend = [
list.ACC_practice.appenditem(trial.congruent_practice.correct);
]
/ timeout = values.stimDuration
/ branch = [
if (trial.congruent_practice.error){
trial.repeat_congruent;
} else {
trial.posFeedback;
};
]
/ ontrialbegin = [
if (trial.congruent_practice.response == 0){
trial.repeat_congruent.insertstimulusframe(text.noResponseText, 1);
};
if (values.position == 1){
trial.repeat_congruent.insertstimulusframe(video.pressleft, 1);
} else {
trial.repeat_congruent.insertstimulusframe(video.pressright, 1);
};
]
/ stimulusframes = [1 = congruentTask2, reminder_congruent, reminder_congruent_audio]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.repeat_congruent.response == parameters.leftkey) ||
(values.position == 2 && trial.repeat_congruent.response == parameters.rightkey)
]
/ ontrialend = [
trial.repeat_congruent.resetstimulusframes();
]
/ response = correct
/ branch = [
trial.posFeedback;
]
/ ontrialbegin = [
values.prevCongruence = values.congruence;
values.congruence = 2;
if (values.prevCongruence == values.congruence || values.prevCongruence == 0){
values.switch = 0;
} else {
values.switch = 1;
values.countSwitch += 1;
};
values.position = list.positions_incongruent.nextvalue;
if (values.position == 1){
picture.incongruentStim.hposition = parameters.left_x;
} else {
picture.incongruentStim.hposition = parameters.right_x;
};
]
/ stimulustimes = [0 = incongruentStim]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.incongruent_practice.response == parameters.rightkey) ||
(values.position == 2 && trial.incongruent_practice.response == parameters.leftkey)
]
/ ontrialend = [
list.ACC_practice.appenditem(trial.incongruent_practice.correct);
]
/ timeout = values.stimDuration
/ branch = [
if (trial.incongruent_practice.error){
trial.repeat_incongruent;
} else {
trial.posFeedback;
};
]
/ ontrialbegin = [
if (trial.incongruent_practice.response == 0){
trial.repeat_incongruent.insertstimulusframe(text.noResponseText, 1);
};
if (values.position == 1){
trial.repeat_incongruent.insertstimulusframe(video.pressright, 1);
} else {
trial.repeat_incongruent.insertstimulusframe(video.pressleft, 1);
};
]
/ stimulusframes = [1 = incongruentTask2, reminder_incongruent, reminder_incongruent_audio]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.repeat_incongruent.response == parameters.rightkey) ||
(values.position == 2 && trial.repeat_incongruent.response == parameters.leftkey)
]
/ ontrialend = [
trial.repeat_incongruent.resetstimulusframes();
]
/ response = correct
/ branch = [
trial.posFeedback;
]
/ stimulusframes = [1 = Feedback, Feedback_audio]
/ trialduration = 0
/ recorddata = false
/ branch = [
trial.selectTrial_practice;
]
**************************************************************************************************************
**************************************************************************************************************
TRIALS: Test
**************************************************************************************************************
**************************************************************************************************************
/ stimulustimes = [0 = clearscreen, fixation]
/ branch = [
if (values.condition == 1){
trial.congruent;
} else if (values.condition == 2){
trial.incongruent;
} else {
if (list.mixed.nextvalue == 1){
trial.congruent;
} else {
trial.incongruent;
};
};
]
/ trialduration = parameters.iti
/ recorddata = false
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ correctresponse = (noresponse)
/ response = correct
/ ontrialbegin = [
values.prevCongruence = values.congruence;
values.congruence = 1;
if (values.prevCongruence == values.congruence || values.prevCongruence == 0){
values.switch = 0;
} else {
if (values.prevCongruence)
values.switch = 1;
values.countSwitch += 1;
};
values.position = list.positions_congruent.nextvalue;
if (values.position == 1){
picture.congruentStim.hposition = parameters.left_x;
} else {
picture.congruentStim.hposition = parameters.right_x;
};
]
/ stimulustimes = [0 = congruentStim]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.congruent.response == parameters.leftkey) ||
(values.position == 2 && trial.congruent.response == parameters.rightkey)
]
/ ontrialend = [
list.ACC.appenditem(trial.congruent.correct);
if (trial.congruent.correct){
list.RT.appenditem(trial.congruent.latency);
};
if (values.condition == 1){
list.ACC_congruent.appenditem(trial.congruent.correct);
if (trial.congruent.correct){
list.RT_congruent.appenditem(trial.congruent.latency);
};
} else if (values.condition == 3){
list.ACC_mixed.appenditem(trial.congruent.correct);
if (trial.congruent.correct){
list.RT_mixed.appenditem(trial.congruent.latency);
};
if (values.switch == 1){
list.ACC_switch.appenditem(trial.congruent.correct);
if (trial.congruent.correct){
list.RT_switch.appenditem(trial.congruent.latency);
};
} else {
list.ACC_nonswitch.appenditem(trial.congruent.correct);
if (trial.congruent.correct){
list.RT_nonswitch.appenditem(trial.congruent.latency);
};
};
};
]
/ timeout = values.stimDuration
/ branch = [
trial.selectTrial;
]
/ ontrialbegin = [
values.prevCongruence = values.congruence;
values.congruence = 2;
if (values.prevCongruence == values.congruence || values.prevCongruence == 0){
values.switch = 0;
} else {
values.switch = 1;
values.countSwitch += 1;
};
values.position = list.positions_incongruent.nextvalue;
if (values.position == 1){
picture.incongruentStim.hposition = parameters.left_x;
} else {
picture.incongruentStim.hposition = parameters.right_x;
};
]
/ stimulustimes = [0 = incongruentStim]
/ validresponse = (parameters.leftkey, parameters.rightkey)
/ iscorrectresponse = [
(values.position == 1 && trial.incongruent.response == parameters.rightkey) ||
(values.position == 2 && trial.incongruent.response == parameters.leftkey)
]
/ ontrialend = [
list.ACC.appenditem(trial.incongruent.correct);
if (trial.incongruent.correct){
list.RT.appenditem(trial.incongruent.latency);
};
if (values.condition == 2){
list.ACC_incongruent.appenditem(trial.incongruent.correct);
if (trial.incongruent.correct){
list.RT_incongruent.appenditem(trial.incongruent.latency);
};
} else if (values.condition == 3){
list.ACC_mixed.appenditem(trial.incongruent.correct);
if (trial.incongruent.correct){
list.RT_mixed.appenditem(trial.incongruent.latency);
};
if (values.switch == 1){
list.ACC_switch.appenditem(trial.incongruent.correct);
if (trial.incongruent.correct){
list.RT_switch.appenditem(trial.incongruent.latency);
};
} else {
list.ACC_nonswitch.appenditem(trial.incongruent.correct);
if (trial.incongruent.correct){
list.RT_nonswitch.appenditem(trial.incongruent.latency);
};
};
};
]
/ timeout = values.stimDuration
/ branch = [
trial.selectTrial;
]
**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************
/ trials = [
1 = intro1_congruent;
2 = intro2_congruent;
3 = intro3_congruent;
4 = intro4_congruent;
5 = intro5_congruent;
6 = intro6_congruent;
]
/ stop = [
trial.selectTrial_practice.trialcount > parameters.numberPracticeTrials;
]
/ onblockbegin = [
values.countCongruent += 1;
list.ACC_practice.reset();
values.condition = 1;
list.positions_congruent.poolsize = parameters.numberPracticeTrials;
list.positions_congruent.reset();
values.stimDuration = parameters.stimDuration_simpleBlock;
values.congruence = 0;
]
/ trials = [1 = selectTrial_practice]
/ onblockend = [
if (values.practiceACC_congruent < list.ACC_practice.mean){
values.practiceACC_congruent = list.ACC_practice.mean;
};
]
/ branch = [
if (list.ACC_practice.mean >= parameters.minPracticeACC){
values.passCongruent = 1;
} else if (list.ACC_practice.mean < parameters.minPracticeACC && values.countCongruent < parameters.maxPracticeRepeats){
block.congruent_practice;
} else if (!monkey.monkeymode){
block.prematureEnd;
};
]
/ stop = [
trial.selectTrial.trialcount > parameters.numberTestTrials;
]
/ onblockbegin = [
values.condition = 1;
list.ACC_practice.reset();
list.positions_congruent.poolsize = parameters.numberTestTrials;
list.positions_congruent.reset();
values.stimDuration = parameters.stimDuration_simpleBlock;
values.congruence = 0;
]
/ trials = [1 = testStart; 2 = selectTrial]
/ trials = [
1 = intro1_incongruent;
2 = intro2_incongruent;
3 = intro3_incongruent;
4 = intro4_incongruent;
5 = intro5_incongruent;
6 = intro6_incongruent;
]
/ stop = [
trial.selectTrial_practice.trialcount > parameters.numberPracticeTrials;
]
/ onblockbegin = [
values.countIncongruent += 1;
list.ACC_practice.reset();
values.condition = 2;
list.positions_incongruent.poolsize = parameters.numberPracticeTrials;
list.positions_incongruent.reset();
values.stimDuration = parameters.stimDuration_simpleBlock;
values.congruence = 0;
]
/ trials = [1 = selectTrial_practice]
/ onblockend = [
if (values.practiceACC_incongruent < list.ACC_practice.mean){
values.practiceACC_incongruent = list.ACC_practice.mean;
};
]
/ branch = [
if (list.ACC_practice.mean >= parameters.minPracticeACC){
values.passInCongruent = 1;
} else if (list.ACC_practice.mean < parameters.minPracticeACC && values.countInCongruent < parameters.maxPracticeRepeats){
block.incongruent_practice;
} else if (!monkey.monkeymode){
block.prematureEnd;
};
]
/ stop = [
trial.selectTrial.trialcount > parameters.numberTestTrials;
]
/ onblockbegin = [
values.condition = 2;
list.ACC_practice.reset();
list.positions_incongruent.poolsize = parameters.numberTestTrials;
list.positions_incongruent.reset();
values.stimDuration = parameters.stimDuration_simpleBlock;
values.congruence = 0;
]
/ trials = [1 = testStart; 2 = selectTrial]
/ trials = [
1 = intro1_mixed;
2 = intro2_mixed;
3 = intro3_mixed;
4 = intro4_mixed;
5 = intro5_mixed;
6 = intro6_mixed;
7 = intro7_mixed;
8 = intro8_mixed;
]
/ stop = [
trial.selectTrial_practice.trialcount > parameters.numberPracticeTrials;
]
/ onblockbegin = [
values.countMixed += 1;
list.ACC_practice.reset();
values.condition = 3;
list.positions_incongruent.poolsize = parameters.numberPracticeTrials/2;
list.positions_incongruent.reset();
list.positions_congruent.poolsize = parameters.numberPracticeTrials/2;
list.positions_congruent.reset();
values.stimDuration = parameters.stimDuration_mixedBlock;
values.congruence = 0;
]
/ trials = [1 = selectTrial_practice]
/ onblockend = [
if (values.practiceACC_mixed < list.ACC_practice.mean){
values.practiceACC_mixed = list.ACC_practice.mean;
};
]
/ branch = [
if (list.ACC_practice.mean >= parameters.minPracticeACC){
values.passMixed = 1;
} else if (list.ACC_practice.mean < parameters.minPracticeACC && values.countMixed < parameters.maxPracticeRepeats){
block.mixed_practice;
} else if (!monkey.monkeymode){
block.prematureEnd;
};
]
/ stop = [
trial.selectTrial.trialcount > parameters.numberTestTrials;
]
/ onblockbegin = [
values.condition = 3;
list.ACC_practice.reset();
list.mixed.poolsize = parameters.numberTestTrials;
list.positions_incongruent.poolsize = parameters.numberTestTrials/2;
list.positions_incongruent.reset();
list.positions_congruent.poolsize = parameters.numberTestTrials/2;
list.positions_congruent.reset();
values.stimDuration = parameters.stimDuration_mixedBlock;
values.congruence = 0;
values.countSwitch = 0;
]
/ trials = [1 = testStart; 2 = selectTrial]
/ trials = [1 = finish]
/ onblockend = [
script.abort();
]
/ trials = [1 = finish]
**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
/ blocks = [
1 = congruent_intro;
2 = congruent_practice;
3 = congruent;
4 = incongruent_intro;
5 = incongruent_practice;
6 = incongruent;
7 = mixed_intro;
8 = mixed_practice;
9 = mixed;
10 = finish;
]
/ onexptend = [
values.completed = 1;
]
**************************************************************************************************************
End of File
**************************************************************************************************************