Millisecond Forums

Once Per Trial

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

By brichar - 3/8/2021

Hi all,
I've created an experiment that employs a study/test or old/new paradigm. 
Participants will get the chance to study 10 faces, and then they will be shown the same 10 faces for a second chance to study them. 
I've created the list "Seen" which will hold the study faces, my problem is calling on the list twice so that each face is ONLY shown once per trial (Learning_Trial1 and RepeatLearning_Trial1). So, any given image will be shown twice in the learning block but only once per trial. 

Thanks in advance!


Code below:
<item fixation>
/1 = " + "
</item >

<text fixation>
/items = fixation
/select = noreplace
/position = (50, 50)
/ fontstyle = ("Times New Roman", 3%, false, false, false, false, 5, 0)
</text>

<item PoolofItems>
/1 = " image1.jpg "
/2 = " image2.jpg "
/3 = " image3.jpg "
.....
/40 = "image40.jpg"
</item>

<list 40items>
/ poolsize = 40
/ selectionmode = random
/ selectionrate = always
</list>

<list Seen>
/ selectionrate = always
</list>

<list Not_Seen>
/ selectionrate = always
</list>

<list Seen2>
/ selectionrate = always
</list>

<list Not_Seen2>
/ selectionrate = always
</list>
----

<block Learning>
/trials = [1-5= sequence(Learning_Trial1); 6-10= sequence(RepeatLearning_Trial1)]
</block>

<trial Learning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<trial RepeatLearning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<picture Seen>
/items = Pool_of_Faces
/select = list.Seen
/position = (50, 50)
/size = ( 50%, 50% )
</picture>



------- Testing Phase

<block Testing>
/trials = [ 1-5 = noreplace(SeenFace, NotSeenFace)]
</block>

<trial Seen>
/ stimulustimes = [1 = fixation ;1000 = SeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<trial NotSeen>
/ stimulustimes = [1 = fixation;1000 = NotSeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<picture SeenImage>
/items = PoolofImages
/ select = list.Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<picture NotSeenImage>
/items = PoolofImages
/ select = list.Not_Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<expt UnInformed>
/ onexptbegin = [list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); 
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);        
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);
                list.Seen.appenditem(llist.40items.nextindex);
                
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(list.40items.nextindex);
                
             
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex);
                
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex);
      
/blocks = [1=Learning; 2=Testing]
/ groupassignment = random
</expt>
By Dave - 3/8/2021

brichar - 3/8/2021
Hi all,
I've created an experiment that employs a study/test or old/new paradigm. 
Participants will get the chance to study 10 faces, and then they will be shown the same 10 faces for a second chance to study them. 
I've created the list "Seen" which will hold the study faces, my problem is calling on the list twice so that each face is ONLY shown once per trial (Learning_Trial1 and RepeatLearning_Trial1). So, any given image will be shown twice in the learning block but only once per trial. 

Thanks in advance!


Code below:
<item fixation>
/1 = " + "
</item >

<text fixation>
/items = fixation
/select = noreplace
/position = (50, 50)
/ fontstyle = ("Times New Roman", 3%, false, false, false, false, 5, 0)
</text>

<item PoolofItems>
/1 = " image1.jpg "
/2 = " image2.jpg "
/3 = " image3.jpg "
.....
/40 = "image40.jpg"
</item>

<list 40items>
/ poolsize = 40
/ selectionmode = random
/ selectionrate = always
</list>

<list Seen>
/ selectionrate = always
</list>

<list Not_Seen>
/ selectionrate = always
</list>

<list Seen2>
/ selectionrate = always
</list>

<list Not_Seen2>
/ selectionrate = always
</list>
----

<block Learning>
/trials = [1-5= sequence(Learning_Trial1); 6-10= sequence(RepeatLearning_Trial1)]
</block>

<trial Learning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<trial RepeatLearning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<picture Seen>
/items = Pool_of_Faces
/select = list.Seen
/position = (50, 50)
/size = ( 50%, 50% )
</picture>



------- Testing Phase

<block Testing>
/trials = [ 1-5 = noreplace(SeenFace, NotSeenFace)]
</block>

<trial Seen>
/ stimulustimes = [1 = fixation ;1000 = SeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<trial NotSeen>
/ stimulustimes = [1 = fixation;1000 = NotSeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<picture SeenImage>
/items = PoolofImages
/ select = list.Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<picture NotSeenImage>
/items = PoolofImages
/ select = list.Not_Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<expt UnInformed>
/ onexptbegin = [list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); 
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);        
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);
                list.Seen.appenditem(llist.40items.nextindex);
                
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(list.40items.nextindex);
                
             
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex);
                
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex);
      
/blocks = [1=Learning; 2=Testing]
/ groupassignment = random
</expt>

Sorry, I don't understand (1) what the question is, (2) what the problem is. Please provide a clearer explanation.
By brichar - 3/13/2021

Dave - 3/8/2021
brichar - 3/8/2021
Hi all,
I've created an experiment that employs a study/test or old/new paradigm. 
Participants will get the chance to study 10 faces, and then they will be shown the same 10 faces for a second chance to study them. 
I've created the list "Seen" which will hold the study faces, my problem is calling on the list twice so that each face is ONLY shown once per trial (Learning_Trial1 and RepeatLearning_Trial1). So, any given image will be shown twice in the learning block but only once per trial. 

Thanks in advance!


Code below:
<item fixation>
/1 = " + "
</item >

<text fixation>
/items = fixation
/select = noreplace
/position = (50, 50)
/ fontstyle = ("Times New Roman", 3%, false, false, false, false, 5, 0)
</text>

<item PoolofItems>
/1 = " image1.jpg "
/2 = " image2.jpg "
/3 = " image3.jpg "
.....
/40 = "image40.jpg"
</item>

<list 40items>
/ poolsize = 40
/ selectionmode = random
/ selectionrate = always
</list>

<list Seen>
/ selectionrate = always
</list>

<list Not_Seen>
/ selectionrate = always
</list>

<list Seen2>
/ selectionrate = always
</list>

<list Not_Seen2>
/ selectionrate = always
</list>
----

<block Learning>
/trials = [1-5= sequence(Learning_Trial1); 6-10= sequence(RepeatLearning_Trial1)]
</block>

<trial Learning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<trial RepeatLearning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<picture Seen>
/items = Pool_of_Faces
/select = list.Seen
/position = (50, 50)
/size = ( 50%, 50% )
</picture>



------- Testing Phase

<block Testing>
/trials = [ 1-5 = noreplace(SeenFace, NotSeenFace)]
</block>

<trial Seen>
/ stimulustimes = [1 = fixation ;1000 = SeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<trial NotSeen>
/ stimulustimes = [1 = fixation;1000 = NotSeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<picture SeenImage>
/items = PoolofImages
/ select = list.Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<picture NotSeenImage>
/items = PoolofImages
/ select = list.Not_Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<expt UnInformed>
/ onexptbegin = [list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); 
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);        
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);
                list.Seen.appenditem(llist.40items.nextindex);
                
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(list.40items.nextindex);
                
             
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex);
                
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex);
      
/blocks = [1=Learning; 2=Testing]
/ groupassignment = random
</expt>

Sorry, I don't understand (1) what the question is, (2) what the problem is. Please provide a clearer explanation.

Hi Dave,

Sorry for the confusion, I hope that this reply is able to clear some of those things up for you.
My experiment is supposed to have two consecutive learning phases that are exactly the same. I have tried to implement this by creating the "Seen" list and calling on it that for both the "Learning_Trial1" and the "RepeatLearning_Trial1" .

Theoretically, in the Learning block I would like for frames 1-5 to be the same images as 6-10, showing each image only once per set of trials. However, as it stands, the experiment will either show multiple of the same images within the first set of trials (1-5) or a completely new set of images in the second set of trials (6-10). 

Basically, I need a way to call upon the same list multiple times in the experiment. I think that its something within the selection that is making it so that I'm getting new set of images each time I call on the list.

Let me know if this helps.
By Dave - 3/15/2021

brichar - 3/14/2021
Dave - 3/8/2021
brichar - 3/8/2021
Hi all,
I've created an experiment that employs a study/test or old/new paradigm. 
Participants will get the chance to study 10 faces, and then they will be shown the same 10 faces for a second chance to study them. 
I've created the list "Seen" which will hold the study faces, my problem is calling on the list twice so that each face is ONLY shown once per trial (Learning_Trial1 and RepeatLearning_Trial1). So, any given image will be shown twice in the learning block but only once per trial. 

Thanks in advance!


Code below:
<item fixation>
/1 = " + "
</item >

<text fixation>
/items = fixation
/select = noreplace
/position = (50, 50)
/ fontstyle = ("Times New Roman", 3%, false, false, false, false, 5, 0)
</text>

<item PoolofItems>
/1 = " image1.jpg "
/2 = " image2.jpg "
/3 = " image3.jpg "
.....
/40 = "image40.jpg"
</item>

<list 40items>
/ poolsize = 40
/ selectionmode = random
/ selectionrate = always
</list>

<list Seen>
/ selectionrate = always
</list>

<list Not_Seen>
/ selectionrate = always
</list>

<list Seen2>
/ selectionrate = always
</list>

<list Not_Seen2>
/ selectionrate = always
</list>
----

<block Learning>
/trials = [1-5= sequence(Learning_Trial1); 6-10= sequence(RepeatLearning_Trial1)]
</block>

<trial Learning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<trial RepeatLearning_Trial1>
/ stimulusframes = [1=fixation; 20= Seen]
/ validresponse = (noresponse)
/ correctresponse = (noresponse)
/ timeout = 3000
</trial>

<picture Seen>
/items = Pool_of_Faces
/select = list.Seen
/position = (50, 50)
/size = ( 50%, 50% )
</picture>



------- Testing Phase

<block Testing>
/trials = [ 1-5 = noreplace(SeenFace, NotSeenFace)]
</block>

<trial Seen>
/ stimulustimes = [1 = fixation ;1000 = SeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<trial NotSeen>
/ stimulustimes = [1 = fixation;1000 = NotSeenImage ]
/ validresponse = (",",".")
/ correctresponse = (".")
</trial>

<picture SeenImage>
/items = PoolofImages
/ select = list.Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<picture NotSeenImage>
/items = PoolofImages
/ select = list.Not_Seen.nextvalue
/size = ( 50%, 50% )
/position = (50, 50)
</picture>

<expt UnInformed>
/ onexptbegin = [list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); 
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);        
                list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex); list.Seen.appenditem(list.40items.nextindex);
                list.Seen.appenditem(llist.40items.nextindex);
                
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); 
                list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(40items.nextindex); list.Seen1.appenditem(list.40items.nextindex); list.Seen1.appenditem(list.40items.nextindex);
                
             
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); 
                list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex); list.Not_Seen.appenditem(list.40items.nextindex);
                
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); 
                list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex); list.Not_Seen1.appenditem(list.40items.nextindex);
      
/blocks = [1=Learning; 2=Testing]
/ groupassignment = random
</expt>

Sorry, I don't understand (1) what the question is, (2) what the problem is. Please provide a clearer explanation.

Hi Dave,

Sorry for the confusion, I hope that this reply is able to clear some of those things up for you.
My experiment is supposed to have two consecutive learning phases that are exactly the same. I have tried to implement this by creating the "Seen" list and calling on it that for both the "Learning_Trial1" and the "RepeatLearning_Trial1" .

Theoretically, in the Learning block I would like for frames 1-5 to be the same images as 6-10, showing each image only once per set of trials. However, as it stands, the experiment will either show multiple of the same images within the first set of trials (1-5) or a completely new set of images in the second set of trials (6-10). 

Basically, I need a way to call upon the same list multiple times in the experiment. I think that its something within the selection that is making it so that I'm getting new set of images each time I call on the list.

Let me know if this helps.

You put 10 items in the seen list. So if you want the two learning phases to be the same, you either need to run 10 trials per learning phase, or you need to put only 5 items into list seen.