Setting markers for stimlustimes with Tobii Eyetracker


Author
Message
Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

Edited 5 Years Ago by Aleya
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: 12K, Visits: 98K
Aleya - Thursday, May 16, 2019
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

At the time you set the marker value, /ontrialbegin, the items that the trial *will* display eventually have not been selected yet. That only happens when that trial displays the two pictures. Thus, currentindex in your case will not reflect what will happen eventually during the trial later. Instead, currentindex will still reflect whatever items were selected during any *previous* trial.

Change things to nextindex, and then things should work:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.nextindex*100) + picture.neuright.nextindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Dave - Thursday, May 16, 2019
Aleya - Thursday, May 16, 2019
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

At the time you set the marker value, /ontrialbegin, the items that the trial *will* display eventually have not been selected yet. That only happens when that trial displays the two pictures. Thus, currentindex in your case will not reflect what will happen eventually during the trial later. Instead, currentindex will still reflect whatever items were selected during any *previous* trial.

Change things to nextindex, and then things should work:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.nextindex*100) + picture.neuright.nextindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

Wonderful Dave, thank you very much!

Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Dave - Thursday, May 16, 2019
Aleya - Thursday, May 16, 2019
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

At the time you set the marker value, /ontrialbegin, the items that the trial *will* display eventually have not been selected yet. That only happens when that trial displays the two pictures. Thus, currentindex in your case will not reflect what will happen eventually during the trial later. Instead, currentindex will still reflect whatever items were selected during any *previous* trial.

Change things to nextindex, and then things should work:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.nextindex*100) + picture.neuright.nextindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

And how do I set separate markers for the duration of the fixation cross?

Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Dave - Thursday, May 16, 2019
Aleya - Thursday, May 16, 2019
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

At the time you set the marker value, /ontrialbegin, the items that the trial *will* display eventually have not been selected yet. That only happens when that trial displays the two pictures. Thus, currentindex in your case will not reflect what will happen eventually during the trial later. Instead, currentindex will still reflect whatever items were selected during any *previous* trial.

Change things to nextindex, and then things should work:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.nextindex*100) + picture.neuright.nextindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

Also, the way it is coded now, the stimuli seem to be repeating, even though replace is set to false. What am I not getting?

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: 12K, Visits: 98K
Aleya - Friday, May 17, 2019
Dave - Thursday, May 16, 2019
Aleya - Thursday, May 16, 2019
Hi,
I've tried to find a solution by reading previous comments on this topic, but cannot seem to send useful markers for the onset of my stimuli.

It is a simple experiment, in which two pictures (one neutral and one emotional) are shown simultaneously on each side of a fixation cross for only 200ms. Before the onset of the stimuli I want a recorded fixation cross time of 300ms. ITI are fixation crosses as well fr 3000-6000ms.
According to an example script on the millisecond homepage, I tried the following:

<values>
/ trialduration = 2200
/ marker = 0
/ stimulusonset = 0
/ image_neu = ""
/ image_emo = ""
</values>

<port marker>
/ items = (0)
/ port = eyetracker
/ erase = false
</port>

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

I cannot seem to get adequate markers for the stimulus onsets. I know I set it up as a multiple digit number to indicate the current index of each picture shown for the left and the right, but they seem to be random.
Also, I would like to also set markers for the fixation cross, so I have a baseline to analyze the data from. I realize that I have to set markers back to 0 if I have more than one in a single trial, but I just want to get the stimulus setting right first.
I'm sorry if this question is trivial, I just don't seem to be understanding how to implement it.
Thanks in advance,
Aleya

I set up trials for each version emoneu (emotional left and neutral right) and neuemo after defining the pictures and their positions:
<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

At the time you set the marker value, /ontrialbegin, the items that the trial *will* display eventually have not been selected yet. That only happens when that trial displays the two pictures. Thus, currentindex in your case will not reflect what will happen eventually during the trial later. Instead, currentindex will still reflect whatever items were selected during any *previous* trial.

Change things to nextindex, and then things should work:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.nextindex*100) + picture.neuright.nextindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

Also, the way it is coded now, the stimuli seem to be repeating, even though replace is set to false. What am I not getting?

> And how do I set separate markers for the duration of the fixation cross?

What do you mean by this? Please give a concrete example.

> Also, the way it is coded now, the stimuli seem to be repeating, even though replace is set to false. What am I not getting?

When you sample from a given stimulus pool more often than it has items, then it has to repeat items eventually. I.e. once it has run out of items (sampled without replacement), the stimulus pool resets and all items become available again.

Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Sorry for being unclear. In the example used before the fixation marker is always 0, independent of the trial or the stimulus pair shown:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file. Or am I missing some general hint?

Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?

<list trialselector>

/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

Sorry, if my questions are a bit trivial and thanks for your help!


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: 12K, Visits: 98K
Aleya - Friday, May 17, 2019
Sorry for being unclear. In the example used before the fixation marker is always 0, independent of the trial or the stimulus pair shown:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file. Or am I missing some general hint?

Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?

<list trialselector>

/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

Sorry, if my questions are a bit trivial and thanks for your help!


Re. 1: "I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file.

Then define two <port> elements, one sending a marker indicating emoneu baseline, one with a marker indicating neuemo baseline.


<port emoneu_baseline>
/ items = (1)
/ erase = false
/ port = eyetracker
</port>

<port neuemo_baseline>
/ items = (2)
/ erase = false
/ port = eyetracker
</port>

Define a port that resets everything to zero in between markers as well so you can get a clear separation between your baseline and your stimulus marker

<port allbitstozero>
/ items = (0)
/ erase = false
/ port = eyetracker
</port>

Then display the appropriate marker along with the fixation cross in your <trial> elements, e.g.

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation, emoneu_baseline; 1900=allbitstozero; 2001 = emoleft, neuright, marker]
...
</trial>


Re. 2: "Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?"

Your list is sampling *trials* not *items*

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

You should end up with 30 "emoneu" trials and 30 "neuemo" trials.

It is *those* trials, however, that display stimuli and their respective items. The code you have shared tells me nothing about how you select items or how often a given stimulus element is sampled from.


Aleya
Aleya
Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)Expert (1.3K reputation)
Group: Forum Members
Posts: 15, Visits: 30
Dave - Friday, May 17, 2019
Aleya - Friday, May 17, 2019
Sorry for being unclear. In the example used before the fixation marker is always 0, independent of the trial or the stimulus pair shown:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file. Or am I missing some general hint?

Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?

<list trialselector>

/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

Sorry, if my questions are a bit trivial and thanks for your help!


Re. 1: "I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file.

Then define two <port> elements, one sending a marker indicating emoneu baseline, one with a marker indicating neuemo baseline.


<port emoneu_baseline>
/ items = (1)
/ erase = false
/ port = eyetracker
</port>

<port neuemo_baseline>
/ items = (2)
/ erase = false
/ port = eyetracker
</port>

Define a port that resets everything to zero in between markers as well so you can get a clear separation between your baseline and your stimulus marker

<port allbitstozero>
/ items = (0)
/ erase = false
/ port = eyetracker
</port>

Then display the appropriate marker along with the fixation cross in your <trial> elements, e.g.

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation, emoneu_baseline; 1900=allbitstozero; 2001 = emoleft, neuright, marker]
...
</trial>


Re. 2: "Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?"

Your list is sampling *trials* not *items*

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

You should end up with 30 "emoneu" trials and 30 "neuemo" trials.

It is *those* trials, however, that display stimuli and their respective items. The code you have shared tells me nothing about how you select items or how often a given stimulus element is sampled from.


Sorry about that. I defined the pictures that are read into the trials in the following way:

<picture neuleft>
/ items = neutral
/ position = (25%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture neuright>
/ items = neutral
/ position = (75%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture emoleft>
/ items = emo
/ position = (25%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture emoright>
/ items = emo
/ position = (75%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

and then thought that the list would take care of the equal distribution (30 neuemo and 30 emoneu trials) without replacement:

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
</list>

Is there something missing in the trials coding or am I missing something altogether?

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: 12K, Visits: 98K
Aleya - Wednesday, May 22, 2019
Dave - Friday, May 17, 2019
Aleya - Friday, May 17, 2019
Sorry for being unclear. In the example used before the fixation marker is always 0, independent of the trial or the stimulus pair shown:

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation; 2001 = emoleft, neuright, marker]
/ posttrialpause = (picture.fixation.item)
/ inputdevice = eyetracker
/ recorddata = true
/ ontrialend = [values.image_emo = (picture.emoleft.currentitem); values.image_neu = picture.neuright.currentitem]
/ ontrialend = [values.iti = trial.iti.timeout]
/ timeout = values.trialduration
</trial>

I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file. Or am I missing some general hint?

Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?

<list trialselector>

/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

Sorry, if my questions are a bit trivial and thanks for your help!


Re. 1: "I would like to use the fixation cross as a baseline for the eye movement measured and to do so I have to be able to differentiate the fixation crosses of the different Trials in the output file.

Then define two <port> elements, one sending a marker indicating emoneu baseline, one with a marker indicating neuemo baseline.


<port emoneu_baseline>
/ items = (1)
/ erase = false
/ port = eyetracker
</port>

<port neuemo_baseline>
/ items = (2)
/ erase = false
/ port = eyetracker
</port>

Define a port that resets everything to zero in between markers as well so you can get a clear separation between your baseline and your stimulus marker

<port allbitstozero>
/ items = (0)
/ erase = false
/ port = eyetracker
</port>

Then display the appropriate marker along with the fixation cross in your <trial> elements, e.g.

<trial emoneu>
/ ontrialbegin = [values.marker = (picture.emoleft.currentindex*100) + picture.neuright.currentindex;]
/ ontrialbegin = [port.marker.setitem(values.marker, 1);]
/ stimulustimes = [0 = fixation, emoneu_baseline; 1900=allbitstozero; 2001 = emoleft, neuright, marker]
...
</trial>


Re. 2: "Concerning the repetitions: I have 60 items (30 of each category) and have indicated the poolsize accordingly, have I not?"

Your list is sampling *trials* not *items*

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
/ replace = false
</list>

You should end up with 30 "emoneu" trials and 30 "neuemo" trials.

It is *those* trials, however, that display stimuli and their respective items. The code you have shared tells me nothing about how you select items or how often a given stimulus element is sampled from.


Sorry about that. I defined the pictures that are read into the trials in the following way:

<picture neuleft>
/ items = neutral
/ position = (25%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture neuright>
/ items = neutral
/ position = (75%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture emoleft>
/ items = emo
/ position = (25%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

<picture emoright>
/ items = emo
/ position = (75%, 50%)
/ size = (900, 600)
/ selectionrate = always
/ select = noreplace
</picture>

and then thought that the list would take care of the equal distribution (30 neuemo and 30 emoneu trials) without replacement:

<list trialselector>
/ items = (trial.emoneu, trial.neuemo)
/ itemprobabilities = (.50, .50)
/ poolsize = 60
</list>

Is there something missing in the trials coding or am I missing something altogether?

> Is there something missing in the trials coding or am I missing something altogether?

I can't say because those code snippets don't give me a picture of all relevant parts. There's no info about how many trials you are actually running, i.e. the <block> element(s) in your script. The actual <trial> definitions aren't there, you only shared the code for <trial emoneu> in your very first post in this thread. I have no way to see whether the trials are displaying the correct <picture> elements and/or whether there are any other <trial> elements that display those same stimulus elements and thus affect the sampling from those stimulus elements' items. The <item> elements are missing, I have no way to see whether there actually are 30 items, and so forth. Finally, you have not explained what you actually understand a "repeat" to be. Please provide a data file that illustrates what you mean.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search