"Inquisit no longer works" -


Author
Message
Ulrike Nestler
Ulrike Nestler
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 17, Visits: 41
Hello,
I scripted my own version of the Spatial N-Back task. Inquisit even runs the entire script. After presenting the end instructions, the program closes, shuts down and I get a note from windows Explorer: "Inquisit no longer works".
The funny thing is, Inquisit still gives me the data sheet for the raw data. But the summary sheet I don't get. And like I said the entire program shuts down... It shows in the background that it is trying to store results and seconds later i get the information that it just broke down...


Maybe someone can tell me what I am doing to Inquisit? Did I script something wrong for the summary data sheet?
The following is the script. For a better understanding: 2 practice blocks (1 easy, 1 hard), 4 experiment blocks (easy1, hard1, easy2, hard2). And yes I need to know the single data of every trial.
I really hope someone can find the bug in it. And especially why Inquisit is just shutting down like that? Am I asking too many parameters and it can't calculate it anymore?

I am reallly looking forward to an answer.

Kind regards,
Ulrike Nestler

************************************************************************************************************************************************************************
                                                                    DEFAULTS

<defaults>
/ minimumversion = "4.0.0.0"
/ fontstyle = ("Arial", 16pt)
/ screencolor = (255, 255, 255)
/ txcolor = (0, 0, 0)
/ txbgcolor = (255, 255, 255)
</defaults>


<values>
/StartN = 1
/LastN = 3
/debugmode = 0
</values>

******************************************
experimental parameters updated at runtime
******************************************
/completed:                    0 = script was not completed (script was prematurely aborted); 1 = script was completed (all conditions run)

minus1:                        contains the stimulusitemnumber of the stimulus in the trial preceding the current one
minus2:                        contains the stimulusitemnumber of the stimulus shown 2 trials before the current one
minus3:                        contains the stimulusitemnumber of the stimulus shown 3 trials before the current one
minus4:                        contains the stimulusitemnumber of the stimulus shown 4 trials before the current one
stim:                        contains the current stimulusitem
stimnumber:                    contains the current stimulusitemnumber
N:                            the lag between a target and the stimulus it repeats
currenttarget:                contains the stimulusnumber of the current target
                            (a target in N = 0 trials is a stimulus with the same stimulus number as stored in target0)
Hits:                        codes the number of correctly identifiying a target
FalseA:                        codes the number of times a participant identifies a non-target as a target
Misses:                        codes the number of times a participant misses to identify a target
CorrReject:                    codes the number of times a participant correctly identifies a non-target (and does nothing)
values.TotalHits:            the number of total hits across all experimental blocks
values.TotalFA:                the number of total false alarms across all experimental blocks
values.TotalBlocks:            the total number of experimental blocks run
starttrialcounter:            keeps track of how many start trials have been run
repetitioncounter:             keeps track of how many times an experimental block has been run
trial_Hit:                    codes for each trial: trial_Hit = 1 (it's a hit), trial_Hit = 0 (it's not a hit)
trial_Miss:                    codes for each trial: trial_Miss = 1 (it's a Miss), trial_Miss = 0 (it's not a Miss)
trial_CR:                    codes for each trial: trial_CR = 1 (it's a correct rejection), trial_CR = 0 (it's not a correct rejection)
trial_FA:                    codes for each trial: trial_FA = 1 (it's a false alarm), trial_FA = 0 (it's not a a false alarm)

<values >
/completed = 0
/minus1 = 0
/minus2 = 0
/minus3 = 0
/minus4 = 0
/N = 0
/currenttarget = 0

/Hits = 0
/FalseA = 0
/Misses = 0
/CorrReject = 0
/TotalHits = 0
/TotalFA = 0
/TotalMisses = 0
/TotalCR = 0

/Hits_easy1 = 0
/FalseA_easy1 = 0
/Misses_easy1 = 0
/CorrReject_easy1 = 0
/TotalHits_easy1 = 0
/TotalFA_easy1 = 0
/TotalMisses_easy1 = 0
/TotalCR_easy1 = 0

/Hits_easy2 = 0
/FalseA_easy2 = 0
/Misses_easy2 = 0
/CorrReject_easy2 = 0
/TotalHits_easy2 = 0
/TotalFA_easy2 = 0
/TotalMisses_easy2 = 0
/TotalCR_easy2 = 0

/Hits_hard1 = 0
/FalseA_hard1 = 0
/Misses_hard1 = 0
/CorrReject_hard1 = 0
/TotalHits_hard1 = 0
/TotalFA_hard1 = 0
/TotalMisses_hard1 = 0
/TotalCR_hard1 = 0

/Hits_hard2 = 0
/FalseA_hard2 = 0
/Misses_hard2 = 0
/CorrReject_hard2 = 0
/TotalHits_hard2 = 0
/TotalFA_hard2 = 0
/TotalMisses_hard2 = 0
/TotalCR_hard2 = 0

/TotalBlocks = 0
/starttrialcounter = 0
/repetitioncounter = 0

/trial_Hit = 0
/trial_Miss = 0
/trial_CR = 0
/trial_FA = 0

/trialcount_easy1 = 0
/count_target_easy1 = 0
/count_nontarget_easy1 = 0

/trialcount_easy2 = 0
/count_target_easy2 = 0
/count_nontarget_easy2 = 0

/trialcount_hard1 = 0
/count_target_hard1 = 0
/count_nontarget_hard1 = 0

/trialcount_hard2 = 0
/count_target_hard2 = 0
/count_nontarget_hard2 = 0

/sumrt_target_easy1 = 0
/sumrt_target_hard1 = 0
/sumrt_nontarget_easy1 = 0
/sumrt_nontarget_hard1 = 0

/sumrt_target_easy2 = 0
/sumrt_target_hard2 = 0
/sumrt_nontarget_easy2 = 0
/sumrt_nontarget_hard2 = 0

</values>

<expressions>
/errors_easy= expressions.fa_easy+ expressions.oe_easy
/errors_hard= expressions.errors_hard+ expressions.oe_hard
/FA_easy = values.TotalFA_easy1 + values.TotalFA_easy2
/FA_hard = values.TotalFA_hard1 + values.TotalFA_hard2
/OE_easy = values.TotalMisses_easy1 + values.Misses_easy2
/OE_hard = values.TotalMisses_hard1 + values.Misses_hard2

/correctresponse_easy= expressions.hits_easy+expressions.cr_easy
/correctresponse_hard=expressions.hits_hard+expressions.cr_hard
/Hits_easy =values.TotalHits_easy1 + values.TotalHits_easy2
/Hits_hard=values.TotalHits_hard1 + values.TotalHits_hard2
/CR_easy=values.corrreject_easy1 + values.corrreject_easy2
/CR_hard=values.corrreject_hard1+values.corrreject_hard2

/ meanlatency.easy = meanlatency(trial.target_easy1, trial.target_easy2, trial.nontarget_easy1, trial.nontarget_easy2)
/ meanlatency.hard = meanlatency(trial.target_hard1, trial.target_hard2, trial.nontarget_hard1, trial.nontarget_hard2)

/sumrt_target_easy= values.sumrt_target_easy1 +values.sumrt_target_easy2
/sumrt_target_hard=values.sumrt_target_hard1+values.sumrt_target_hard2
/sumrt_nontarget_easy= values.sumrt_nontarget_easy1+values.sumrt_nontarget_easy2
/sumrt_nontarget_hard=values.sumrt_nontarget_hard1+values.sumrt_nontarget_hard2

/meanrt_target_easy=expressions.sumrt_target_easy/expressions.Hits_easy
/meanrt_target_hard=expressions.sumrt_target_hard/expressions.Hits_hard

</expressions>

<data>
/ file = "NBack_rawdata.iqdat"
/ columns = [date, time, subject, values.N, blockcode, values.TotalBlocks, trialcode, trialnum, stimulusitem, stimulusnumber,
                values.currenttarget, response, latency, correct, values.trial_Hit, values.trial_FA, values.trial_Miss, values.trial_CR,
                values.Hits_easy1, values.FalseA_easy1, values.Misses_easy1, values.CorrReject_easy1, values.Hits_easy2, values.FalseA_easy2, values.Misses_easy2, values.CorrReject_easy2, values.Hits_hard1, values.FalseA_hard1,values.Misses_hard1, values.CorrReject_hard1,values.Hits_hard2, values.FalseA_hard2, values.Misses_hard2, values.CorrReject_hard2, values.TotalHits, values.TotalFA, values.TotalMisses, values.TotalCR, latency, values.trial.misses, values.sumrt_target_easy1, values.sumrt_target_easy2,values.sumrt_target_hard1, values.sumrt_target_hard2,values.sumrt_nontarget_easy1, values.sumrt_nontarget_easy2, values.sumrt_nontarget_hard1, values.sumrt_nontarget_hard2 ]
/ separatefiles = false
</data>


<summarydata >
/ file = "NBack_summary.iqdat"
/ columns = [script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, values.completed, values.TotalHits, values.TotalFA, values.TotalMisses, values.TotalCR, expressions.errors_easy, expressions.fa_easy, expressions.oe_easy, expressions.errors_hard, expressions.fa_hard, expressions.oe_hard, expressions.correctresponse_easy, expressions.hits_easy, expressions.cr_easy, expressions.correctresponse_hard, expressions.hits_hard, expressions.cr_hard, expressions.sumrt_target_easy, expressions.sumrt_target_hard, expressions.sumrt_nontarget_easy, expressions.sumrt_nontarget_hard, expressions.meanrt_target_easy, expressions.meanrt_target_hard]
</summarydata>
************************************************************************************************************************************************************************
                                                                DATA COLLECTION

this implementation suggests to collect the following information:
date:                        Date of Experiment
time:                        Time of Day
subject:                    Subjectnumber
values.N:                    the type of N-back trial 
blockcode:                    the name of the current block
values.TotalBlocks:            the total number of experimental blocks run
trialcode:                    the name of the current trial
stimulusitem:                the file of the stimulus shown during a trial
stimulusnumber:                the item number of the stimulus shown during a trial
values.currenttarget:        the item number of the current target
response:                    the response of the participant (30 = "A", 38 = "L", 0 = noresponse & invalid keys)
latency:                    how fast a participant responded within the 3000ms timeframe, if at all
                            Note: if noresponse or invalid keys, latency = 3000
correct:                    the correctness of the response
values.trial_Hit:            whether it was a Hit (=1)
values.trial_FA:            whether it was a False Alarm (=1)
values.trial_Miss:            whether it was  Miss (=1)
values.trial_CR:            whether it was a Correct Rejection ( = 1)
values.Hits:                the sum of Hits in a block
values.FalseA:                the sum of False Alarms in a block
values.Misses:                the sum of Misses in a block
values.CorrReject:            the sum of Correct Rejections in a block
values.TotalHits:            the sum of total hits across all experimental blocks
values.TotalFA:                the number of total false alarms across all experimental blocks


************************
raw data
************************


************************
summary data
************************

script.startdate:                date script was run
script.starttime:                time script was started
script.subjectid:                subject id number
script.groupid:                    group id number
script.elapsedtime:                time it took to run script (in ms)
/completed:                        0 = script was not completed (script was prematurely aborted); 1 = script was completed (all conditions run)

values.TotalHits:                the sum of total hits across all experimental blocks
values.TotalFA:                    the number of total false alarms across all experimental blocks
values.TotalMisses:                the sum of Misses in a block
values.TotalCR:                    the sum of Correct Rejections in a block



+++++++++++++++++++++++++++
Expressions
+++++++++++++++++++++++++++
errors_easy:    total of false alarms and omission errors in the easy condition
errors_hard:    total of false alarms and omission errors in the hard condition
FA_easy:    total of false alarms in the easy condition
OE_easy:    total of omission errors in the hard condition
FA_hard:    total of false alarms in the hard condition
OE_hard:    total of omission errors in the hard condition

correctresponse_easy:     total of hits and correct rejections in the easy condition
correctresponse_hard:    total of hits and correct rejections in the hard condition
Hits_easy:                total of hits in the easy condition
Hits_hard:                 total of hits in the hard condition
CR_easy:                total of correct rejections in the easy condition
CR_hard:                total of correct rejections in the hard condition




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

EXPERIMENT


<expt>
/ onexptbegin = [if (values.debugmode == 1) text.targetalert.textcolor = (red)]
/ preinstructions = (intro1, intro2)
/ blocks = [1 = practice_easy; 2 = intro3; 3 = practice_hard; 4= inter1; 5= nback_easy1; 6= inter2; 7=nback_hard1; 8= inter3; 9=nback_easy2; 10=inter4; 11= nback_hard2]
/ onexptend = [values.completed = 1]
/ postinstructions = (end)
</expt>


PRACTICE-BLOCKS


<block practice_easy>
/ onblockbegin = [values.N = 1]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.TotalBlocks += 1;
                        values.starttrialcounter = 0;
                        values.repetitioncounter += 1;
                        ]
/ trials = [1 = start; 2-25 = noreplace(nontarget, nontarget, nontarget, target)]
/ errormessage = true(ErrorFeedback, 500)
/ correctmessage = true(CorrectFeedback, 500)
/ screencolor = (255, 255, 255)
/ recorddata = false
</block>

<block practice_hard>
/ onblockbegin = [values.N = 3]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.TotalBlocks += 1;
                        values.starttrialcounter = 0;
                        values.repetitioncounter += 1;
                        ]
/ trials = [1 = start; 2-25 = noreplace(nontarget, nontarget, nontarget, target)]
/ errormessage = true(ErrorFeedback, 500)
/ correctmessage = true(CorrectFeedback, 500)
/ screencolor = (255, 255, 255)
/ recorddata = false
</block>

EXPERIMENTAL-BLOCKS

<block nback_easy1>
/ onblockbegin = [values.N = 1; values.TotalHits_easy1 = 0; values.TotalFA_easy1 = 0; values.TotalBlocks = 0; values.TotalMisses_easy1 = 0; values.TotalCR_easy1 = 0]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.Hits_easy1 = 0; values.FalseA_easy1 = 0; values.Misses_easy1 = 0; values.CorrReject_easy1 = 0;
                        ]
/ trials = [1 = start; 2 - 25 = noreplace(nontarget_easy1, nontarget_easy1, nontarget_easy1, target_easy1)]
/ errormessage = true(Eraser, 500)
/ correctmessage = true(Eraser, 500)
/ screencolor = (255, 255, 255)
</block>

<block nback_hard1>
/ onblockbegin = [values.N = 3; values.TotalHits_hard1 = 0; values.TotalFA_hard1 = 0; values.TotalBlocks = 0; values.TotalMisses_hard1 = 0; values.TotalCR_hard1 = 0]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.Hits_hard1 = 0; values.FalseA_hard1 = 0; values.Misses_hard1 = 0; values.CorrReject_hard1 = 0;
                        values.TotalBlocks += 1;
                        values.starttrialcounter = 0;
                        values.repetitioncounter += 1;
                        ]
/ trials = [1 = start; 2 - 25 = noreplace(nontarget_hard1, nontarget_hard1, nontarget_hard1, target_hard1)]
/ errormessage = true(Eraser, 500)
/ correctmessage = true(Eraser, 500)
/ screencolor = (255, 255, 255)
</block>

<block nback_easy2>
/ onblockbegin = [values.N = 1; values.TotalHits_easy2 = 0; values.TotalFA_easy2 = 0; values.TotalBlocks = 0; values.TotalMisses_easy2 = 0; values.TotalCR_easy2 = 0]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.Hits_easy2 = 0; values.FalseA_easy2 = 0; values.Misses_easy2 = 0; values.CorrReject_easy2 = 0;
                        values.TotalBlocks += 1;
                        values.starttrialcounter = 0;
                        values.repetitioncounter += 1;
                        ]
/ trials = [1 = start; 2 - 25 = noreplace(nontarget_easy2, nontarget_easy2, nontarget_easy2, target_easy2)]
/ errormessage = true(Eraser, 500)
/ correctmessage = true(Eraser, 500)
/ screencolor = (255, 255, 255)
</block>

<block nback_hard2>
/ onblockbegin = [values.N = 3; values.TotalHits_hard2 = 0; values.TotalFA_hard2 = 0; values.TotalBlocks = 0; values.TotalMisses_hard2 = 0; values.TotalCR_hard2 = 0]
/ onblockbegin = [
                        values.currenttarget = 0; values.minus1 = 0; values.minus2 = 0; values.minus3 = 0; values.minus4 = 0;
                        values.Hits_hard2 = 0; values.FalseA_hard2 = 0; values.Misses_hard2 = 0; values.CorrReject_hard2 = 0;
                        values.TotalBlocks += 1;
                        values.starttrialcounter = 0;
                        values.repetitioncounter += 1;
                        ]
/ trials = [1 = start; 2 - 25 = noreplace(nontarget_hard2, nontarget_hard2, nontarget_hard2, target_hard2)]
/ errormessage = true(Eraser, 500)
/ correctmessage = true(Eraser, 500)
/ screencolor = (255, 255, 255)
</block>



INSTRUCTIONS
<instruct>
/ windowsize = (1000,700)
/ inputdevice = keyboard
/ prevkey = (28)
/ nextkey = (57)
/ prevlabel = "Zurück [Enter]"
/ nextlabel = "Weiter [Leertaste]"
/ finishlabel = "Aufgabe starten [Leertaste]"
</instruct>


<htmlpage intro1>
/ file = "nbackintro1.htm"
</htmlpage>

<htmlpage intro2>
/ file = "nbackintro2easy.htm"
</htmlpage>

<htmlpage intro3>
/ file = "nbackintro2hard.htm"
</htmlpage>

<htmlpage inter1>
/ file = "nbackinter1easy.htm"
</htmlpage>

<htmlpage inter2>
/ file = "nbackinter2hard.htm"
</htmlpage>

<htmlpage inter3>
/ file = "nbackinter3easy.htm"
</htmlpage>

<htmlpage inter4>
/ file = "nbackinter4hard.htm"
</htmlpage>

<htmlpage end>
/ file = "nback_end.htm"
</htmlpage>

<block intro3>
/ preinstructions = (intro3)
/ recorddata = false
</block>

<block inter1>
/ preinstructions = (inter1)
/ recorddata = false
</block>

<block inter2>
/ preinstructions = (inter2)
/ recorddata = false
</block>

<block inter3>
/ preinstructions = (inter3)
/ recorddata = false
</block>

<block inter4>
/ preinstructions = (inter4)
/ recorddata = false
</block>

<block end>
/ preinstructions = (end)
/ recorddata = false
</block>


SHAPES
<item shapes>
/ 1 = "flash1.png"
/ 2 = "flash2.png"
/ 3 = "flash3.png"
/ 4 = "flash4.png"
/ 5 = "flash5.png"
/ 6 = "flash6.png"
/ 7 = "flash7.png"
/ 8 = "flash8.png"
</item>

************************************************************************************************************************************************************************
                                                                    STIMULI-SELECTION

****List Variable to select notargetvalue

*list.notargetvalue selects any of the 8 numbers (item indices) but the one selected for values.currenttarget
<list notargetvalue>
/ items = (1, 2, 3, 4, 5, 6, 7, 8)
/ not = (values.currenttarget)
/ replace = true
</list>


***randomly selects one of the shapes
<picture startshape>
/ items = shapes
/ select = replace
/ size = (30%, 30%)
</picture>

***selects any shape but the  established target
<picture nontargetshape>
/ items = shapes
/ select = notargetvalue
/ size = (30%, 30%)
</picture>

***selects the item with the same item number as the established target
<picture targetshape>
/ items = shapes
/ select = values.currenttarget
/ size = (30%, 30%)
</picture>

************************************************************************************************************************************************************************
                                                        FEEDBACK MESSAGES FOR PRACTICE TRIALS ONLY
<picture CorrectFeedback>
/ items = ("happyc.png")
/ position = (50, 50)
/ size = (30%,30%)
</picture>

<picture ErrorFeedback>
/ items = ("sadc.png")
/ position = (50, 50)
/ size = (30%,30%)
</picture>

************************************************************************************************************************************************************************
                                                                ASSISTANT STIMULI

*****acts as an eraser after showing the key stimuli for 500ms, staying on for the remainder of the time dedicated to each trial
<picture eraser>
/ items = ("flash9.png")
/ position = (50, 50)
/ size = (30%,30%)
</picture>

*****Debug Code:
<text targetalert>
/ items = ("target")
/ position = (50%, 80%)
/ txcolor = (255, 255, 255)
/ txbgcolor = (255, 255, 255)
/ fontstyle = ("Arial", 3%, true, false, false, false, 5, 1)
</text>

<text fixcross>
/ items = ("+")
/ fontstyle = ("Arial", 34pt)
</text>

************************************************************************************************************************************************************************
                                                                            TRIALS

<trial start>
/ stimulustimes = [0=fixcross; 300= startshape; 2500 = Eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                        values.starttrialcounter += 1;
                    ]
/ ontrialend = [   
                        {if (values.N == 0) values.currenttarget = picture.startshape.currentitemnumber};
                        values.minus3 = values.minus2;
                        values.minus2 = values.minus1;
                        values.minus1 = picture.startshape.currentitemnumber
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
/ recorddata = false
/ branch = [if (values.starttrialcounter < values.N) trial.start]
</trial>


<trial nontarget>
/ stimulustimes = [0=fixcross; 300 = nontargetshape; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3}   
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ recorddata = false
/ timeout = 2500
</trial>

<trial nontarget_easy1>
/ stimulustimes = [0=fixcross; 300 = nontargetshape; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3}   
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_easy1 += 1; values.count_nontarget_easy1 += 1]
/ ontrialend = [if (trial.nontarget_easy1.response != 0) {values.sumrt_nontarget_easy1 += trial.nontarget_easy1.latency}]
/ ontrialend = [
                        values.minus3 = values.minus2;
                        values.minus2 = values.minus1;
                        values.minus1 = picture.nontargetshape.currentitemnumber;
                        values.CorrReject= values.CorrReject+ trial.nontarget.correct;
                        values.trial_CR = trial.nontarget.correct;
                        values.FalseA = values.FalseA + trial.nontarget.error;
                        values.trial_FA = trial.nontarget.error;
                        values.TotalFA = values.TotalFA + trial.nontarget.error;
                        values.TotalCR = values.TotalCR + trial.nontarget.correct;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial nontarget_easy2>
/ stimulustimes = [0=fixcross; 300 = nontargetshape; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3}   
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_easy2 += 1; values.count_nontarget_easy2 += 1]
/ ontrialend = [if (trial.nontarget_easy2.response != 0) {values.sumrt_nontarget_easy2 += trial.nontarget_easy2.latency}]
/ ontrialend = [
                        values.minus3 = values.minus2;
                        values.minus2 = values.minus1;
                        values.minus1 = picture.nontargetshape.currentitemnumber;
                        values.CorrReject = values.CorrReject + trial.nontarget.correct;
                        values.trial_CR = trial.nontarget.correct;
                        values.FalseA = values.FalseA+ trial.nontarget.error;
                        values.trial_FA = trial.nontarget.error;
                        values.TotalFA= values.TotalFA + trial.nontarget.error;
                        values.TotalCR = values.TotalCR + trial.nontarget.correct;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial nontarget_hard1>
/ stimulustimes = [0=fixcross; 300 = nontargetshape; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3}   
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_hard1 += 1; values.count_nontarget_hard1 += 1]
/ ontrialend = [if (trial.nontarget_hard1.response != 0) {values.sumrt_nontarget_hard1 += trial.nontarget_hard1.latency}]
/ ontrialend = [
                        values.minus3 = values.minus2;
                        values.minus2 = values.minus1;
                        values.minus1 = picture.nontargetshape.currentitemnumber;
                        values.CorrReject = values.CorrReject + trial.nontarget.correct;
                        values.trial_CR = trial.nontarget.correct;
                        values.FalseA = values.FalseA + trial.nontarget.error;
                        values.trial_FA = trial.nontarget.error;
                        values.TotalFA = values.TotalFA + trial.nontarget.error;
                        values.TotalCR= values.TotalCR + trial.nontarget.correct;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial nontarget_hard2>
/ stimulustimes = [0=fixcross; 300 = nontargetshape; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (44)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3}   
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_hard1 += 1; values.count_nontarget_hard2 += 1]
/ ontrialend = [if (trial.nontarget_hard2.response != 0) {values.sumrt_nontarget_hard2 += trial.nontarget_hard2.latency}]
/ ontrialend = [
                        values.minus3 = values.minus2;
                        values.minus2 = values.minus1;
                        values.minus1 = picture.nontargetshape.currentitemnumber;
                        values.CorrReject = values.CorrReject + trial.nontarget.correct;
                        values.trial_CR = trial.nontarget.correct;
                        values.FalseA = values.FalseA + trial.nontarget.error;
                        values.trial_FA = trial.nontarget.error;
                        values.TotalFA = values.TotalFA + trial.nontarget.error;
                        values.TotalCR = values.TotalCR + trial.nontarget.correct;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial target>
/ stimulustimes = [0=fixcross; 300= targetshape, targetalert; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (50)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                    ]
/ ontrialend = [
                    values.minus3 = values.minus2;
                    values.minus2 = values.minus1;
                    values.minus1 = picture.targetshape.currentitemnumber;
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ recorddata = false
/ timeout = 2500
</trial>

<trial target_easy1>
/ stimulustimes = [0=fixcross; 300= targetshape, targetalert; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (50)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_easy1 += 1; values.count_target_easy1 += 1]
/ ontrialend = [if (trial.target_easy1.response != 0) {values.sumrt_target_easy1 += trial.target_easy1.latency}]
/ ontrialend = [
                    values.minus3 = values.minus2;
                    values.minus2 = values.minus1;
                    values.minus1 = picture.targetshape.currentitemnumber;
                    values.Hits = values.Hits+ trial.target.correct;
                    values.trial_Hit =  trial.target.correct;
                    values.Misses = values.Misses + trial.target.error;
                    values.trial_Miss =  trial.target.error;
                    values.TotalHits = values.TotalHits + trial.target.correct;
                    values.TotalMisses = values.TotalMisses + trial.target.error;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial target_easy2>
/ stimulustimes = [0=fixcross; 300= targetshape, targetalert; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (50)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_easy2 += 1; values.count_target_easy2 += 1]
/ ontrialend = [if (trial.target_easy2.response != 0) {values.sumrt_target_easy2 += trial.target_easy2.latency}]
/ ontrialend = [
                    values.minus3 = values.minus2;
                    values.minus2 = values.minus1;
                    values.minus1 = picture.targetshape.currentitemnumber;
                    values.Hits= values.Hits + trial.target.correct;
                    values.trial_Hit =  trial.target.correct;
                    values.Misses= values.Misses + trial.target.error;
                    values.trial_Miss =  trial.target.error;
                    values.TotalHits = values.TotalHits + trial.target.correct;
                    values.TotalMisses = values.TotalMisses + trial.target.error;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial target_hard1>
/ stimulustimes = [0=fixcross; 300= targetshape, targetalert; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (50)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_hard1 += 1; values.count_target_hard1 += 1]
/ ontrialend = [if (trial.target_hard1.response != 0) {values.sumrt_target_hard1 += trial.target_hard1.latency}]
/ ontrialend = [
                    values.minus3 = values.minus2;
                    values.minus2 = values.minus1;
                    values.minus1 = picture.targetshape.currentitemnumber;
                    values.Hits = values.Hits + trial.target.correct;
                    values.trial_Hit =  trial.target.correct;
                    values.Misses = values.Misses + trial.target.error;
                    values.trial_Miss =  trial.target.error;
                    values.TotalHits = values.TotalHits + trial.target.correct;
                    values.TotalMisses = values.TotalMisses + trial.target.error;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>

<trial target_hard2>
/ stimulustimes = [0=fixcross; 300= targetshape, targetalert; 2500 = eraser]
/ validresponse = (44, 50)
/ correctresponse = (50)
/ ontrialbegin = [
                        {if (values.N == 1) values.currenttarget = values.minus1};
                        {if (values.N == 2) values.currenttarget = values.minus2};
                        {if (values.N == 3) values.currenttarget = values.minus3};
                    ]
/ ontrialbegin = [values.trial_Hit = 0; values.trial_Miss = 0; values.trial_CR = 0; values.trial_FA = 0]
/ ontrialbegin = [values.trialcount_hard2 += 1; values.count_target_hard2 += 1]
/ ontrialend = [if (trial.target_hard2.response != 0) {values.sumrt_target_hard2 += trial.target_hard2.latency}]
/ ontrialend = [
                    values.minus3 = values.minus2;
                    values.minus2 = values.minus1;
                    values.minus1 = picture.targetshape.currentitemnumber;
                    values.Hits = values.Hits + trial.target.correct;
                    values.trial_Hit =  trial.target.correct;
                    values.Misses= values.Misses + trial.target.error;
                    values.trial_Miss =  trial.target.error;
                    values.TotalHits= values.TotalHits + trial.target.correct;
                    values.TotalMisses = values.TotalMisses + trial.target.error;
                    ]
/ beginresponsetime = 300
/ responseinterrupt = immediate
/ timeout = 2500
</trial>



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: 104K
The problem is a fatal error in one of your <expressions>

<expressions>
...
/errors_hard = (expressions.errors_hard + expressions.oe_hard)
...
</expressions>

Note that the expressions refers to *itself*, i.e., it is recursive. This cannot be sensibly evaluated (i.e., there can be no meaningful end result), leads to an infinite loop (the expression runs itself over and over again) and ultimately a crash.

A personal request: If possible, please do not paste entire scripts into the message body. Instead use the forum's file attachment facilities to attach the actual script file. Thanks.

Ulrike Nestler
Ulrike Nestler
Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)Distinguished Member (2.7K reputation)
Group: Forum Members
Posts: 17, Visits: 41
Hello Dave,

yes, thanks so much! That was the error! A writing mistake due to lack of concentration I guess... And yes, of course, next time I will use the attachment facilities. Sorry, didn't see it.

Have a great day!
Kind regards,
Ulrike

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search