Avoid repeating stimuly from different lists


Author
Message
ASagana
ASagana
Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)
Group: Forum Members
Posts: 6, Visits: 31
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



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
ASagana - 3/15/2021
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



Set up a <list> with 40 item numbers. /onexptbegin, distribute 20 random item numbers to a list used to select the type-A pictures, distribute the remaining 20 item numbers to a list for selecting type-B.
ASagana
ASagana
Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)
Group: Forum Members
Posts: 6, Visits: 31
Dave - 3/15/2021
ASagana - 3/15/2021
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



Set up a <list> with 40 item numbers. /onexptbegin, distribute 20 random item numbers to a list used to select the type-A pictures, distribute the remaining 20 item numbers to a list for selecting type-B.

I am sorry but I am new to this program. Would you mind giving me a concrete code example?
Thanks a lot!
Anna
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
ASagana - 3/15/2021
Dave - 3/15/2021
ASagana - 3/15/2021
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



Set up a <list> with 40 item numbers. /onexptbegin, distribute 20 random item numbers to a list used to select the type-A pictures, distribute the remaining 20 item numbers to a list for selecting type-B.

I am sorry but I am new to this program. Would you mind giving me a concrete code example?
Thanks a lot!
Anna

// 10 items in this example
<list itemnumbers>
/ poolsize = 10
/ selectionrate = always
</list>

// will be filled with 5 items onexptbegin
<list a>
</list>

// will be filled with 5 items onexptbegin
<list b>
</list>

<item aitems>
/ 1 = "Identity 1, Type A"
/ 2 = "Identity 2, Type A"
/ 3 = "Identity 3, Type A"
/ 4 = "Identity 4, Type A"
/ 5 = "Identity 5, Type A"
/ 6 = "Identity 6, Type A"
/ 7 = "Identity 7, Type A"
/ 8 = "Identity 8, Type A"
/ 9 = "Identity 9, Type A"
/ 10 = "Identity 10, Type A"
</item>

<item bitems>
/ 1 = "Identity 1, Type B"
/ 2 = "Identity 2, Type B"
/ 3 = "Identity 3, Type B"
/ 4 = "Identity 4, Type B"
/ 5 = "Identity 5, Type B"
/ 6 = "Identity 6, Type B"
/ 7 = "Identity 7, Type B"
/ 8 = "Identity 8, Type B"
/ 9 = "Identity 9, Type B"
/ 10 = "Identity 10, Type B"
</item>

<text a>
/ items = aitems
/ select = list.a.nextvalue
</text>

<text b>
/ items = bitems
/ select = list.b.nextvalue
</text>

<trial a>
/ stimulusframes = [1=a]
/ validresponse = ("a", "b")
/ correctresponse = ("a")
</trial>

<trial b>
/ stimulusframes = [1=b]
/ validresponse = ("a", "b")
/ correctresponse = ("b")
</trial>

<block example>
/ trials = [1-10 = noreplace(a,b)]
</block>

<expt>
/ onblockbegin = [
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
]
/ blocks = [1=example]
</expt>




ASagana
ASagana
Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)
Group: Forum Members
Posts: 6, Visits: 31
Dave - 3/15/2021
ASagana - 3/15/2021
Dave - 3/15/2021
ASagana - 3/15/2021
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



Set up a <list> with 40 item numbers. /onexptbegin, distribute 20 random item numbers to a list used to select the type-A pictures, distribute the remaining 20 item numbers to a list for selecting type-B.

I am sorry but I am new to this program. Would you mind giving me a concrete code example?
Thanks a lot!
Anna

// 10 items in this example
<list itemnumbers>
/ poolsize = 10
/ selectionrate = always
</list>

// will be filled with 5 items onexptbegin
<list a>
</list>

// will be filled with 5 items onexptbegin
<list b>
</list>

<item aitems>
/ 1 = "Identity 1, Type A"
/ 2 = "Identity 2, Type A"
/ 3 = "Identity 3, Type A"
/ 4 = "Identity 4, Type A"
/ 5 = "Identity 5, Type A"
/ 6 = "Identity 6, Type A"
/ 7 = "Identity 7, Type A"
/ 8 = "Identity 8, Type A"
/ 9 = "Identity 9, Type A"
/ 10 = "Identity 10, Type A"
</item>

<item bitems>
/ 1 = "Identity 1, Type B"
/ 2 = "Identity 2, Type B"
/ 3 = "Identity 3, Type B"
/ 4 = "Identity 4, Type B"
/ 5 = "Identity 5, Type B"
/ 6 = "Identity 6, Type B"
/ 7 = "Identity 7, Type B"
/ 8 = "Identity 8, Type B"
/ 9 = "Identity 9, Type B"
/ 10 = "Identity 10, Type B"
</item>

<text a>
/ items = aitems
/ select = list.a.nextvalue
</text>

<text b>
/ items = bitems
/ select = list.b.nextvalue
</text>

<trial a>
/ stimulusframes = [1=a]
/ validresponse = ("a", "b")
/ correctresponse = ("a")
</trial>

<trial b>
/ stimulusframes = [1=b]
/ validresponse = ("a", "b")
/ correctresponse = ("b")
</trial>

<block example>
/ trials = [1-10 = noreplace(a,b)]
</block>

<expt>
/ onblockbegin = [
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
]
/ blocks = [1=example]
</expt>




Thanks a zillion! It helps immensely.
ASagana
ASagana
Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)
Group: Forum Members
Posts: 6, Visits: 31
Dave - 3/15/2021
ASagana - 3/15/2021
Dave - 3/15/2021
ASagana - 3/15/2021
Dear all,

I am creating a typical face recognition task but I have been facing the following problem:
My participants first study 40 different faces (identities) and then have to recognize all 40 faces from a picture that is either in Type-A or in Type-B. Therefore, if a face (identity) is presented during recognition in Type-A, it should not be presented in Type-B. I want the distribution of the two picture types to be equal but random.

My idea was to create two different lists, one for picture Type-A and one for picture Type-B. But I do not know how to arrange it so that the same face(identity) does not appear twice. Can someone explain how I can make this happen considering that the picture names will naturally have to differ (20_m_sf.jpg. vs. 20_m_ff.jpg). Also, note that the type of picture when studying the face is different than both Type-A and Type-B.

Thanks a lot!
Anna



Set up a <list> with 40 item numbers. /onexptbegin, distribute 20 random item numbers to a list used to select the type-A pictures, distribute the remaining 20 item numbers to a list for selecting type-B.

I am sorry but I am new to this program. Would you mind giving me a concrete code example?
Thanks a lot!
Anna

// 10 items in this example
<list itemnumbers>
/ poolsize = 10
/ selectionrate = always
</list>

// will be filled with 5 items onexptbegin
<list a>
</list>

// will be filled with 5 items onexptbegin
<list b>
</list>

<item aitems>
/ 1 = "Identity 1, Type A"
/ 2 = "Identity 2, Type A"
/ 3 = "Identity 3, Type A"
/ 4 = "Identity 4, Type A"
/ 5 = "Identity 5, Type A"
/ 6 = "Identity 6, Type A"
/ 7 = "Identity 7, Type A"
/ 8 = "Identity 8, Type A"
/ 9 = "Identity 9, Type A"
/ 10 = "Identity 10, Type A"
</item>

<item bitems>
/ 1 = "Identity 1, Type B"
/ 2 = "Identity 2, Type B"
/ 3 = "Identity 3, Type B"
/ 4 = "Identity 4, Type B"
/ 5 = "Identity 5, Type B"
/ 6 = "Identity 6, Type B"
/ 7 = "Identity 7, Type B"
/ 8 = "Identity 8, Type B"
/ 9 = "Identity 9, Type B"
/ 10 = "Identity 10, Type B"
</item>

<text a>
/ items = aitems
/ select = list.a.nextvalue
</text>

<text b>
/ items = bitems
/ select = list.b.nextvalue
</text>

<trial a>
/ stimulusframes = [1=a]
/ validresponse = ("a", "b")
/ correctresponse = ("a")
</trial>

<trial b>
/ stimulusframes = [1=b]
/ validresponse = ("a", "b")
/ correctresponse = ("b")
</trial>

<block example>
/ trials = [1-10 = noreplace(a,b)]
</block>

<expt>
/ onblockbegin = [
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    list.a.appenditem(list.itemnumbers.nextindex);
    
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
    list.b.appenditem(list.itemnumbers.nextindex);
]
/ blocks = [1=example]
</expt>




Dear Dave,

I am afraid that my originally enthused response was crushed by the harsh reality of programming... I have tried to implement your example code. The experiment runs and the distribution of pictures are as planned, but I keep getting the same identities within and across the lists. 

My experiment is more complicated than originally explained but the principle should be the same.
For clarity though, my participants first study 40 identities (faces): 20 are male 20 are female. That works just fine.
Then, they are presented with all 40 studied (old) identities plus 40 non-studied (new) identities. 20 of the old identities should be presented in a picture format called “Selective” and the other 20 in a format called “Full”. The same goes for the new identities. Which identities are presented in which format shall be random.
Importantly the distribution of male and female faces must be equal across all aspects of the study (i.e., 10 old selective male, 10 old selective female, 10 new selective male …. etc)

Here is what I have come up with based on your example:


<picture SelectiveFaces_Male_O>
/items = SelectiveFaces_Male_O
/select = noreplace
/size = (80%, 80%)
/position = (50%, 50%)
</picture>

<picture SelectiveFaces_Female_O>
/items = SelectiveFaces_Female_O
/select = noreplace
/select = values.itemnumber
/size = (80%, 80%)
/position = (50%, 50%)
</picture>
.
.
.
This continues for all separate conditions
------------------------------------------------------------------
Then I have defined the following lists

<list itemnumbers>
/ poolsize = 10
/ selectionrate = always
</list>

<list SelectiveMaleO>
</list>
<list FullMaleO>
</list>

<picture SelectiveMaleO>
/ items = SelectiveFaces_Male_O
/ select = list.SelectiveMaleO.nextvalue
</picture>
>
<picture FullMaleO>
/ items = FullFaces_Male_O
/ select = list.FullMaleO.nextvalue
</picture>


<list SelectiveMaleN>
</list>
<list FullMaleN>
</list>

<picture SelectiveMaleN>
/ items = SelectiveFaces_Male_N
/ select = list.SelectiveMaleN.nextvalue
</picture>
>
<picture FullMaleN>
/ items = FullFaces_Male_N
/ select = list.FullMaleN.nextvalue
</picture>


<list SelectiveFemaleO>
</list>
<list FullFemaleO>
</list>

<picture SelectiveFemaleO>
/ items = SelectiveFaces_Female_O
/ select = list.SelectiveFemaleO.nextvalue
</picture>
>
<picture FullFemaleO>
/ items = FullFaces_Female_O
/ select = list.FullFemaleO.nextvalue
</picture>


<list SelectiveFemaleN>
</list>
<list FullFemaleN>
</list>

<picture SelectiveFemaleN>
/ items = SelectiveFaces_Female_N
/ select = list.SelectiveFemaleN.nextvalue
</picture>
>
<picture FullFemaleN>
/ items = FullFaces_Female_N
/ select = list.FullFemaleN.nextvalue
</picture>

------------------------------------------------------------------------------
My trials all look like this. There is one trial per list but I list just one to keep it short

<trial FullFaces_MaleO_Recognition>
/stimulusframes = [1 = FullMaleO, recognitioninstruction]
/ontrialend = [
    if (trial.FullFaces_MaleO_Recognition.responsetext == "1") {
        values.picturescore = 1;
    } else {
        values.picturescore = 0;
    };
    values.totalscore = values.picturescore;
]
/validresponse = ("0", "1")
/ branch = [
        likert.confidence
]
</trial>

------------------------------------------------------
For ease, I have divided the blogs between male and female faces.

<block MaleRecognition>
/preinstructions = (RecognPhase_Instr, Confidence_Instr)
/trials = [1-40 = noreplace(SelectiveFaces_MaleO_Recognition,FullFaces_MaleO_Recognition,SelectiveFaces_MaleN_Recognition,FullFaces_MaleN_Recognition)]
</block>

<block FemaleRecognition>
/preinstructions = (RecognPhase_Instr, Confidence_Instr)
/trials = [1-40 = noreplace(SelectiveFaces_FemaleO_Recognition,FullFaces_FemaleO_Recognition,SelectiveFaces_FemaleN_Recognition,FullFaces_FemaleN_Recognition)]
</block>

---------------------------------------------------------
And my expt looks like that:

<expt>
/preinstructions = (StudyPhase_Instr)
/postinstructions = (end)
/ onblockbegin = [
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);

list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
    
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);

list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
    ]
/ blocks = [1=MaleRecognition]
/ onblockbegin = [
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);

list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
    
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);

list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
    ]
/ blocks = [1=FemaleRecognition]
/blocks = [
    1 = StudyPhase;
    2 = MaleRecognition;
    3 = FemaleRecognition;
]

</expt>



Ideally blocks MaleRecognition and FemaleRecognition should appear in random order but using the command:
2-3 = random (MaleRecognition, FemaleRecognition)
does not seem to work.

Any new insights will be highly appreciated!

Best wishes,
Anna

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
If you want me to say anything about this, provide full, runnable code. That necessarily includes providing all files the code requires to run. Since this is an old-new paradigm, these have been discussed multiple times before and you can find plenty more examples by conducting a forum search.

As for your onexptbegin and onblockbegin logic, you have 10 items in your item numbers list, and you just keep distributing those 10 items to different lists over and over and over, always in random order, so of course you are going to get different results for each list you distribute to. I don't really understand the reasoning behind this.

ASagana
ASagana
Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)Associate Member (106 reputation)
Group: Forum Members
Posts: 6, Visits: 31
Dave - 3/17/2021
If you want me to say anything about this, provide full, runnable code. That necessarily includes providing all files the code requires to run. Since this is an old-new paradigm, these have been discussed multiple times before and you can find plenty more examples by conducting a forum search.

As for your onexptbegin and onblockbegin logic, you have 10 items in your item numbers list, and you just keep distributing those 10 items to different lists over and over and over, always in random order, so of course you are going to get different results for each list you distribute to. I don't really understand the reasoning behind this.

Dear Dave,
I think I have not been making myself clear and I apologize for that. So I will give it another try.

I have a total of 80 faces. 40 preselected ones are used for learning with a mask superimposed.
All 80 faces are used in the testing. However, the way pictures are presented at testing differs from learning (i.e., different pictures of the same face are used). And above that, there are two ways that a face can be presented. It can be presented in a picture showing the full face or in a picture showing a selective facial feature. If the face is presented once it should not be presented again, neither as exactly the same image (e.g. full face -full face) nor as different images (full faces -selective face).
the problem is how to do that given that the names of the picture files differ but they depict the same face.

In essence, I need to track if two items in two different lists belong to the same face.

You can access all code and materials here: https://surfdrive.surf.nl/files/index.php/s/EQEoP3pNJIElRwm

Thank you,
Anna

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
ASagana - 3/17/2021
Dave - 3/17/2021
If you want me to say anything about this, provide full, runnable code. That necessarily includes providing all files the code requires to run. Since this is an old-new paradigm, these have been discussed multiple times before and you can find plenty more examples by conducting a forum search.

As for your onexptbegin and onblockbegin logic, you have 10 items in your item numbers list, and you just keep distributing those 10 items to different lists over and over and over, always in random order, so of course you are going to get different results for each list you distribute to. I don't really understand the reasoning behind this.

Dear Dave,
I think I have not been making myself clear and I apologize for that. So I will give it another try.

I have a total of 80 faces. 40 preselected ones are used for learning with a mask superimposed.
All 80 faces are used in the testing. However, the way pictures are presented at testing differs from learning (i.e., different pictures of the same face are used). And above that, there are two ways that a face can be presented. It can be presented in a picture showing the full face or in a picture showing a selective facial feature. If the face is presented once it should not be presented again, neither as exactly the same image (e.g. full face -full face) nor as different images (full faces -selective face).
the problem is how to do that given that the names of the picture files differ but they depict the same face.

In essence, I need to track if two items in two different lists belong to the same face.

You can access all code and materials here: https://surfdrive.surf.nl/files/index.php/s/EQEoP3pNJIElRwm

Thank you,
Anna

> If the face is presented once it should not be presented again, neither as exactly the same image (e.g. full face -full face) nor as different images (full faces -selective face).
the problem is how to do that given that the names of the picture files differ but they depict the same face.

The file names do not matter. The item numbers matter, just as demonstrated in the very first example I gave you.

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

**************************************************************************************************************
**************************************************************************************************************
    PARAMETERS: duration of stimuli presentation
**************************************************************************************************************
**************************************************************************************************************

<parameters>
/MaskedFaces = 100
/responsestoring = true
/validrespose = ""
/confidence = ""

/lapseRT = 500
/habituationDuration = 60000
/taskDuration = 600000
/RTfeedbackDuration = 1000
/falseStartFeedbackDuration = 300
/readyDuration = 2000

</parameters>


**************************************************************************************************************
**************************************************************************************************************
    ITEMS: list of faces and of numbers we want to present
**************************************************************************************************************
**************************************************************************************************************
<item MaskedFaces>
/1 = "masked males\01_m_mf.jpg"
/2 = "masked males\02_m_mf.jpg"
/3 = "masked males\03_m_mf.jpg"
/4 = "masked males\04_m_mf.jpg"
/5 = "masked males\05_m_mf.jpg"
/6 = "masked males\06_m_mf.jpg"
/7 = "masked males\07_m_mf.jpg"
/8 = "masked males\08_m_mf.jpg"
/9 = "masked males\09_m_mf.jpg"
/10 = "masked males\10_m_mf.jpg"
/11 = "masked males\11_m_mf.jpg"
/12 = "masked males\12_m_mf.jpg"
/13 = "masked males\13_m_mf.jpg"
/14 = "masked males\14_m_mf.jpg"
/15 = "masked males\15_m_mf.jpg"
/16 = "masked males\16_m_mf.jpg"
/17 = "masked males\17_m_mf.jpg"
/18 = "masked males\18_m_mf.jpg"
/19 = "masked males\19_m_mf.jpg"
/20 = "masked males\20_m_mf.jpg"

/21 = "masked females\01_f_mf.jpg"
/22 = "masked females\02_f_mf.jpg"
/23 = "masked females\03_f_mf.jpg"
/24 = "masked females\04_f_mf.jpg"
/25 = "masked females\05_f_mf.jpg"
/26 = "masked females\06_f_mf.jpg"
/27 = "masked females\07_f_mf.jpg"
/28 = "masked females\08_f_mf.jpg"
/29 = "masked females\09_f_mf.jpg"
/30 = "masked females\10_f_mf.jpg"
/31 = "masked females\11_f_mf.jpg"
/32 = "masked females\12_f_mf.jpg"
/33 = "masked females\13_f_mf.jpg"
/34 = "masked females\14_f_mf.jpg"
/35 = "masked females\15_f_mf.jpg"
/36 = "masked females\16_f_mf.jpg"
/37 = "masked females\17_f_mf.jpg"
/38 = "masked females\18_f_mf.jpg"
/39 = "masked females\19_f_mf.jpg"
/40 = "masked females\20_f_mf.jpg"
</item>

<item SelectiveFaces_Male_O>
/1 = "selective males old\01_m_sf_o.jpg"
/2 = "selective males old\02_m_sf_o.jpg"
/3 = "selective males old\03_m_sf_o.jpg"
/4 = "selective males old\04_m_sf_o.jpg"
/5 = "selective males old\05_m_sf_o.jpg"
/6 = "selective males old\06_m_sf_o.jpg"
/7 = "selective males old\07_m_sf_o.jpg"
/8 = "selective males old\08_m_sf_o.jpg"
/9 = "selective males old\09_m_sf_o.jpg"
/10 = "selective males old\10_m_sf_o.jpg"
/11 = "selective males old\11_m_sf_o.jpg"
/12 = "selective males old\12_m_sf_o.jpg"
/13 = "selective males old\13_m_sf_o.jpg"
/14 = "selective males old\14_m_sf_o.jpg"
/15 = "selective males old\15_m_sf_o.jpg"
/16 = "selective males old\16_m_sf_o.jpg"
/17 = "selective males old\17_m_sf_o.jpg"
/18 = "selective males old\18_m_sf_o.jpg"
/19 = "selective males old\19_m_sf_o.jpg"
/20 = "selective males old\20_m_sf_o.jpg"
</item>


<item SelectiveFaces_Female_O>
/1 = "selective females old\01_f_sf_o.jpg"
/2 = "selective females old\02_f_sf_o.jpg"
/3 = "selective females old\03_f_sf_o.jpg"
/4 = "selective females old\04_f_sf_o.jpg"
/5 = "selective females old\05_f_sf_o.jpg"
/6 = "selective females old\06_f_sf_o.jpg"
/7 = "selective females old\07_f_sf_o.jpg"
/8 = "selective females old\08_f_sf_o.jpg"
/9 = "selective females old\09_f_sf_o.jpg"
/10 = "selective females old\10_f_sf_o.jpg"
/11 = "selective females old\11_f_sf_o.jpg"
/12 = "selective females old\12_f_sf_o.jpg"
/13 = "selective females old\13_f_sf_o.jpg"
/14 = "selective females old\14_f_sf_o.jpg"
/15 = "selective females old\15_f_sf_o.jpg"
/16 = "selective females old\16_f_sf_o.jpg"
/17 = "selective females old\17_f_sf_o.jpg"
/18 = "selective females old\18_f_sf_o.jpg"
/19 = "selective females old\19_f_sf_o.jpg"
/20 = "selective females old\20_f_sf_o.jpg"
</item>

<item FullFaces_Male_O>
/1 = "full males old\01_m_ff_o.jpg"
/2 = "full males old\02_m_ff_o.jpg"
/3 = "full males old\03_m_ff_o.jpg"
/4 = "full males old\04_m_ff_o.jpg"
/5 = "full males old\05_m_ff_o.jpg"
/6 = "full males old\06_m_ff_o.jpg"
/7 = "full males old\07_m_ff_o.jpg"
/8 = "full males old\08_m_ff_o.jpg"
/9 = "full males old\09_m_ff_o.jpg"
/10 = "full males old\10_m_ff_o.jpg"
/11 = "full males old\11_m_ff_o.jpg"
/12 = "full males old\12_m_ff_o.jpg"
/13 = "full males old\13_m_ff_o.jpg"
/14 = "full males old\14_m_ff_o.jpg"
/15 = "full males old\15_m_ff_o.jpg"
/16 = "full males old\16_m_ff_o.jpg"
/17 = "full males old\17_m_ff_o.jpg"
/18 = "full males old\18_m_ff_o.jpg"
/19 = "full males old\19_m_ff_o.jpg"
/20 = "full males old\20_m_ff_o.jpg"
</item>

<item FullFaces_Female_O>
/1 = "full females old\01_f_ff_o.jpg"
/2 = "full females old\02_f_ff_o.jpg"
/3 = "full females old\03_f_ff_o.jpg"
/4 = "full females old\04_f_ff_o.jpg"
/5 = "full females old\05_f_ff_o.jpg"
/6 = "full females old\06_f_ff_o.jpg"
/7 = "full females old\07_f_ff_o.jpg"
/8 = "full females old\08_f_ff_o.jpg"
/9 = "full females old\09_f_ff_o.jpg"
/10 = "full females old\10_f_ff_o.jpg"
/11 = "full females old\11_f_ff_o.jpg"
/12 = "full females old\12_f_ff_o.jpg"
/13 = "full females old\13_f_ff_o.jpg"
/14 = "full females old\14_f_ff_o.jpg"
/15 = "full females old\15_f_ff_o.jpg"
/16 = "full females old\16_f_ff_o.jpg"
/17 = "full females old\17_f_ff_o.jpg"
/18 = "full females old\18_f_ff_o.jpg"
/19 = "full females old\19_f_ff_o.jpg"
/20 = "full females old\20_f_ff_o.jpg"
</item>

<item SelectiveFaces_Male_N>
/1 = "selective males new\01_m_sf_n.jpg"
/2 = "selective males new\02_m_sf_n.jpg"
/3 = "selective males new\03_m_sf_n.jpg"
/4 = "selective males new\04_m_sf_n.jpg"
/5 = "selective males new\05_m_sf_n.jpg"
/6 = "selective males new\06_m_sf_n.jpg"
/7 = "selective males new\07_m_sf_n.jpg"
/8 = "selective males new\08_m_sf_n.jpg"
/9 = "selective males new\09_m_sf_n.jpg"
/10 = "selective males new\10_m_sf_n.jpg"
/11 = "selective males new\11_m_sf_n.jpg"
/12 = "selective males new\12_m_sf_n.jpg"
/13 = "selective males new\13_m_sf_n.jpg"
/14 = "selective males new\14_m_sf_n.jpg"
/15 = "selective males new\15_m_sf_n.jpg"
/16 = "selective males new\16_m_sf_n.jpg"
/17 = "selective males new\17_m_sf_n.jpg"
/18 = "selective males new\18_m_sf_n.jpg"
/19 = "selective males new\19_m_sf_n.jpg"
/20 = "selective males new\20_m_sf_n.jpg"
</item>


<item SelectiveFaces_Female_N>
/1 = "selective females new\01_f_sf_n.jpg"
/2 = "selective females new\02_f_sf_n.jpg"
/3 = "selective females new\03_f_sf_n.jpg"
/4 = "selective females new\04_f_sf_n.jpg"
/5 = "selective females new\05_f_sf_n.jpg"
/6 = "selective females new\06_f_sf_n.jpg"
/7 = "selective females new\07_f_sf_n.jpg"
/8 = "selective females new\08_f_sf_n.jpg"
/9 = "selective females new\09_f_sf_n.jpg"
/10 = "selective females new\10_f_sf_n.jpg"
/11 = "selective females new\11_f_sf_n.jpg"
/12 = "selective females new\12_f_sf_n.jpg"
/13 = "selective females new\13_f_sf_n.jpg"
/14 = "selective females new\14_f_sf_n.jpg"
/15 = "selective females new\15_f_sf_n.jpg"
/16 = "selective females new\16_f_sf_n.jpg"
/17 = "selective females new\17_f_sf_n.jpg"
/18 = "selective females new\18_f_sf_n.jpg"
/19 = "selective females new\19_f_sf_n.jpg"
/20 = "selective females new\20_f_sf_n.jpg"
</item>


<item FullFaces_Male_N>
/1 = "full males new\01_m_ff_n.jpg"
/2 = "full males new\02_m_ff_n.jpg"
/3 = "full males new\03_m_ff_n.jpg"
/4 = "full males new\04_m_ff_n.jpg"
/5 = "full males new\05_m_ff_n.jpg"
/6 = "full males new\06_m_ff_n.jpg"
/7 = "full males new\07_m_ff_n.jpg"
/8 = "full males new\08_m_ff_n.jpg"
/9 = "full males new\09_m_ff_n.jpg"
/10 = "full males new\10_m_ff_n.jpg"
/11 = "full males new\11_m_ff_n.jpg"
/12 = "full males new\12_m_ff_n.jpg"
/13 = "full males new\13_m_ff_n.jpg"
/14 = "full males new\14_m_ff_n.jpg"
/15 = "full males new\15_m_ff_n.jpg"
/16 = "full males new\16_m_ff_n.jpg"
/17 = "full males new\17_m_ff_n.jpg"
/18 = "full males new\18_m_ff_n.jpg"
/19 = "full males new\19_m_ff_n.jpg"
/20 = "full males new\20_m_ff_n.jpg"
</item>

<item FullFaces_Female_N>
/1 = "full females new\01_f_ff_n.jpg"
/2 = "full females new\02_f_ff_n.jpg"
/3 = "full females new\03_f_ff_n.jpg"
/4 = "full females new\04_f_ff_n.jpg"
/5 = "full females new\05_f_ff_n.jpg"
/6 = "full females new\06_f_ff_n.jpg"
/7 = "full females new\07_f_ff_n.jpg"
/8 = "full females new\08_f_ff_n.jpg"
/9 = "full females new\09_f_ff_n.jpg"
/10 = "full females new\10_f_ff_n.jpg"
/11 = "full females new\11_f_ff_n.jpg"
/12 = "full females new\12_f_ff_n.jpg"
/13 = "full females new\13_f_ff_n.jpg"
/14 = "full females new\14_f_ff_n.jpg"
/15 = "full females new\15_f_ff_n.jpg"
/16 = "full females new\16_f_ff_n.jpg"
/17 = "full females new\17_f_ff_n.jpg"
/18 = "full females new\18_f_ff_n.jpg"
/19 = "full females new\19_f_ff_n.jpg"
/20 = "full females new\20_f_ff_n.jpg"
</item>
</item>



**************************************************************************************************************
**************************************************************************************************************
    INSTRUCTIONS TO PARTICIPANTS
**************************************************************************************************************
**************************************************************************************************************
<instruct>
/ fontstyle = ("Arial", 1.94%, false, false, false, false, 5, 1)
/ screencolor = white
/ txcolor = black
/ inputdevice = keyboard
</instruct>


****************************************
INSTRUCTIONS RECOGNTITION TASK
****************************************
<page LearningPhase_Instr>
<h1> Face Study Phase </h1><hr>
<br><br> You are about to be presented with a series of pictures displaying different faces.
<h4>Please study the faces carefully and try to memorize them! </h4>
You will have <%parameters.MaskedFaces/1000/4%> seconds to familiarize yourself with each face.
<br><br><br><br>
The test will take approximately 5 minutes and you cannot stop or pause it.
<br><br>Instructions will be given throughout the task and you should follow them carefully.
</page>


<page TestPhase_Instr>
<h1> Face Testing Phase </h1><hr>
<br><br>
In this phase, you will be presented with pictures of faces, one photo at a time.
<br> For each face your task is to indicate if you have seen it before.
<br><br>
Use the '1', '0', <%expressions.buttoninstruct1%>s to indicate whether you have seen the face before.
<br><h4> 1 = Yes, I have seen this face before. <br> 0 = No, I have not seen this face before. </h4>
<br><br><br><br>
Please use the number row on top of your keyboard.

</page>

<item recognitioninstruction>
/1 = "Have you seen this face before?
1 = Yes                 0 = No"
</item>

<page Confidence_Instr>
<h2> Confidence </h2><hr>
<br><br>After each face, you will also be asked to state how confident you are in your decision.
<br><br>You have to use a scale ranging from 0% (not confident at all) to 100% (extremely confident).
<br><br><br> To indicate your confidence press the number that corresponds to your preferred value and then press Enter. <br>For example:
<h4> 6 + Enter = 60% confident <br> 8 + Enter = 80% confident </h4>
<br><br><br><br>It is best to use the number row on the top of your keyboard.

</page>

<item confidence>
/ 1 = "On a scale from 0% (not at all) to 100% (extremely)

how confident are you about your decision?"
</item>

<page end>
Thank you!
<br> You have reached the end of the task.<br>
</page>


<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"response button";} else {"key";}
</expressions>



******************
Filler
******************


**************************************************************************************************************
**************************************************************************************************************
    DEFAULTS
**************************************************************************************************************
**************************************************************************************************************
script requires Inquisit 6.1.0.0 or higher

<defaults>
/canvasaspectratio = (4,3)
/minimumversion = "6.1.0.0"
/fontstyle = ("Arial", 1.94%, true, false, false, false, 5, 1)
/txbgcolor = white
/txcolor = black
</defaults>


*******************************************************************************************************************
*******************************************************************************************************************
    DATA: this section contains data file information
*******************************************************************************************************************
*******************************************************************************************************************

********************
raw data
********************

<data>
/ columns = (build, computer.platform, date, time, subject, group, blockcode, blocknum,script.sessionid,
trialcode, trialnum, values.itemnumber, values.picturecount, values.picturescore, values.picturecount, values.validresponse1,
values.confidence, values.totalscore, values.selectivefaces, values.fullfaces, stimulusitem, response, latency)
</data>


********************
summary data
********************


<summarydata>

/ columns = (computer.platform, script.startdate, script.starttime, script.subjectid, script.groupid, script.sessionid, script.elapsedtime,
script.completed, values.totalscore; script.completed))

</summarydata>



**************************************************************************************************************
**************************************************************************************************************
    VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************


/picturescore:            the score for the current picture
/totalscore:            the sum of all picturescores
/picturecount:            counts all the pictures presented

<values>
/maskedfaces = ""
/picturescore = ""
/validresponse1 = ""
/totalscore = ""
/picturecount = ""
/confidence = ""
/selectivefaces = ""
/fullfaces = ""
/itemnumber = 1
</values>




*******************************************************************************************************************
*******************************************************************************************************************
    STIMULI: here is where we define how to present the stimuly (size and position)
*******************************************************************************************************************
*******************************************************************************************************************

***********************
MAIN TASK
***********************

<picture MaskedFaces>
/items = MaskedFaces
/select = noreplace
/size = (80%, 80%)
/position = (50%, 50%)
</picture>


<text recognitioninstruction>
/items = recognitioninstruction
/fontstyle = ("Arial", 1.94%, false, false, false, false, 5, 1)
/txcolor = black
/position = (50%, 80%)
</text>

<text confidence>
/ items = confidence
/ fontstyle = ("Arial", 1.94%, false, false, false, false, 5, 1)
/ txcolor = black
/ position = (50%, 30%)
</text>



*******************************************************************************************************************
*******************************************************************************************************************
    LISTS
*******************************************************************************************************************
*******************************************************************************************************************
// we always have 20 items to distribute
<list itemnumbers>
/ poolsize = 20
/ selectionrate = always
</list>

<list SelectiveMaleO>
</list>
<list FullMaleO>
</list>

<picture SelectiveMaleO>
/ items = SelectiveFaces_Male_O
/ select = values.itemnumber
</picture>

<picture FullMaleO>
/ items = FullFaces_Male_O
/ select = values.itemnumber
</picture>

<list SelectiveMaleN>
</list>
<list FullMaleN>
</list>

<picture SelectiveMaleN>
/ items = SelectiveFaces_Male_N
/ select = values.itemnumber
</picture>

<picture FullMaleN>
/ items = FullFaces_Male_N
/ select = values.itemnumber
</picture>

<list SelectiveFemaleO>
</list>
<list FullFemaleO>
</list>

<picture SelectiveFemaleO>
/ items = SelectiveFaces_Female_O
/ select = values.itemnumber
</picture>

<picture FullFemaleO>
/ items = FullFaces_Female_O
/ select = values.itemnumber
</picture>

<list SelectiveFemaleN>
</list>
<list FullFemaleN>
</list>

<picture SelectiveFemaleN>
/ items = SelectiveFaces_Female_N
/ select = values.itemnumber
</picture>

<picture FullFemaleN>
/ items = FullFaces_Female_N
/ select = values.itemnumber
</picture>


*************
PVT Filler
*************


*******************************************************************************************************************
*******************************************************************************************************************
    TRIALS: a trial is a series of stimuli and how it will be presented
*******************************************************************************************************************
*******************************************************************************************************************


**********************
MAIN TASK
*********************
<trial StudyPhase>
/ stimulusframes = [1 = MaskedFaces]
/ trialduration = parameters.MaskedFaces
/ontrialbegin = [
    values.itemnumber = 0;
]
/ recorddata = true
</trial>


<trial SelectiveFaces_MaleO_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.SelectiveMaleO.nextvalue;
]
/stimulusframes = [1 = SelectiveMaleO, recognitioninstruction]
/ontrialend = [
    if (trial.SelectiveFaces_MaleO_Recognition.responsetext == "1") {
        values.picturescore = 1;
    } else {
        values.picturescore = 0;
    };
    values.totalscore = values.picturescore;
]
/validresponse = ("0", "1")
/ branch = [
        likert.confidence
]
</trial>

<trial FullFaces_MaleO_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.FullMaleO.nextvalue;
]
/stimulusframes = [1 = FullMaleO, recognitioninstruction]
/ontrialend = [
    if (trial.FullFaces_MaleO_Recognition.responsetext == "1") {
        values.picturescore = 1;
    } else {
        values.picturescore = 0;
    };
    values.totalscore = values.picturescore;
]
/validresponse = ("0", "1")
/ branch = [
        likert.confidence
]
</trial>


<trial SelectiveFaces_MaleN_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.SelectiveMaleN.nextvalue;
]
/stimulusframes = [1 = SelectiveMaleN, recognitioninstruction]
/validresponse = ("0", "1")
/ontrialend = [
    if (trial.SelectiveFaces_MaleN_Recognition.responsetext == "1") {
        values.picturescore = 0;
    } else {
        values.picturescore = 1;
    };
    values.totalscore = values.picturescore;
]
/ branch = [
        likert.confidence
]

</trial>

<trial FullFaces_MaleN_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.FullMaleN.nextvalue;
]
/stimulusframes = [1 = FullMaleN, recognitioninstruction]
/validresponse = ("0", "1")
/ontrialend = [
    if (trial.FullFaces_MaleN_Recognition.responsetext == "1") {
        values.picturescore = 0;
    } else {
        values.picturescore = 1;
    };
    values.totalscore = values.picturescore;
]
/ branch = [
        likert.confidence
]

</trial>

<trial SelectiveFaces_FemaleO_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.SelectiveFemaleO.nextvalue;
]
/stimulusframes = [1 = SelectiveFemaleO, recognitioninstruction]
/ontrialend = [
    if (trial.SelectiveFaces_FemaleO_Recognition.responsetext == "1") {
        values.picturescore = 1;
    } else {
        values.picturescore = 0;
    };
    values.totalscore = values.picturescore;
]
/validresponse = ("0", "1")
/ branch = [
        likert.confidence
]
</trial>


<trial FullFaces_FemaleO_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.FullFemaleO.nextvalue;
]
/stimulusframes = [1 = FullFemaleO, recognitioninstruction]
/ontrialend = [
    if (trial.FullFaces_FemaleO_Recognition.responsetext == "1") {
        values.picturescore = 1;
    } else {
        values.picturescore = 0;
    };
    values.totalscore = values.picturescore;
]
/validresponse = ("0", "1")
/ branch = [
        likert.confidence
]
</trial>


<trial SelectiveFaces_FemaleN_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.SelectiveFemaleN.nextvalue;
]
/stimulusframes = [1 = SelectiveFemaleN, recognitioninstruction]
/validresponse = ("0", "1")
/ontrialend = [
    if (trial.SelectiveFaces_FemaleN_Recognition.responsetext == "1") {
        values.picturescore = 0;
    } else {
        values.picturescore = 1;
    };
    values.totalscore = values.picturescore;
]
/ branch = [
        likert.confidence
]

</trial>


<trial FullFaces_FemaleN_Recognition>
/ ontrialbegin = [
    values.itemnumber = list.FullFemaleN.nextvalue;
]
/stimulusframes = [1 = FullFemaleN, recognitioninstruction]
/validresponse = ("0", "1")
/ontrialend = [
    if (trial.FullFaces_FemaleN_Recognition.responsetext == "1") {
        values.picturescore = 0;
    } else {
        values.picturescore = 1;
    };
    values.totalscore = values.picturescore;
]
/ branch = [
        likert.confidence
]

</trial>

<likert confidence>
/stimulusframes= [1 = confidence]
/anchors=[1="0-10%"; 2="10-20%"; 3="20-30%"; 4="40-50%";5="50-60%", 6="60-70%"; 7="70-80%"; 8="80-90%"; 9="90-100%"]
/position=(50, 70)
/fontstyle = ("Arial", 2.41%, false, false, false, false, 5, 1)
values.confidencescore = " "

</likert>


*****************************
PVT FILLER
****************************




*******************************************************************************************************************
*******************************************************************************************************************
    BLOCKS
*******************************************************************************************************************
*******************************************************************************************************************

Note: block presents the elements of experiments in order

<block StudyPhase>
/ trials = [1-40 = StudyPhase]
</block>

<block MaleRecognition>
/preinstructions = (TestPhase_Instr, Confidence_Instr)
/ onblockbegin = [
    // take 10 out of the 20 old male item numbers at random and put them in the selective list;
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
    list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleO.appenditem(list.itemnumbers.nextindex);
    
// take the remaining 10 item numbers and put them in the full list;
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
    list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
list.FullMaleO.appenditem(list.itemnumbers.nextindex);
    
    // repeat same for the "new" items;
    list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
    list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveMaleN.appenditem(list.itemnumbers.nextindex);
    
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
    list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
list.FullMaleN.appenditem(list.itemnumbers.nextindex);
    ]
/trials = [1-40 = noreplace(SelectiveFaces_MaleO_Recognition,
    FullFaces_MaleO_Recognition,
    SelectiveFaces_MaleN_Recognition,
    FullFaces_MaleN_Recognition)
    ]
</block>


<block FemaleRecognition>
/preinstructions = (TestPhase_Instr, Confidence_Instr)
/ onblockbegin = [
    // take 10 out of the 20 old female item numbers at random and put them in the selective list;
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleO.appenditem(list.itemnumbers.nextindex);

    // take the remaining 10 item numbers and put them in the full list;
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
    list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
list.FullFemaleO.appenditem(list.itemnumbers.nextindex);
    
    // repeat same for the "new" items;
    list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);
list.SelectiveFemaleN.appenditem(list.itemnumbers.nextindex);

list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
    list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
list.FullFemaleN.appenditem(list.itemnumbers.nextindex);
    ]
/trials = [1-40 = noreplace(SelectiveFaces_FemaleO_Recognition,
    FullFaces_FemaleO_Recognition,
    SelectiveFaces_FemaleN_Recognition,
    FullFaces_FemaleN_Recognition)
    ]
</block>




*******************************************************************************************************************
*******************************************************************************************************************
    EXPERIMENT: here we determine in what order each block of stimuli is presented
*******************************************************************************************************************
*******************************************************************************************************************
<expt>
/preinstructions = (LearningPhase_Instr)
/postinstructions = (end)
/blocks = [
    1 = StudyPhase;
    2-3 = noreplace(MaleRecognition, FemaleRecognition);
]
</expt>


*******************************************************************************************************************
                                                End of File
*******************************************************************************************************************


Attachments
Masked Face Rec.iqx (173 views, 29.00 KB)
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search