Millisecond Forums

Responses not recorded?

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

By gracethenoob - 5/5/2016

Hello,

I have an experiment in which participants see a stream of images and must report whether some target image within that stream is facing left or facing right. So far, the presentation of the trials is going perfect - everything shows up at the right time and in the right order but when I run the script in monkey mode, none of the responses are recorded. (I tested this on other scripts and responses are being recorded for them so it's not a program-wide problem). I cannot figure out what's different/incorrect about my script! Any suggestions?

Things that are correct in the data file:
-date, time, subject, blockcode, trialcode
-values that do not rely on participant response (e.g., what position the target is within the image stream)

Things that are incorrect in the data file:
-response -> all zeros
-correct -> all zeros
-latency -> all zeros except my rest trial which gives the rest duration
-values that do rely on participant response (e.g., the count of how many trials have been correct so far for a particular trial type) -> all zeros


Here is an abridged version of my script:

<trial TR_SOA150_pos14>
/ontrialbegin = [list.fillers.reset();]
/stimulustimes = [0 = fixation;
500 = filler01; 600 = eraser;
610 = filler02; 750 = eraser;
760 = filler03; 900 = eraser;
910 = filler04; 1050 = eraser;
1060 = filler05; 1200 = eraser;
1210 = filler06; 1350 = eraser;
1360 = filler07; 1500 = eraser;
1510 = filler08; 1650 = eraser;
1660 = filler09; 1800 = eraser;
1810 = filler10; 1950 = eraser;
1960 = filler11; 2100 = eraser;
2110 = filler12; 2250 = eraser;
2260 = filler13; 2400 = eraser;
2410 = target_right; 2550 = eraser;
2560 = filler14; 2700 = eraser;
2710 = filler15; 2850 = eraser;
2860 = filler16; 3000 = eraser;
3010 = responsecue]
/timeout = 2000
/recorddata = true
/correctresponse = ("H")
/validresponse = ("G", "H")
/ontrialbegin = [values.target_pos = 14; values.SOA =  150]
/ontrialend = [if(trial.TR_SOA150_pos14.correct) {values.150count +=  1}]
</trial>



<block titrate>
/trials = [1 = instructions1; 2 = instructions2;  3 = instructions3; 4 = instructions4; 
           5-9 = noreplacenorepeat(Tl_SOA150_pos10, Tl_SOA150_pos12, TL_SOA150_pos14, TR_SOA150_pos10, TR_SOA150_pos12, TR_SOA150_pos14)]
</block>


<expt >
/blocks = [1 = titrate]
</expt>


<data titration_data>
/ file = "titration_data.iqdat"
/ columns = [date, time, subject, response, latency, correct, blockcode, trialcode, values.SOA, values.target_pos, values.150count]
/ separatefiles = true
</data>

By Dave - 5/5/2016

<trial TR_SOA150_pos14>
...
/stimulustimes = [0 = fixation;
500 = filler01; 600 = eraser;
...
3010 = responsecue]
/timeout = 2000
...
</trial>

The <trial> is set to time out -- i.e. *not accept any more responses* -- after 2000ms, that is before it even would have started *listening for responses* which only happens once all stimuli specified in /stimulustimes have been presented (after 3010ms).

That's why you see nothing recorded.

If you want to allow for 2000ms time to submit a response after the presentation of 'responsecue', you ought to specify

<trial TR_SOA150_pos14>
...
/stimulustimes = [0 = fixation;
500 = filler01; 600 = eraser;
...
3010 = responsecue]
/timeout = 5010
...
</trial>

For details on the various timing components of a trial and how they relate to each other, see the diagram and accompanying explanations in the "How to Control Trial Duration and Inter-Trial Intervals" topic in the Inquisit documentation:

https://www.millisecond.com/support/docs/v4/html/howto/howtocontroltiming.htm