Millisecond Forums

responseinterrupt = trial has no effect?

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

By SpoHo - 11/16/2014

Hi!

I want to present Stimuli, and get the user's response. I also want to show an errormessage, if the answer is wrong.
But: I want the duration for the stimuli to be the same, no matter after how many milliseconds the user answers.

Here is my code:

<trial eegvovax>
/stimulusframes = [1=eegvovax]
/pretrialpause = values.pretrialeeg
/responseinterrupt = trial
/response = timeout(1250)
/validresponse = (" ")
/correctresponse = (" ")
/errormessage = (eegerror, 500)
</trial>


No matter if i set the responseinterrupt value to immediate, trial or frames, the response always cancels the trial.

Could you help me please? :)
Thanks for the great support so far!




By Dave - 11/16/2014

As per the documentation, /responseinterrupt=trial means

"Any remaining frames in the trial are presented before the stimuli are erased. Any media stimuli (sound or video) are played to completion before Inquisit advances to the next trial."

Since your trial only presents a single frame at the very start

/stimulusframes = [1=eegvovax]

there is nothing /responseinterrupt=trial could have any effect on -- there are no more frames that could or should be displayed.

If you want the stimulus "eegvovax" to remain on-screen after receiving a response, set its /erase attribute to false.

Also note that a *timeout* merely determines a trial's *maximum* duration -- it will terminate immediately once a response has been received. If you want your trial to have a *fixed* duration, you ought to use /trialduration.
By SpoHo - 11/16/2014

hi dave! thanks a lot!

erase does the trick.

Now I only have the problem, that my pretrialpause is being ignored. The stimuli are displayed the whole time, without pauses between them.
Do you have a quick fix for that?
By Dave - 11/16/2014

The pretrialpause isn't ignored. /erase=false means the stimulus will not be erased at the end of a trial, i.e., it will remain on-screen in subsequent trials (including during pre- and posttrialpause) until overwritten by another stimulus (which is what you have to do at some appropriate point in time).
By SpoHo - 11/16/2014

so i would need something like:

my stimuluselement: erase false
identical stimuluselement: erase: true

and then something like a function i haven't found yet:

onresponse: identical_stimuluselement.show() ?

i just can't translate that to inquisit syntax :(
By Dave - 11/16/2014

If you want to display a stimulus upon a response, use the /responsemessage attribute.