Millisecond Forums

Response time measurement

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

By sarahlynmart@gmail.com - 1/3/2017

Hello,

I want to measure participants' reaction time in response to stimulus onset.  I currently have /beginresponsetime written into the code, and while it does measure reaction time, there is no longer a fixation cross presented after each stimulus' trial (the triangle stimulus just goes into the next stimulus without a fixation cross separating each trial).  I have copied/pasted the triangle trial below so you can give me suggestions on how to measure reaction time AND keep the fixation cross.  Thank you.

<trial triangle>
/ ontrialbegin = [values.category = "triangle"]
/ ontrialbegin = [values.itemnumber = list.triangleitems.nextvalue]
stimulustimes = [0 = fixationcross; 500 = triangle; 1200 = shape.eraser; 1201 = fixationcross]
/stimulustimes = [0 = triangle; 1500 = shape.eraser; 1501 = fixationcross]
/inputdevice = keyboard
/ isvalidresponse = [values.responsekey]
iscorrectresponse = [values.responsekey = 1]
/ beginresponsetime = 0
/ timeout = (values.fixationduration + values.trianglepresentation)
/ posttrialpause = rand(values.iti_min, values.iti_max)
</trial>
By Dave - 1/3/2017

sarahlynmart@gmail.com - Tuesday, January 3, 2017
Hello,

I want to measure participants' reaction time in response to stimulus onset.  I currently have /beginresponsetime written into the code, and while it does measure reaction time, there is no longer a fixation cross presented after each stimulus' trial (the triangle stimulus just goes into the next stimulus without a fixation cross separating each trial).  I have copied/pasted the triangle trial below so you can give me suggestions on how to measure reaction time AND keep the fixation cross.  Thank you.

<trial triangle>
/ ontrialbegin = [values.category = "triangle"]
/ ontrialbegin = [values.itemnumber = list.triangleitems.nextvalue]
stimulustimes = [0 = fixationcross; 500 = triangle; 1200 = shape.eraser; 1201 = fixationcross]
/stimulustimes = [0 = triangle; 1500 = shape.eraser; 1501 = fixationcross]
/inputdevice = keyboard
/ isvalidresponse = [values.responsekey]
iscorrectresponse = [values.responsekey = 1]
/ beginresponsetime = 0
/ timeout = (values.fixationduration + values.trianglepresentation)
/ posttrialpause = rand(values.iti_min, values.iti_max)
</trial>

A <trial>'s default behavior is to terminate / go to the /posttrialpause as soon as a response has occurred. You can modify this behavior via the /responseinterrupt attribute. In your case, you'll probably want to set it to 'frames':

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

Note, too, that by default stimuli will be erased when the trial terminates / during /posttrialpause. You can modify this behavior by setting the respective stimulus elements' /erase attributes to 'false'.

https://www.millisecond.com/support/docs/v5/html/language/attributes/erase.htm

Also see http://www.millisecond.com/support/docs/v5/html/howto/howtoerase.htm for an explanation of the erasing behavior.

Beyond that, there are a couple of issues with the <trial> code you posted. (1) You may not have multiple /stimulustimes attributes in a given <trial>, only one. I'm not sure whether one of them is just a remnant of previous edits or if you intend both to work. (2) Both the /isvalidresponse and /iscorrectresponse attributes are not functional in their current state. Here, too, I'm not sure whether that just reflects an early state of development or a genuine mistake.