Issue with first image being recorded but not shown


Author
Message
chohyuna
chohyuna
Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)
Group: Forum Members
Posts: 2, Visits: 7
Hi everyone,

Our experiment reads through a list of filenames (ex. "tortilla.jpg") and presents the stimulus to the participant in randomized order. Unfortunately, when we look at the data, we see that the first object in the list is recorded as being shown, with latency and other variables recorded, when it is not actually presented to the participant. The actual item that was presented first is a randomized object from the possible list. 

Ex. if the list looked like
1/ "item1.jpg"
2/ "item2.jpg"
3/ "item3.jpg"
The experiment should be selecting the objects to present at random, however item1 is always being recorded as shown first (but when doing the task the participant does not actually see item1, they would first see a random item), and item1 is also shown later in the sequence. If item3 was presented first, with 3 random items being shown, the data might look like:
- item1.jpg --> latency = 873ms
- item3.jpg --> latency = 1068ms
- item1.jpg --> latency = 826ms

This presents problems, as a random stimulus is not being recorded as presented to the participant, which we need to use for the next portion of our experiment. It's also confusing that the RT for the first item's data is not equivalent to the time taken for the fixation cross, nor the next item's latency (and other data). An additional problem is that our last trial in the block is now being cut-off because this "invisible" first item is taking up a trial. 

Our code looks like: 
< item encoding>(insert list of item names)</item>
<picture encoding>/items= encoding/ position = (50%,40%)/size= (500px, 500px) / select = noreplace/ erase = false</picture><trial encoding>/ stimulustimes = [0= white_screen; 1000=encoding, natural, human; 3000=dummy]/ validresponse = ("j","k")/ trialduration = 3000/ beginresponsetime = 1000/ responseinterrupt = frames/ ontrialbegin = [ values.stimulus= picture.encoding.currentitem]</trial><block encoding>/ trials = [1-60,62-121,123-177=noreplace(encoding); 61,122=rest]</block>

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: 104K
chohyuna - 9/23/2019
Hi everyone,

Our experiment reads through a list of filenames (ex. "tortilla.jpg") and presents the stimulus to the participant in randomized order. Unfortunately, when we look at the data, we see that the first object in the list is recorded as being shown, with latency and other variables recorded, when it is not actually presented to the participant. The actual item that was presented first is a randomized object from the possible list. 

Ex. if the list looked like
1/ "item1.jpg"
2/ "item2.jpg"
3/ "item3.jpg"
The experiment should be selecting the objects to present at random, however item1 is always being recorded as shown first (but when doing the task the participant does not actually see item1, they would first see a random item), and item1 is also shown later in the sequence. If item3 was presented first, with 3 random items being shown, the data might look like:
- item1.jpg --> latency = 873ms
- item3.jpg --> latency = 1068ms
- item1.jpg --> latency = 826ms

This presents problems, as a random stimulus is not being recorded as presented to the participant, which we need to use for the next portion of our experiment. It's also confusing that the RT for the first item's data is not equivalent to the time taken for the fixation cross, nor the next item's latency (and other data). An additional problem is that our last trial in the block is now being cut-off because this "invisible" first item is taking up a trial. 

Our code looks like: 
< item encoding>(insert list of item names)</item>
<picture encoding>/items= encoding/ position = (50%,40%)/size= (500px, 500px) / select = noreplace/ erase = false</picture><trial encoding>/ stimulustimes = [0= white_screen; 1000=encoding, natural, human; 3000=dummy]/ validresponse = ("j","k")/ trialduration = 3000/ beginresponsetime = 1000/ responseinterrupt = frames/ ontrialbegin = [ values.stimulus= picture.encoding.currentitem]</trial><block encoding>/ trials = [1-60,62-121,123-177=noreplace(encoding); 61,122=rest]</block>

Here's the issue with your code:

/ ontrialbegin = [ values.stimulus= picture.encoding.currentitem]

Ontrialbegin attributes happen *before* any stimulus selection has occurred. If you want to actually record which item *was* presented by the trial, you need to shift the above logic to /ontrialend.

chohyuna
chohyuna
Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)Associate Member (79 reputation)
Group: Forum Members
Posts: 2, Visits: 7
Dave - 9/23/2019
chohyuna - 9/23/2019
Hi everyone,

Our experiment reads through a list of filenames (ex. "tortilla.jpg") and presents the stimulus to the participant in randomized order. Unfortunately, when we look at the data, we see that the first object in the list is recorded as being shown, with latency and other variables recorded, when it is not actually presented to the participant. The actual item that was presented first is a randomized object from the possible list. 

Ex. if the list looked like
1/ "item1.jpg"
2/ "item2.jpg"
3/ "item3.jpg"
The experiment should be selecting the objects to present at random, however item1 is always being recorded as shown first (but when doing the task the participant does not actually see item1, they would first see a random item), and item1 is also shown later in the sequence. If item3 was presented first, with 3 random items being shown, the data might look like:
- item1.jpg --> latency = 873ms
- item3.jpg --> latency = 1068ms
- item1.jpg --> latency = 826ms

This presents problems, as a random stimulus is not being recorded as presented to the participant, which we need to use for the next portion of our experiment. It's also confusing that the RT for the first item's data is not equivalent to the time taken for the fixation cross, nor the next item's latency (and other data). An additional problem is that our last trial in the block is now being cut-off because this "invisible" first item is taking up a trial. 

Our code looks like: 
< item encoding>(insert list of item names)</item>
<picture encoding>/items= encoding/ position = (50%,40%)/size= (500px, 500px) / select = noreplace/ erase = false</picture><trial encoding>/ stimulustimes = [0= white_screen; 1000=encoding, natural, human; 3000=dummy]/ validresponse = ("j","k")/ trialduration = 3000/ beginresponsetime = 1000/ responseinterrupt = frames/ ontrialbegin = [ values.stimulus= picture.encoding.currentitem]</trial><block encoding>/ trials = [1-60,62-121,123-177=noreplace(encoding); 61,122=rest]</block>

Here's the issue with your code:

/ ontrialbegin = [ values.stimulus= picture.encoding.currentitem]

Ontrialbegin attributes happen *before* any stimulus selection has occurred. If you want to actually record which item *was* presented by the trial, you need to shift the above logic to /ontrialend.

That resolved the issue! Thank you!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search