Millisecond Forums

Responses not recorded when stimuli exist near the end of the trial

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

By nidhi_desai - 1/13/2021

In my experiment, I have some stimuli at the beginning of a trial and some at the end. The end stimuli are not based on the participant's response. I have observed that when I have the 2 stimuli at the end of the trial, I don't record any responses i.e. trial.Que.response =0, when I am pressing the valid buttons during the trial. Why might this be the case and can you suggest a workaround for this?

<trial Que>
/ stimulustimes = [0 = shieldK, shieldS; 1 = portETdisplayOn; 2998 = portETdisplayOff; 2999 = portETtrialEnd]
/ timeout = 3000
/ validresponse = (31, 37, noresponse)
/ isvalidresponse = [
if (trial.Que.response == 31) {
values.sKeyPress += 1;
}
/ responsemessage = (31, portETresponse, 1)
/ responsemessage = (37, portETresponse, 1)
/ responseinterrupt = trial
</trial>

By Dave - 1/13/2021

nidhi_desai - 1/14/2021
In my experiment, I have some stimuli at the beginning of a trial and some at the end. The end stimuli are not based on the participant's response. I have observed that when I have the 2 stimuli at the end of the trial, I don't record any responses i.e. trial.Que.response =0, when I am pressing the valid buttons during the trial. Why might this be the case and can you suggest a workaround for this?

<trial Que>
/ stimulustimes = [0 = shieldK, shieldS; 1 = portETdisplayOn; 2998 = portETdisplayOff; 2999 = portETtrialEnd]
/ timeout = 3000
/ validresponse = (31, 37, noresponse)
/ isvalidresponse = [
if (trial.Que.response == 31) {
values.sKeyPress += 1;
}
/ responsemessage = (31, portETresponse, 1)
/ responsemessage = (37, portETresponse, 1)
/ responseinterrupt = trial
</trial>


By default, Inquisit recognizes responses that occur after the stimulus presentation sequence, and responses given during the presentation are ignored. To change that, use /beginresponsetime = 0, which will allow responses from the start of the stimulus presentation sequence. I.e. something like

<trial Que>
/ ontrialbegin = [trial.Que.resetstimulusframes();]
/ stimulustimes = [0 = shieldK, shieldS; 1 = portETdisplayOn; 2998 = portETdisplayOff; 2999 = portETtrialEnd]
/ timeout = 3000
/ validresponse = (31, 37, noresponse)
/ isvalidresponse = [
  if (trial.Que.response == 31) {
   values.sKeyPress += 1;
}
/ responsemessage = (31, portETresponse, 1)
/ responsemessage = (37, portETresponse, 1)
/ responseinterrupt = frames
/ beginresponsetime = 0

</trial>

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