Millisecond Forums

Stimulus Sequence under Control of Reponse

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

By MyDoExpress3000 - 2/11/2016

Hey there,

currentlyI'm trying to program my first experiment with Inquisit. The major aspects ofthe experiment work fine. To eliminate confusion in advance, since the scriptmight looks a bit odd, it works as followed.

First Ipresent the fixation stimulus and send a signal to a second computer for forcedetection.

During thesequence of picture stimuli presented, the second computer gets three differentsignals temporally corresponding with the latency of the picture presentation.

Currently Itry to modify the script, that the fixation stimulus is presented, until I givethe correct (and only possible) response. Only after the correct response isgiven, the sequence of picture stimuli und signal output should occur, asdescribed in / ontrialbegin = ...  Untilthis moment, the fixation stimulus should remain on the screen.

Is there apossible easy modification through an "if"-expression? Since I'm notused to program at all, my attempts were quite unsuccessful. Here are relevantaspects of my current script:

**************************************************

<trial mytrial>

/pretrialsignal = (keyboard, 57)

/validresponse = (28)

/correctresponse = (28)

/ontrialbegin =

                [trial.mytrial.setstimulustime(port.fixationsignal,-1000 + list.stimulusinterval.nextvalue);

                trial.mytrial.setstimulustime(picture.AWB1,list.stimulusinterval.nextvalue);

                trial.mytrial.insertstimulustime(port.AWBsignal,list.stimulusinterval.nextvalue);

                trial.mytrial.setstimulustime(picture.AWB2,300 + list.stimulusinterval.nextvalue)]

/ontrialend = [trial.mytrial.resetstimulusframes()]

/stimulustimes = [0 = fixation, signal]

/posttrialsignal = (keyboard, 57)

</trial>

***************************************************

I tried tomodify the script with some expression like this, but I got stuck when it comesto define appropriate syntax in /ontrialbegin:

***************************************************

<trial mytrial>

/pretrialsignal = (keyboard, 57)

/validresponse = (28)

/correctresponse = (28)

/ontrialbegin =

[if(trial.mytrial.correct) ...portfixationsignal,-1000 + list.stimulusinterval.nextvalue; picture.AWB1, stimulusinterval.nextvalue;portAWBsignal, list.stimulusinterval.nextvalue; picture.AWB2, 300 +stimulusinterval.nextvalue]

/ontrialend = [trial.mytrial.resetstimulusframes()]

/stimulustimes = [0 = fixation, signal]

/posttrialsignal = (keyboard, 57)

</trial>

*******************************************

So actuallyI "just" try to get the content of the first script part of /ontrialbegin under the control of a response. The other parts of the script:

*******************************************

<liststimulusinterval>

/ items =(2500, 2750, 3000)

</list>

 

<picturefixation>

/ items =("Abwehr1Schritt1.jpg")

</picture>

 

<pictureAWB1>

/items =("AWB1.jpg")

</picture>

 

<pictureAWB2>

/items =("AWB2.jpg")

</picture>

 

<portsignal>

/ port = COM3

/ subport = data

/ items =("10101010")

</port>

 

<portfixationsignal>

/ port = COM3

/ subport = data

/ items =("01010101")

</port>

 

<port AWBsignal>

/ port =COM3

/ subport =data

/ items =("11110000")

</port>

********************************************

I'mgrateful for any hint how to get the coordinated stimulus sequence undercontrol of the response.

Many thanksin advance

By Dave - 2/11/2016

It seems to me that you should simply have two separate <trial> elements. One that displays the fixation cross and waits for a response, followed by another <trial> element that displays the actual stimuli at the desired interval.
By MyDoExpress3000 - 2/13/2016

Hi Dave,
thanks for your quick reply. So basically you would suggest to split the trial mytrial up to create two seperate trial elements, which are connected through the / branch function? Thanks for your effort :)
By Dave - 2/13/2016

Yes, exactly.