Millisecond Forums

Lexical Decision Task - How to jitter Fixationcross

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

By DannyPilgrim - 11/23/2020

Hello everyone!

I have a question: Is there any way to jitter the fixationcross within a range of 0ms-1000ms?
This is the current Trialcode:

<trial T1>
/ontrialbegin = [
    values.condition = 0;
    values.congruency = 0;
]
/ correctresponse = ("2") / beginresponsetime = 1500
/ validresponse = ("2", "8")
/ trialduration = 3000
/ stimulustimes = [0=Fixationcross; 1000=clearscreen; 1700=mask; 500=end; 1500=sausage]

I hope you understand my issue!

Thanks.

By Dave - 11/23/2020

DannyPilgrim - 11/23/2020
Hello everyone!

I have a question: Is there any way to jitter the fixationcross within a range of 0ms-1000ms?
This is the current Trialcode:

<trial T1>
/ontrialbegin = [
    values.condition = 0;
    values.congruency = 0;
]
/ correctresponse = ("2") / beginresponsetime = 1500
/ validresponse = ("2", "8")
/ trialduration = 3000
/ stimulustimes = [0=Fixationcross; 1000=clearscreen; 1700=mask; 500=end; 1500=sausage]

I hope you understand my issue!

Thanks.


> I hope you understand my issue!

No, you need to be more specific. By "jitter[...] the fixationcross within a range of 0ms-1000ms" do you mean the fixation cross's on-screen duration or its onset?

In addition, please clarify the trial's intended stimulus timing. The out-of-order notation in your /stimulustimes is very confusing. Spell out exactly when you want each stimulus presented in relation to what.

By DannyPilgrim - 11/23/2020

Dave - 11/23/2020
DannyPilgrim - 11/23/2020
Hello everyone!

I have a question: Is there any way to jitter the fixationcross within a range of 0ms-1000ms?
This is the current Trialcode:

<trial T1>
/ontrialbegin = [
    values.condition = 0;
    values.congruency = 0;
]
/ correctresponse = ("2") / beginresponsetime = 1500
/ validresponse = ("2", "8")
/ trialduration = 3000
/ stimulustimes = [0=Fixationcross; 1000=clearscreen; 1700=mask; 500=end; 1500=sausage]

I hope you understand my issue!

Thanks.


> I hope you understand my issue!

No, you need to be more specific. By "jitter[...] the fixationcross within a range of 0ms-1000ms" do you mean the fixation cross's on-screen duration or its onset?

In addition, please clarify the trial's intended stimulus timing. The out-of-order notation in your /stimulustimes is very confusing. Spell out exactly when you want each stimulus presented in relation to what.


Thank you for your quick answer, Dave!

My intention is to randomize the onset time of the Fixationcross. It's on-screen duration should remain 500ms.
All trials should look like this:

  • Fixationcross (onset = random between 0ms (immediately when the trial starts) and 1000ms (1 second after the trial started), on-screen duration = 500ms)
  • Prime (onset = immediately after Fixationscross, on-screen duration = 500ms)
  • Clearscreen (onset = immediately after Prime, on-screen duration = 500ms)
  • Target (onset = immediately after Clearscreen, on-screen duration = 200ms)
  • Mask/ Responsewindow (onset = immediately after Target, on-screen duration = 1300ms)
Right now the trialduration is 3000ms without the jittered Fixationcross.

Do you need more information?

Thanks for your help!




By Dave - 11/23/2020

DannyPilgrim - 11/23/2020
Dave - 11/23/2020
DannyPilgrim - 11/23/2020
Hello everyone!

I have a question: Is there any way to jitter the fixationcross within a range of 0ms-1000ms?
This is the current Trialcode:

<trial T1>
/ontrialbegin = [
    values.condition = 0;
    values.congruency = 0;
]
/ correctresponse = ("2") / beginresponsetime = 1500
/ validresponse = ("2", "8")
/ trialduration = 3000
/ stimulustimes = [0=Fixationcross; 1000=clearscreen; 1700=mask; 500=end; 1500=sausage]

I hope you understand my issue!

Thanks.


> I hope you understand my issue!

No, you need to be more specific. By "jitter[...] the fixationcross within a range of 0ms-1000ms" do you mean the fixation cross's on-screen duration or its onset?

In addition, please clarify the trial's intended stimulus timing. The out-of-order notation in your /stimulustimes is very confusing. Spell out exactly when you want each stimulus presented in relation to what.


Thank you for your quick answer, Dave!

My intention is to randomize the onset time of the Fixationcross. It's on-screen duration should remain 500ms.
All trials should look like this:

  • Fixationcross (onset = random between 0ms (immediately when the trial starts) and 1000ms (1 second after the trial started), on-screen duration = 500ms)
  • Prime (onset = immediately after Fixationscross, on-screen duration = 500ms)
  • Clearscreen (onset = immediately after Prime, on-screen duration = 500ms)
  • Target (onset = immediately after Clearscreen, on-screen duration = 200ms)
  • Mask/ Responsewindow (onset = immediately after Target, on-screen duration = 1300ms)
Right now the trialduration is 3000ms without the jittered Fixationcross.

Do you need more information?

Thanks for your help!





That should be clear enough. Any implementation of that would look along the following lines:

<parameters>
/ fixationduration = 500
/ primeduration = 500
/ clearduration = 500
/ targetduration = 200
/ maskduration = 1300
</parameters>

<values>
/ fixationonset = -1
</values>


<trial example>
/ ontrialbegin = [
    trial.example.resetstimulusframes();
    values.fixationonset = round(rand(0, 1000));
    trial.example.insertstimulustime(text.fixationcross, values.fixationonset);
    trial.example.insertstimulustime(text.prime, values.fixationonset + parameters.fixationduration);
    trial.example.insertstimulustime(clearscreen, values.fixationonset + parameters.fixationduration + parameters.primeduration);
    trial.example.insertstimulustime(text.target, values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration);
    trial.example.insertstimulustime(text.mask, values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration + parameters.targetduration);
]
/ stimulustimes = [0=clearscreen]
/ beginresponsetime = values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration
/ trialduration = values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration + parameters.targetduration + parameters.maskduration
...
</trial>


<text fixationcross>
/ items = ("+")
</text>

<text prime>
/ items = ("prime")
</text>

<text target>
/ items = ("target")
</text>

<text mask>
/ items = ("mask")
</text>




By DannyPilgrim - 11/23/2020

Dave - 11/23/2020
DannyPilgrim - 11/23/2020
Dave - 11/23/2020
DannyPilgrim - 11/23/2020
Hello everyone!

I have a question: Is there any way to jitter the fixationcross within a range of 0ms-1000ms?
This is the current Trialcode:

<trial T1>
/ontrialbegin = [
    values.condition = 0;
    values.congruency = 0;
]
/ correctresponse = ("2") / beginresponsetime = 1500
/ validresponse = ("2", "8")
/ trialduration = 3000
/ stimulustimes = [0=Fixationcross; 1000=clearscreen; 1700=mask; 500=end; 1500=sausage]

I hope you understand my issue!

Thanks.


> I hope you understand my issue!

No, you need to be more specific. By "jitter[...] the fixationcross within a range of 0ms-1000ms" do you mean the fixation cross's on-screen duration or its onset?

In addition, please clarify the trial's intended stimulus timing. The out-of-order notation in your /stimulustimes is very confusing. Spell out exactly when you want each stimulus presented in relation to what.


Thank you for your quick answer, Dave!

My intention is to randomize the onset time of the Fixationcross. It's on-screen duration should remain 500ms.
All trials should look like this:

  • Fixationcross (onset = random between 0ms (immediately when the trial starts) and 1000ms (1 second after the trial started), on-screen duration = 500ms)
  • Prime (onset = immediately after Fixationscross, on-screen duration = 500ms)
  • Clearscreen (onset = immediately after Prime, on-screen duration = 500ms)
  • Target (onset = immediately after Clearscreen, on-screen duration = 200ms)
  • Mask/ Responsewindow (onset = immediately after Target, on-screen duration = 1300ms)
Right now the trialduration is 3000ms without the jittered Fixationcross.

Do you need more information?

Thanks for your help!





That should be clear enough. Any implementation of that would look along the following lines:

<parameters>
/ fixationduration = 500
/ primeduration = 500
/ clearduration = 500
/ targetduration = 200
/ maskduration = 1300
</parameters>

<values>
/ fixationonset = -1
</values>


<trial example>
/ ontrialbegin = [
    trial.example.resetstimulusframes();
    values.fixationonset = round(rand(0, 1000));
    trial.example.insertstimulustime(text.fixationcross, values.fixationonset);
    trial.example.insertstimulustime(text.prime, values.fixationonset + parameters.fixationduration);
    trial.example.insertstimulustime(clearscreen, values.fixationonset + parameters.fixationduration + parameters.primeduration);
    trial.example.insertstimulustime(text.target, values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration);
    trial.example.insertstimulustime(text.mask, values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration + parameters.targetduration);
]
/ stimulustimes = [0=clearscreen]
/ beginresponsetime = values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration
/ trialduration = values.fixationonset + parameters.fixationduration + parameters.primeduration + parameters.clearduration + parameters.targetduration + parameters.maskduration
...
</trial>


<text fixationcross>
/ items = ("+")
</text>

<text prime>
/ items = ("prime")
</text>

<text target>
/ items = ("target")
</text>

<text mask>
/ items = ("mask")
</text>





Thank you very much! That helped a lot!