how to avoid presenting specific two stimuli continuously


Author
Message
Miffy
Miffy
New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)
Group: Forum Members
Posts: 2, Visits: 3
Dear all,

I'm very new in Inquisit. I would like to present eight upright faces and their inverted faces. In the experiment, sixteen trials are presented randomly in one block. I would like to randomize so that upright and inverted faces of the same person are not presented consecutively. I'm wondering if i can use "branch". Could you tell me how to use branch in the "trial" or "block" to avoid presenting specific stimuli continuously.
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: 102K
Miffy - 8/30/2024
Dear all,

I'm very new in Inquisit. I would like to present eight upright faces and their inverted faces. In the experiment, sixteen trials are presented randomly in one block. I would like to randomize so that upright and inverted faces of the same person are not presented consecutively. I'm wondering if i can use "branch". Could you tell me how to use branch in the "trial" or "block" to avoid presenting specific stimuli continuously.

/branch is not suitable here. You'll want to use <list> elements for item selection with a /maxrunsize constraint.

<values>
/ person = 0
/ inversion = 0
</values>

<block exampleblock>
/ trials = [1-16 = trial.facetrial]
</block>

<trial facetrial>
/ ontrialbegin = [
    trial.facetrial.resetstimulusframes(); // reset stimulus presentation for current trial
    values.person = list.personlist.nextvalue; // select person
    values.inversion = list.inversionlist.nextvalue; // select uninverted or inverted version
    
    if (values.inversion) { // if inversion is selected
        trial.facetrial.insertstimulustime(text.face_inverted, 0); // show the inverted stimulus
    } else { // otherwise
        trial.facetrial.insertstimulustime(text.face_uninverted, 0); // show the uninverted stimulus
    };
]
/ validresponse = (57)
</trial>

<list personlist>
/ items = (1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8)
/ maxrunsize = 1 // don't select same person in a row
</list>

// 0 = no inversion; 1 = inversion
<list inversionlist>
/ items = (0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1)
/ selectionmode = list.personlist.currentindex
</list>

<text face_uninverted>
/ items = item.faces_uninverted
/ select = values.person
/ size = (50%, 50%)
</text>

<text face_inverted>
/ items = item.faces_inverted
/ select = values.person
/ size = (50%, 50%)
</text>

<item faces_uninverted>
/ 1 = "person01.jpg"
/ 2 = "person02.jpg"
/ 3 = "person03.jpg"
/ 4 = "person04.jpg"
/ 5 = "person05.jpg"
/ 6 = "person06.jpg"
/ 7 = "person07.jpg"
/ 8 = "person08.jpg"
</item>

<item faces_inverted>
/ 1 = "inverted_person01.jpg"
/ 2 = "inverted_person02.jpg"
/ 3 = "inverted_person03.jpg"
/ 4 = "inverted_person04.jpg"
/ 5 = "inverted_person05.jpg"
/ 6 = "inverted_person06.jpg"
/ 7 = "inverted_person07.jpg"
/ 8 = "inverted_person08.jpg"
</item>

<data>
/ columns = (
    date time subject group session blocknum blockcode trialnum trialcode response latency correct stimulusitem
    values.person values.inversion)
</data>


Miffy
Miffy
New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)New Member (6 reputation)
Group: Forum Members
Posts: 2, Visits: 3
Dave - 8/30/2024
Miffy - 8/30/2024
Dear all,

I'm very new in Inquisit. I would like to present eight upright faces and their inverted faces. In the experiment, sixteen trials are presented randomly in one block. I would like to randomize so that upright and inverted faces of the same person are not presented consecutively. I'm wondering if i can use "branch". Could you tell me how to use branch in the "trial" or "block" to avoid presenting specific stimuli continuously.

/branch is not suitable here. You'll want to use <list> elements for item selection with a /maxrunsize constraint.

<values>
/ person = 0
/ inversion = 0
</values>

<block exampleblock>
/ trials = [1-16 = trial.facetrial]
</block>

<trial facetrial>
/ ontrialbegin = [
    trial.facetrial.resetstimulusframes(); // reset stimulus presentation for current trial
    values.person = list.personlist.nextvalue; // select person
    values.inversion = list.inversionlist.nextvalue; // select uninverted or inverted version
    
    if (values.inversion) { // if inversion is selected
        trial.facetrial.insertstimulustime(text.face_inverted, 0); // show the inverted stimulus
    } else { // otherwise
        trial.facetrial.insertstimulustime(text.face_uninverted, 0); // show the uninverted stimulus
    };
]
/ validresponse = (57)
</trial>

<list personlist>
/ items = (1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8)
/ maxrunsize = 1 // don't select same person in a row
</list>

// 0 = no inversion; 1 = inversion
<list inversionlist>
/ items = (0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1)
/ selectionmode = list.personlist.currentindex
</list>

<text face_uninverted>
/ items = item.faces_uninverted
/ select = values.person
/ size = (50%, 50%)
</text>

<text face_inverted>
/ items = item.faces_inverted
/ select = values.person
/ size = (50%, 50%)
</text>

<item faces_uninverted>
/ 1 = "person01.jpg"
/ 2 = "person02.jpg"
/ 3 = "person03.jpg"
/ 4 = "person04.jpg"
/ 5 = "person05.jpg"
/ 6 = "person06.jpg"
/ 7 = "person07.jpg"
/ 8 = "person08.jpg"
</item>

<item faces_inverted>
/ 1 = "inverted_person01.jpg"
/ 2 = "inverted_person02.jpg"
/ 3 = "inverted_person03.jpg"
/ 4 = "inverted_person04.jpg"
/ 5 = "inverted_person05.jpg"
/ 6 = "inverted_person06.jpg"
/ 7 = "inverted_person07.jpg"
/ 8 = "inverted_person08.jpg"
</item>

<data>
/ columns = (
    date time subject group session blocknum blockcode trialnum trialcode response latency correct stimulusitem
    values.person values.inversion)
</data>


Thank you so much for your quick and kind response. I try to embed the code in my script
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search