+xHi,
I'm relatively new to Inquisit, and I was hoping I could get some help with structuring a new experiment.
I have 41 images from 6 different people (so 246 images total) that I need to display to subjects in a very specific way:
1 = The 6 different people have to be randomly assigned to 1 of 6 different conditions, which dictate which subset of their 41 images will be displayed. Let's say those conditions are highVar_positive, lowVar_positive, highVar_neutral, lowVar_neutral, highVar_negative, and lowVar_negative.
2 = Once those 6 different people are randomly assigned to their conditions, the images within those conditions have to be selected based on the condition and randomized in their presentation. For instance, in the highVar_positive condition, the program should retrieve images like "model1_0.jpg", "model1_+25.jpg", "model1_+50.jpg", "model1_+75.jpg", and "model1_+100.jpg", while in the lowVar_positive condition, the program should instead present "model1_+40.jpg", "model1_+45.jpg", "model1_+50.jpg", "model1_+55.jpg", and "model1_+60.jpg". A similar strategy would be applied to the 4 remaining conditions. Note that in this example, "model1" indicates the name of the person in the stimuli that was assigned to that condition, which would be contained at the start of the picture file names.
Is there any way to do this dynamically, without having to hard-code many different block/expt orders? I was thinking of somehow using a list object as a "blockSelector", but I'm not quite sure yet how I'd implement that. Any help would be appreciated -- thanks!!
- EC
You can use a bunch of global variables (<values> entries) and <list>s to
- randomly assign model numbers to conditions, and then
- select the corresponding items within-condition accordingly.
Here's a basic example using two models (1 and 2) distributed randomly to two blocked conditions (highVar_positive "hvp" and lowVar_positive "lwp"). Extending it to six models randomly distributed to six conditions should be straightforward.
<item hvp_items>
/ 1 = "model1_0.jpg"
/ 2 = "model1_+25.jpg"
/ 3 = "model1_+50.jpg"
/ 4 = "model1_+75.jpg"
/ 5 = "model1_+100.jpg"
/ 6 = "model2_0.jpg"
/ 7 = "model2_+25.jpg"
/ 8 = "model2_+50.jpg"
/ 9 = "model2_+75.jpg"
/ 10 = "model2_+100.jpg"
</item>
<item lvp_items>
/ 1 = "model1_+40.jpg"
/ 2 = "model1_+45.jpg"
/ 3 = "model1_+50.jpg"
/ 4 = "model1_+55.jpg"
/ 5 = "model1_+60.jpg"
/ 6 = "model2_+40.jpg"
/ 7 = "model2_+45.jpg"
/ 8 = "model2_+50.jpg"
/ 9 = "model2_+55.jpg"
/ 10 = "model2_+60.jpg"
</item>
<text hvp>
/ items = hvp_items
/ select = list.hvpselector.nextvalue
</text>
<text lvp>
/ items = lvp_items
/ select = list.lvpselector.nextvalue
</text>
//list of lists hvp
<list hvpselector>
/ items = (list.model1_hvp.nextvalue, list.model2_hvp.nextvalue)
/ selectionmode = values.hvp_model
</list>
//model 1 hvp item numbers are 1 to 5
<list model1_hvp>
/ items = (1,2,3,4,5)
</list>
//model 2 hvp item numbers are 6 to 10
<list model2_hvp>
/ items = (6,7,8,9,10)
</list>
//list of lists lvp
<list lvpselector>
/ items = (list.model1_lvp.nextvalue, list.model2_lvp.nextvalue)
/ selectionmode = values.lvp_model
</list>
//model 1 lvp item numbers are 1 to 5
<list model1_lvp>
/ items = (1,2,3,4,5)
</list>
//model 2 lvp item numbers are 6 to 10
<list model2_lvp>
/ items = (6,7,8,9,10)
</list>
//two models 1 and 2 in this example
//sample model numbers from list at random
//and store in global variables corresponding
//to condition
<list modelnumbers>
/ items = (1,2)
/ selectionrate = always
</list>
//global variables
//model numbers will be assigned to
//hvp and lvp conditions at random onexptbegin
<values>
/ hvp_model = 0
/ lvp_model = 0
</values>
<expt>
/ onexptbegin = [values.hvp_model = list.modelnumbers.nextvalue;
values.lvp_model = list.modelnumbers.nextvalue;]
/ blocks = [1-2 = noreplace(hvp_block, lvp_block)]
</expt>
<block hvp_block>
/ preinstructions = (hvp_intro)
/ trials = [1-5 = hvp_trial]
</block>
<block lvp_block>
/ preinstructions = (lvp_intro)
/ trials = [1-5 = lvp_trial]
</block>
<page hvp_intro>
^This is the HVP condition block
^It will use model # <%values.hvp_model%>.
</page>
<page lvp_intro>
^This is the LVP condition block
^It will use model # <%values.lvp_model%>.
</page>
<trial hvp_trial>
/ stimulusframes = [1=hvp]
/ validresponse = (57)
</trial>
<trial lvp_trial>
/ stimulusframes = [1=lvp]
/ validresponse = (57)
</trial>