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

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>.

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
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
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
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
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>

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
Dave - 1/27/2022

You commented out the <expt> element, so blocks are run in alphabetical order, so it runs <block 100ms>, etc.

Those blocks all run an openended which then branches to yet another openended. E.g.

<openended trial100>
...
/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]
...
</openended>

Fix your <expt> element and things will work just fine for the block you implemented properly.


Thanks for looking into it, this did indeed fix the issue. Silly mistake - time for coffee. 

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.).



Edited 3 Years Ago by Dave
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
Dave - 1/27/2022

You commented out the <expt> element, so blocks are run in alphabetical order, so it runs <block 100ms>, etc.

Those blocks all run an openended which then branches to yet another openended. E.g.

<openended trial100>
...
/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]
...
</openended>

Fix your <expt> element and things will work just fine for the block you implemented properly.


Thanks for looking into it, this did indeed fix the issue. Silly mistake - time for coffee. 
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
Dave - 1/27/2022
lukasg - 1/27/2022
Dave - 1/27/2022

> I am attempting to add a text above the response on a trial.

What is that supposed to mean?

I also don't understand why you need "1st trial = presentation of stimuli". The <openended> can display those stimuli, there is no need for a separate "presentation of stimuli" trial.

> [...] my 'solution' runs into the issue of presenting the first response box twice, once as part of the 1st trial, and once as part of the 2nd trial.

What?

It may be easier to attach the entire script., hope the issue becomes clear. The participant is prompted twice to enter digits.

I want to present a text box above the response box saying something along the lines of 'enter digits below'.

Look, in the script as you attached it, you run two blocks:

//<expt illusoryConjunction>

// set finishpage to prolific for automatic payment
/ onexptbegin = [defaults.finishpage = "http://www.example.com/"]

// blocks = [1 = practice; 2 = 250ms; 3 = 200ms; 4 = 150ms; 5 = 100ms]
/ blocks = [1 = 250ms; 2 = 200ms]
/</expt>

In <block 250ms>, you run <trial trial250>, whcih then branches to <openended digitresponse>. That's it for <block 250ms>.

<block 250ms>
/ trials = [1 = trial250]
</block>

<trial trial250>
...
/ branch = [openended.digitResponse]
...
</trial>

You then run <block 200ms>, in which you run a <openended trial200ms>, nothing else.

<block 200ms>
/ trials = [1 = trial200]
</block>

<openended trial200>

/ recorddata = false


/ ontrialbegin = [
    
    // 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; 1 = fixation; 150 = clearscreen; 151 = t, d1, d2 , dig1, dig2; 351 = clearscreen]
    
/ mask = positiveinteger
/ beginresponsetime = 351
/ correctresponse = (values.correctdigit)

/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]

/ ontrialend = [

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

</openended>


Yet, this is not the origin of the issue. Even when removing the 200ms block, the response screen appears twice. I wish to have a response screen where participants can enter two digits, above which a text reads 'please enter the digits'. How can this be done?

You commented out the <expt> element, so blocks are run in alphabetical order, so it runs <block 100ms>, etc.

Those blocks all run an openended which then branches to yet another openended. E.g.

<openended trial100>
...
/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]
...
</openended>

Fix your <expt> element and things will work just fine for the block you implemented properly.


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
Dave - 1/27/2022
lukasg - 1/27/2022
Dave - 1/27/2022

> I am attempting to add a text above the response on a trial.

What is that supposed to mean?

I also don't understand why you need "1st trial = presentation of stimuli". The <openended> can display those stimuli, there is no need for a separate "presentation of stimuli" trial.

> [...] my 'solution' runs into the issue of presenting the first response box twice, once as part of the 1st trial, and once as part of the 2nd trial.

What?

It may be easier to attach the entire script., hope the issue becomes clear. The participant is prompted twice to enter digits.

I want to present a text box above the response box saying something along the lines of 'enter digits below'.

Look, in the script as you attached it, you run two blocks:

//<expt illusoryConjunction>

// set finishpage to prolific for automatic payment
/ onexptbegin = [defaults.finishpage = "http://www.example.com/"]

// blocks = [1 = practice; 2 = 250ms; 3 = 200ms; 4 = 150ms; 5 = 100ms]
/ blocks = [1 = 250ms; 2 = 200ms]
/</expt>

In <block 250ms>, you run <trial trial250>, whcih then branches to <openended digitresponse>. That's it for <block 250ms>.

<block 250ms>
/ trials = [1 = trial250]
</block>

<trial trial250>
...
/ branch = [openended.digitResponse]
...
</trial>

You then run <block 200ms>, in which you run a <openended trial200ms>, nothing else.

<block 200ms>
/ trials = [1 = trial200]
</block>

<openended trial200>

/ recorddata = false


/ ontrialbegin = [
    
    // 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; 1 = fixation; 150 = clearscreen; 151 = t, d1, d2 , dig1, dig2; 351 = clearscreen]
    
/ mask = positiveinteger
/ beginresponsetime = 351
/ correctresponse = (values.correctdigit)

/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]

/ ontrialend = [

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

</openended>


Yet, this is not the origin of the issue. Even when removing the 200ms block, the response screen appears twice. I wish to have a response screen where participants can enter two digits, above which a text reads 'please enter the digits'. How can this be done?
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
Dave - 1/27/2022

> I am attempting to add a text above the response on a trial.

What is that supposed to mean?

I also don't understand why you need "1st trial = presentation of stimuli". The <openended> can display those stimuli, there is no need for a separate "presentation of stimuli" trial.

> [...] my 'solution' runs into the issue of presenting the first response box twice, once as part of the 1st trial, and once as part of the 2nd trial.

What?

It may be easier to attach the entire script., hope the issue becomes clear. The participant is prompted twice to enter digits.

I want to present a text box above the response box saying something along the lines of 'enter digits below'.

Look, in the script as you attached it, you run two blocks:

//<expt illusoryConjunction>

// set finishpage to prolific for automatic payment
/ onexptbegin = [defaults.finishpage = "http://www.example.com/"]

// blocks = [1 = practice; 2 = 250ms; 3 = 200ms; 4 = 150ms; 5 = 100ms]
/ blocks = [1 = 250ms; 2 = 200ms]
/</expt>

In <block 250ms>, you run <trial trial250>, whcih then branches to <openended digitresponse>. That's it for <block 250ms>.

<block 250ms>
/ trials = [1 = trial250]
</block>

<trial trial250>
...
/ branch = [openended.digitResponse]
...
</trial>

You then run <block 200ms>, in which you run a <openended trial200ms>, nothing else.

<block 200ms>
/ trials = [1 = trial200]
</block>

<openended trial200>

/ recorddata = false


/ ontrialbegin = [
    
    // 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; 1 = fixation; 150 = clearscreen; 151 = t, d1, d2 , dig1, dig2; 351 = clearscreen]
    
/ mask = positiveinteger
/ beginresponsetime = 351
/ correctresponse = (values.correctdigit)

/ branch = [if(openended.trialPractice.correct == 1 || openended.trialPractice.correct == 0)openended.digitResponse]

/ ontrialend = [

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

</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