Remove response from trial


Author
Message
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 105K
lukasg - 1/27/2022
lukasg - 1/27/2022
Dave - 1/27/2022

One unrelated remark:
Assuming all your trials are basically identical *except* for the on-screen duration of the digits/target/distracors array, e.g.

/stimulustimes = [0 = clearscreen, fixation; 150 = clearscreen,t, d1, d2 , dig1, dig2; 350 = clearscreen] // 200ms

vs.

/stimulustimes = [0 = clearscreen,fixation; 150 = clearscreen,t, d1, d2 , dig1, dig2; 400 = clearscreen] // 250ms

etc.

you can save yourself a lot of essentially redundant code by having only a single stimulus presentation trial and inserting the final clearscreen stimulus programmatically per insertstimulustime(). https://www.millisecond.com/support/docs/v6/html/language/functions/insertstimulustime.htm

I.e.

<trial presentationTrial>
/ ontrialbegin = [
    trial.presentationTrial.resetstimulusframes();
    trial.presentationTrial.insertstimulustime(clearscreen, 150 + values.targetarrayduration);
    ...
]
/stimulustimes = [0 = clearscreen, fixation; 150 = clearscreen,t, d1, d2 , dig1, dig2;]
...
</trial>

whith values.targetarrayduration set to the desired value for the given block (i.e. 100, 150, 200, etc.).



Great, this seems much more efficient but it messes up the stimulus presentation somehow. I have done this:


<expt IC>
/ blocks = [1 = 250ms]
</expt>


<block 250ms>
/ trials = [1-5 = conjunctionTrial]
/ onblockbegin = [
    values.targetDuration = 250
]
</block>



<openended conjunctionTrial>

/ recorddata = false

/ ontrialbegin = [
    
    openended.conjunctionTrial.insertstimulustime(clearscreen, 150 + values.targetDuration);
    openended.conjunctionTrial.insertstimulustime(enterdig, 150 + values.targetDuration);
    
    // select digit items
    values.dig1 = list.digits.nextvalue;
    values.dig2 = list.digits.nextvalue;
// select target item
values.t = list.t_items.nextvalue;
// select distractor items
values.d1 = list.d_items.nextvalue;
values.d2 = list.d_items.nextvalue;
// select target position
values.t_x = list.t_x.nextvalue;
// select distractor positions
values.d1_x = list.d_x.nextvalue;
values.d2_x = list.d_x.nextvalue;
// select target color
values.t_color = list.t_colors.nextvalue;
// and corresponding response key

// combine digits
    values.correctdigit = concat(values.dig1, values.dig2);

// select distractor colors
values.d1_color = list.d_colors.nextvalue;
values.d2_color = list.d_colors.nextvalue;
    
]

/stimulustimes = [0 = clearscreen, fixation; 150 = clearscreen, t, d1, d2 , dig1, dig2;]
    
/ mask = positiveinteger
/ beginresponsetime = 150 + values.targetDuration
/ mask = positiveinteger
/ charlimit = 2

/ correctresponse = (values.correctdigit)

/ branch = [trial.colorResponse]

/ ontrialend = [
    // save data
    
    values.latencyDigit = openended.conjunctionTrial.latency;
    values.digitResponse = openended.conjunctionTrial.response;

    values.digPropCor = openended.conjunctionTrial.percentcorrect;
    values.digLatAvg = openended.conjunctionTrial.meanlatency;

// reset relevant lists for next trial
list.d_items.reset();
list.d_x.reset();
list.d_colors.reset();
]

</openended>

To clarify, on the 'colorResponse' trial, a response field covers parts of the displayed shaped. I do run 'clearscreen' and do not understand where this comes from

You have not posted any code for the "colorResponse" trial. Please provide code that is actually sufficiently complete and can be run. Otherwise it is not clear at all what you are referring to. Thank you.
lukasg
lukasg
Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)Partner Member (633 reputation)
Group: Forum Members
Posts: 35, Visits: 103
lukasg - 1/27/2022

To clarify, on the 'colorResponse' trial, a response field covers parts of the displayed shaped. I do run 'clearscreen' and do not understand where this comes from


After some trial-and-error I figured the errors only occurs when the trial 'colorResponse' is openended. Although I fixed the issue, I am curious about my clear misunderstanding of the openended trial. What am I getting wrong here, after all, I do want an openended response?

Thanks in advance, Dave!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 105K
lukasg - 1/27/2022
lukasg - 1/27/2022

To clarify, on the 'colorResponse' trial, a response field covers parts of the displayed shaped. I do run 'clearscreen' and do not understand where this comes from


After some trial-and-error I figured the errors only occurs when the trial 'colorResponse' is openended. Although I fixed the issue, I am curious about my clear misunderstanding of the openended trial. What am I getting wrong here, after all, I do want an openended response?

Thanks in advance, Dave!

An <openended> displays a textbox to collect a typed response, so it sounds like it did exactly what you told it to do. You don't want a typed response -- you want a click on one of several colored shapes -- as the color response, that's a job for a <trial> element, not an <openended>.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search