Last issues!


Author
Message
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 106K

> The reason of this choice is to be found in the fact that I need a trial to present the images and another one to have the answer for clinical purposes and for professor's choice.

You don't need two separate trials for that, you could just as easily do all that in a single trial. I have no idea why you *think* two separate trials are required.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la BLU va messo sulla Z
/rightresponsekey = "M" //lo stampino con la ROSSO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Salve. Adesso faremo una piccola prova per farla familiarizzare con il compito.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto BLU se il volto presentato esprime un'emozione; al contrario, prema il tasto ROSSO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Grazie per la partecipazione. Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema la BARRA SPAZIATRICE per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema BLU")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema ROSSO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<prema la BARRA per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1 = "F11_F20.JPG"
/2 = "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_F20.JPG"
/24 = "F11_F30.JPG"
/25 = "F11_F40.JPG"
/26 = "F11_F50.JPG"
/27 = "F11_F60.JPG"
/28 = "F11_F70.JPG"
/29 = "F11_F80.JPG"
/30 = "F11_F90.JPG"
/31 = "F11_F100.JPG"
/32 = "F11_F0.JPG"
/33 = "F11_F10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_F30.JPG"
/36 = "M11_F40.JPG"
/37 = "M11_F50.JPG"
/38 = "M11_F60.JPG"
/39 = "M11_F70.JPG"
/40 = "M11_F80.JPG"
/41 = "M11_F90.JPG"
/42 = "M11_F100.JPG"
/43 = "M11_F0.JPG"
/44 = "M11_F10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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, session, blockcode, blocknum, trialcode, trialnum, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem,
values.correctButton, response, correct, latency, list.accuracy.mean)
</data>

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>


**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/selectWord: stores the itemnumber of the currently presented word
/selectImage: stores the itemnumber of the currently presented image
/wordposition: 0 = words at the centre of the image
/word_y: stores the vertical coordinate of the current word
/congruence: 0 = neutral; 1 = incongruent
/practice1Runs: counts number of practice1 runs
/practice2WRuns: counts number of practice2W runs
/practice2FRuns: counts number of practice2F runs
/selectFeedback: controls the selection of the feedback text to be presented
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationsStart = 0
/fixationResp = 0
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/ items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = white
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************
<trial practice>
/ inputdevice = keyboard
/ ontrialbegin = [
    values.selectStim = list.practice_itemnumbers.nextvalue;
    values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ beginresponsetime = 350
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.practice.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.practice.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.practice.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = practice;]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************



Igor Iarrobino
Igor Iarrobino
Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)
Group: Forum Members
Posts: 40, Visits: 108
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 106K
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.
Igor Iarrobino
Igor Iarrobino
Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)
Group: Forum Members
Posts: 40, Visits: 108
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 106K
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
Igor Iarrobino
Igor Iarrobino
Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)
Group: Forum Members
Posts: 40, Visits: 108
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
> When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

Yes this is typical and it works when I respond under the fixationResp part of the trial, but not when I respond  just while the pic is on the screen (response to the pic allowed)

>The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

The image (pic_practice) is behaving well, the problem is that when I respond just while the pic is on the screen, the trial is recording my response but it is not erasing the fixationResp part after it. That's because I see the fixationResp to appear superimposed on the following pic.
It should not be like that.

I explain you exactly what I want.
I want the trial to be one, presenting the pic and the fixationResp stimuli one after the other as expressed in the stimulustimes now.
At the same time, the response to the trial should be one as well, whether if I respond to the pic or to fixationResp moment.
So far so good.
But the task is not erasing fixationResp when I give the response precisely under the pic time presentation.
Then, fixationResp is presenting itself superimposed on the following pic: I should try to avoid this issue.
Basically, I'd like to have: when the response is given at the precise moment of the pic presentation, the fixationResp is not appearing and the task may continue to the next trial.
Thank you.



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 106K
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
> When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

Yes this is typical and it works when I respond under the fixationResp part of the trial, but not when I respond  just while the pic is on the screen (response to the pic allowed)

>The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

The image (pic_practice) is behaving well, the problem is that when I respond just while the pic is on the screen, the trial is recording my response but it is not erasing the fixationResp part after it. That's because I see the fixationResp to appear superimposed on the following pic.
It should not be like that.

I explain you exactly what I want.
I want the trial to be one, presenting the pic and the fixationResp stimuli one after the other as expressed in the stimulustimes now.
At the same time, the response to the trial should be one as well, whether if I respond to the pic or to fixationResp moment.
So far so good.
But the task is not erasing fixationResp when I give the response precisely under the pic time presentation.
Then, fixationResp is presenting itself superimposed on the following pic: I should try to avoid this issue.
Basically, I'd like to have: when the response is given at the precise moment of the pic presentation, the fixationResp is not appearing and the task may continue to the next trial.
Thank you.

Please just do the things I told you in my previous reply
Igor Iarrobino
Igor Iarrobino
Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)
Group: Forum Members
Posts: 40, Visits: 108
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
> When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

Yes this is typical and it works when I respond under the fixationResp part of the trial, but not when I respond  just while the pic is on the screen (response to the pic allowed)

>The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

The image (pic_practice) is behaving well, the problem is that when I respond just while the pic is on the screen, the trial is recording my response but it is not erasing the fixationResp part after it. That's because I see the fixationResp to appear superimposed on the following pic.
It should not be like that.

I explain you exactly what I want.
I want the trial to be one, presenting the pic and the fixationResp stimuli one after the other as expressed in the stimulustimes now.
At the same time, the response to the trial should be one as well, whether if I respond to the pic or to fixationResp moment.
So far so good.
But the task is not erasing fixationResp when I give the response precisely under the pic time presentation.
Then, fixationResp is presenting itself superimposed on the following pic: I should try to avoid this issue.
Basically, I'd like to have: when the response is given at the precise moment of the pic presentation, the fixationResp is not appearing and the task may continue to the next trial.
Thank you.

Please just do the things I told you in my previous reply

Thank you very much.

Just a question please.
May I display my experiment on a second monitor changing some settings in Inquisit? Or, do I have to find a way through the display settings on my laptop?



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 106K
Igor Iarrobino - 2/25/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
> When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

Yes this is typical and it works when I respond under the fixationResp part of the trial, but not when I respond  just while the pic is on the screen (response to the pic allowed)

>The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

The image (pic_practice) is behaving well, the problem is that when I respond just while the pic is on the screen, the trial is recording my response but it is not erasing the fixationResp part after it. That's because I see the fixationResp to appear superimposed on the following pic.
It should not be like that.

I explain you exactly what I want.
I want the trial to be one, presenting the pic and the fixationResp stimuli one after the other as expressed in the stimulustimes now.
At the same time, the response to the trial should be one as well, whether if I respond to the pic or to fixationResp moment.
So far so good.
But the task is not erasing fixationResp when I give the response precisely under the pic time presentation.
Then, fixationResp is presenting itself superimposed on the following pic: I should try to avoid this issue.
Basically, I'd like to have: when the response is given at the precise moment of the pic presentation, the fixationResp is not appearing and the task may continue to the next trial.
Thank you.

Please just do the things I told you in my previous reply

Thank you very much.

Just a question please.
May I display my experiment on a second monitor changing some settings in Inquisit? Or, do I have to find a way through the display settings on my laptop?

Change the display settings, i,e, make the external monitor the primary display.
Igor Iarrobino
Igor Iarrobino
Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)Associate Member (240 reputation)
Group: Forum Members
Posts: 40, Visits: 108
Dave - 2/25/2025
Igor Iarrobino - 2/25/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Dave - 2/18/2025
Igor Iarrobino - 2/18/2025
Hello Dave,
professor's choice changed and I gotta change this task accordingly.
If you read the last message in this topic we left with this:
"I need a trial to present the images and another one to have the answer" and you gave me an alternative view with a single trial.
In this script the stimuli are pics and the answer was fixationResp.

Well, I'd need a single trial in which I'd present the pic and after 350ms the fixationResp (fixation +). I tried to do as you can read in the script, following also your suggestions.
The problem here is that when I respond on the fixationResp (fixation +) the task is doing good. But, when I respond soon after the beginning of the trial, i.e. on the image, the trial is doing wrong. It is like the fixation + reoccurs on the following stimulus/pic, waiting for the response.
I'd like a smooth single trial, instead, in which the participant can respond both on the pic and the fixation +, recording a single valid response, and the fixation + is disappearing accordingly with the end of the trial.

**************************************************************************************************************
**************************************************************************************************************
EDITABLE PARAMETERS: change editable parameters here
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/ITI = 1500
/fixationStart = 3000
/picsize = 60%
/top_y = 55%
/bottom_y = 55%
/leftresponsekey = "Z" //lo stampino con la SÌ va messo sulla Z
/rightresponsekey = "M" //lo stampino con la NO va messo sulla M
/spacekey = "BARRA SPAZIATRICE"
</parameters>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE INSTRUCTIONS: change instructions here
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
</instruct>


<item instructions>
/1 = "Adesso inizia la prova.
Le compariranno dei volti che possono esprimere un'emozione, oppure no.
Le verrà chiesto di premere il tasto SÌ se il volto presentato esprime un'emozione; al contrario, prema il tasto NO se il volto non esprime un'emozione.
Le ricordiamo di premere il più velocemente possibile.
Se non risponde, la prova non va avanti."

/2 = "Fine della prova.
Se vuole possiamo ripetere la prova."
</item>

<item continueButtons>
/1 = "Prema gentilemente il tasto indicato per iniziare"
/2 = "STOP"
</item>

<text YESButton_instruct>
/ items = ("YES = Prema SÌ")
/ position = (25%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text NOButton_instruct>
/ items = ("NO = Prema NO")
/ position = (75%, 60%)
/ fontstyle = ("Arial", 5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txcolor = white
</text>

<text fixationStart>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text fixationResp>
/ items = ("+")
/ vposition = 50%
/ hposition = 50%
/ fontstyle = ("Arial", 7%, true, false, false, false, 5, 1)
/ size = (10%, 10%)
/ txcolor = black
/ txbgcolor = transparent
</text>

<text exit>
/ items = ("<Prema gentilemente il tasto indicato per uscire>")
/ fontstyle = ("Arial", 3.5%, false, false, false, false, 5, 1)
/ position = (50%, 90%)
/ size = (80%, 5%)
/ vjustify = center
</text>

<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";}
else {
"un tasto";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"button";}
else {
"un altro tasto";}
/buttoninstruct3 = if (computer.touch && !computer.haskeyboard) {"Le chiadiamo di posizionare le dita della mano sinistra e della mano destra sulla tastiera, e di premere un dei tasto per cominciare";}
else {
"Le chiediamo di posizionare l'indice della mano sinistra e l'indice della mano destra sulla tastiera e premere uno dei due tasti colorati per iniziare.";}
</expressions>

**************************************************************************************************************
**************************************************************************************************************
EDITABLE STIMULI
**************************************************************************************************************
**************************************************************************************************************
********************************************
practice
********************************************

<list practice_itemnumbers>
/ items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
/ replace = false
/ resetinterval = 0
</list>

<item pics_practice>
/1= "F11_F20.JPG"
/2= "F11_F30.JPG"
/3 = "F11_F40.JPG"
/4 = "F11_F50.JPG"
/5 = "F11_F60.JPG"
/6 = "F11_F70.JPG"
/7 = "F11_F80.JPG"
/8 = "F11_F90.JPG"
/9 = "F11_F100.JPG"
/10 = "F11_F0.JPG"
/11 = "F11_F10.JPG"
/12 = "M11_F20.JPG"
/13 = "M11_F30.JPG"
/14 = "M11_F40.JPG"
/15 = "M11_F50.JPG"
/16 = "M11_F60.JPG"
/17 = "M11_F70.JPG"
/18 = "M11_F80.JPG"
/19 = "M11_F90.JPG"
/20 = "M11_F100.JPG"
/21 = "M11_F0.JPG"
/22 = "M11_F10.JPG"
/23 = "F11_P20.JPG"
/24 = "F11_P30.JPG"
/25 = "F11_P40.JPG"
/26 = "F11_P50.JPG"
/27 = "F11_P60.JPG"
/28 = "F11_P70.JPG"
/29 = "F11_P80.JPG"
/30 = "F11_P90.JPG"
/31 = "F11_P100.JPG"
/32 = "F11_P0.JPG"
/33 = "F11_P10.JPG"
/34 = "M11_F20.JPG"
/35 = "M11_P30.JPG"
/36 = "M11_P40.JPG"
/37 = "M11_P50.JPG"
/38 = "M11_P60.JPG"
/39 = "M11_P70.JPG"
/40 = "M11_P80.JPG"
/41 = "M11_P90.JPG"
/42 = "M11_P100.JPG"
/43 = "M11_P0.JPG"
/44 = "M11_P10.JPG"
</item>

<item correctButton_practice>
/1 = "YESButton"
/2 = "YESButton"
/3 = "YESButton"
/4 = "YESButton"
/5 = "YESButton"
/6 = "YESButton"
/7 = "YESButton"
/8 = "YESButton"
/9 = "YESButton"
/10 = "NOButton"
/11 = "NOButton"
/12 = "YESButton"
/13 = "YESButton"
/14 = "YESButton"
/15 = "YESButton"
/16 = "YESButton"
/17 = "YESButton"
/18 = "YESButton"
/19 = "YESButton"
/20 = "YESButton"
/21 = "NOButton"
/22 = "NOButton"
/23 = "YESButton"
/24 = "YESButton"
/25 = "YESButton"
/26 = "YESButton"
/27 = "YESButton"
/28 = "YESButton"
/29 = "YESButton"
/30 = "YESButton"
/31 = "YESButton"
/32 = "NOButton"
/33 = "NOButton"
/34 = "YESButton"
/35 = "YESButton"
/36 = "YESButton"
/37 = "YESButton"
/38 = "YESButton"
/39 = "YESButton"
/40 = "YESButton"
/41 = "YESButton"
/42 = "YESButton"
/43 = "NOButton"
/44 = "NOButton"
</item>

**************************************************************************************************************
**************************************************************************************************************
DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.5.2.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.5.2.0"
/fontstyle = ("Arial", 3%, false, false, false, false, 5, 1)
/txbgcolor = transparent
/txcolor = black
/screencolor = white
/inputdevice = keyboard
</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 = (date, time, subject, group, session, blockcode, blocknum, trialcode, values.fixationStart, values.ITI, values.keyAssignment, values.selectStim, stimulusitem, stimulusitem, values.correctButton, response, responsetext, correct, latency)
</data>,

***********************
summary data file
***********************
<summarydata>
/ columns = (inquisit.version, computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid,
script.elapsedtime, script.completed,
values.keyAssignment,
values.ACC_practice,
values.practiceRuns,
expressions.ACC_all,
expressions.meanRT_all)
/ separatefiles = true
</summarydata>

**************************************************************************************************************
**************************************************************************************************************
VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/countTestBlocks: counts number of test blocks
/skipReadyTrial: 0 = run ready trial; 1 = skip ready trial

<values>
/countTestBlocks = 0
/selectStim = 1
/correctButton = ""
/practiceRuns = 0
/fixationStart = parameters.fixationStart
/ITI = parameters.ITI
/keyAssignment = "leftYES"
/spacekey = parameters.spacekey
/YESkey = parameters.leftresponsekey
/NOkey = parameters.rightresponsekey
</values>

/ACC_practice: stores the proportion correct of the current practice run

<values>
/ACC_practice = 0
</values>

**************************************************************************************************************
**************************************************************************************************************
EXPRESSIONS
**************************************************************************************************************
**************************************************************************************************************
/shadowSize: size of shadow text

/ACC_all: proportion correct overall (across all test trials)
/meanRT_all: mean correct latency (in ms) overall

/ACC_FACE: proportion correct in "FACE" block
/ACC_congruent: proportion correct in "congruent" pairings trials (across test blocks)
/ACC_incongruent: proportion correct in "incongruent" pairings trials (across test blocks)

/meanRT_FACE: mean correct latency (in ms) in "FACE" block
/meanRT_congruent: mean correct latency (in ms) in "congruent" pairings trials (across test blocks)
/meanRT_incongruent: mean correct latency (in ms) in "incongruent" pairings trials (across test blocks)

<expressions>
/ACC_all = list.accuracy.mean
/meanRT_all = list.latencies.mean
</expressions>

**************************************************************************************************************
**************************************************************************************************************
INSTRUCTIONS
**************************************************************************************************************
**************************************************************************************************************

<text intro>
/ items = instructions
/ select = 1
/ position = (50%, 50%)
/ fontstyle = ("Arial", 4%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text end>
/ items = instructions
/ select = 2
/ position = (50%, 50%)
/ fontstyle = ("Arial", 8%, false, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (90%, 80%)
</text>

<text continueButton_intro>
/ items = continueButtons
/ select = text.intro.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = blue
</text>

<text continueButton_Pnd>
/ items = continueButtons
/ select = text.end.currentitemnumber
/ position = (50%, 90%)
/ fontstyle = ("Arial", 3.5%, true, false, false, false, 5, 1)
/ vjustify = center
/ hjustify = center
/ size = (45%, 10%)
/ txbgcolor = red
</text>

***********************
Instruction Trials
***********************

<trial practiceStart>
/ inputdevice = keyboard
/ stimulusframes = [1 = intro, continueButton_intro]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial finish>
/ inputdevice = keyboard
/ skip = [
values.countTestBlocks == 1;
]
/ stimulusframes = [1 = clearscreen, end, exit]
/ validresponse = (" ")
/ recorddata = false
</trial>

<trial fixationStart>
/ stimulusframes = [1 = fixationStart]
/ trialduration = parameters.fixationStart
/ validresponse = (0)
/ recorddata = false
</trial>

**************************************************************************************************************
**************************************************************************************************************
STIMULI
**************************************************************************************************************
**************************************************************************************************************

<picture Pic_practice>
/items = item.pics_practice
/ select = values.selectStim
/ position = (50%, 50%)
/ size = (parameters.picsize, parameters.picSize)
/ erase = false
</picture>

**************************************************************************************************************
**************************************************************************************************************
LISTS
**************************************************************************************************************
**************************************************************************************************************

*************************************************
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
<list accuracy>
</list>

Note: list stores the latency of correct responses for each relevant trial
<list latencies>
</list>

Note: list stores 1 = correct response; 0 = incorrect response for each relevant trial
any response coded as an error is automatically coded as 0
<list accuracytest>
</list>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : practice
**************************************************************************************************************
**************************************************************************************************************

trial practice>
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulusframes = [1 = clearscreen; 2 = Pic_practice;]
/ response = noresponse
/ trialduration = 350
</trial>

<trial fixationResp>
/ inputdevice = keyboard
/ ontrialbegin = [
values.selectStim = list.practice_itemnumbers.nextvalue;
values.correctButton = item.correctButton_practice.item(values.selectStim);
]
/ stimulustimes = [0 = clearscreen, Pic_practice; 350 = clearscreen, fixationResp]
/ validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ iscorrectresponse = [
if (values.correctButton == "YESButton") {
if (trial.fixationResp.responsetext == values.YESkey) {
return true;
} else {
return false;
};
} else {
if (trial.fixationResp.responsetext == values.NOkey) {
return true;
} else {
return false;
};
};
]
/ beginresponsetime = 0
/ responseinterrupt = immediate
/ ontrialend = [ list.accuracy.appendItem(trial.fixationResp.correct);
values.ACC_practice = list.accuracy.mean;]
/ posttrialpause = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
TRIALS : helper trials
**************************************************************************************************************
**************************************************************************************************************

trial ITI>
/ stimulusframes = [1 = clearscreen]

//touchscreens: present inactive response buttons
// validresponse = (parameters.leftresponsekey, parameters.rightresponsekey)
/ isvalidresponse = [
return(false);
]
/ recorddata = false
/ trialduration = parameters.ITI
</trial>

**************************************************************************************************************
**************************************************************************************************************
BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block practiceIntro>
/ trials = [1 = practiceStart]
</block>

<block fixationStart>
/ trials = [1 = fixationStart]
</block>

<block practice>
/ onblockbegin = [
list.accuracy.reset();
list.latencies.reset();
values.practiceRuns += 1;
]
/ trials = [1 - 43 = fixationResp]
</block>

<block finish>
/ trials = [1 = finish]
</block>

**************************************************************************************************************
**************************************************************************************************************
EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt>
/ onexptbegin = [
if (computer.touch && !computer.haskeyboard) {
text.continueButton_Pnd.skip = true;
text.continueButton_intro.skip = true;
};]

/ blocks = [
1 = practiceIntro;
2 = fixationStart;
    3 = practice;
4 = finish;
]
</expt>

<monkey>
/ latencydistribution = normal(50, 20)
</monkey>

**************************************************************************************************************
End of File
**************************************************************************************************************

https://www.millisecond.com/support/docs/v6/html/language/attributes/responseinterrupt.htm

If you want the fixation stimulus displayed when the response occurs before it, you need to set /responseinterrupt to frames.

I did not get your proposal.  I do not want the fixation stimulus displayed when the response occurs before it, it is the other way around.
I want a single trial to present the stimulus (Pic_practice) and the fixationResp in the same trial.
I want a single response for both in the same trial.
and I think it is ok so far.
And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus (Pic_ptractice), because the response should be registered already. Moreover, if I do not respond to the stimulus I should be able to respond on the fixationResp as well. Everything should be under the same trial and response measure 

Your descriptions contradict each other.

> And actually, what I want to solve is that the fixationResp MUST NOT APPEAR when the response is given on the stimulus

When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

In addition, add trial.fixationResp.resetstimulusframes(); to the trials /ontrialbegin logic.
> When responseinterrupt is set to immediate, it does not appear. The trial enters its posttrialpause and ends. The fixation cross is not displayed.

Yes this is typical and it works when I respond under the fixationResp part of the trial, but not when I respond  just while the pic is on the screen (response to the pic allowed)

>The image remains on.screen because you have told Inquisit to not erase it. If you want it gone, remove the /erase false setting from the <picture> element.

The image (pic_practice) is behaving well, the problem is that when I respond just while the pic is on the screen, the trial is recording my response but it is not erasing the fixationResp part after it. That's because I see the fixationResp to appear superimposed on the following pic.
It should not be like that.

I explain you exactly what I want.
I want the trial to be one, presenting the pic and the fixationResp stimuli one after the other as expressed in the stimulustimes now.
At the same time, the response to the trial should be one as well, whether if I respond to the pic or to fixationResp moment.
So far so good.
But the task is not erasing fixationResp when I give the response precisely under the pic time presentation.
Then, fixationResp is presenting itself superimposed on the following pic: I should try to avoid this issue.
Basically, I'd like to have: when the response is given at the precise moment of the pic presentation, the fixationResp is not appearing and the task may continue to the next trial.
Thank you.

Please just do the things I told you in my previous reply

Thank you very much.

Just a question please.
May I display my experiment on a second monitor changing some settings in Inquisit? Or, do I have to find a way through the display settings on my laptop?

Change the display settings, i,e, make the external monitor the primary display.

Yes, it's the decision I made eventually.
thank you.
Nice evening


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search