I’m having trouble with something that I feel is probablyeasier than I’m making it out to be. I have an experiment with 4 differentconditions (within-subjects): number of stimuli to present (1 or 4), the typeof intervening stimuli (2 types), if one of the stimuli changes after a briefinterval (same or different), and the length of the post-trial pause (5 optionsin ms). So that is a 2 x 2 x 2 x 5, or 40 different combinations
I want 10 trials of each combination. I do have a workingversion of the script but I was only able to get it to run without having anequal number in each condition. To do that, I made a list of each condition andassigned the current value to the appropriate values variable, like this (justshorter):
<list numberofobjects>
/items = (1,1,1,1,1,4,4,4,4,4)
/replace = false
/selectionmode = random
</list>
<list sameordifferent>
/items = (1,1,1,1,1,2,2,2,2,2)
/replace = false
/selectionmode = random
</list>
<list interveningstimulustype>
/items = (1,1,1,1,1,2,2,2,2,2)
/replace = false
/selectionmode = random
</list>
<list posttrialpauses>
/items = (10,20,30,40,50,10,20,30,40,50)
/replace = false
/selectionmode = random
</list>
<values>
/numobjects = 0
/sameordiff = 0
/stimtype = 0
/ptp = 0
</values>
<trial studystimuli>
/ontrialbegin = [values.numobjects =list.numberofobjects.nextvalue; values.sameordiff =list.sameordifferent.nextvalue; values.stimtype =list.interveningstimulustype.nextvalue; values.ptp =list.posttrialpause.nextvalue]
/ontrialbegin = [if (values.numberofobjects >= 1)trial.studyarray.insertstimulusframe(picture.object1, 1)]
/ontrialbegin = [if (values.numberofobjects >= 2)trial.studyarray.insertstimulusframe(picture.object2, 1)]
/ontrialbegin = [if (values.numberofobjects >= 3)trial.studyarray.insertstimulusframe(picture.object3, 1)]
/ontrialbegin = [if (values.numberofobjects >= 4)trial.studyarray.insertstimulusframe(picture.object4, 1)]
/ontrialend = [trial.studyarray.resetstimulusframes()]
/timeout = 1000
/posttrialpause = values.ptp
/branch = [if(values.stimtype == 1) trial.maskingstimuli1else trial.maskingstimuli2]
</trial>
<trial maskingstimuli1>
/stimulusframes = [1 = somestimulihere]
/branch = [if(values.sameordiff == 1) trial.sametrial elsetrial.different trial]
</trial>
<trial maskingstimuli2>
/stimulusframes = [1 = somestimulihere]
/branch = [if(values.sameordiff == 1) trial.sametrial elsetrial.different trial]
</trial>
I thought I could do something like this, where I have onelist where all the conditions are paired together and then select items withinthe items:
<list conditionslist>
/items = (1,1,2,10; 1,1,2,20; 1,1,2,30; 1,1,2,40; 1,1,2,50)
/replace = false
/selectionmode = random
</list>
But I’m not sure how to do that. I’ve tried a few things,like taking an item from that list (item being a string like 1,1,2,10), puttingit into another list and trying to use the list.currentconditions.item(1)function:
<list conditionslist>
/items = (1,1,2,10; 1,1,2,20; 1,1,2,30; 1,1,2,40; 1,1,2,50)
/replace = false
/selectionmode = random
</list>
<list currentconditions>
/replace = false
/selectionmode = random
</list>
<trial example>
/ontrialbegin = [list.currentconditions.items =list.conditionslist.nextvalue]
/ontrialbegin = [values.numobjects = list.currentconditions.item(1);values.sameordiff = list.currentconditions.item(2); values.stimtype = list.currentconditions.item(3);values.ptp = list.currentconditions.item4)]
</trial>
But when I do that, I either get no stimuli or get errorslike didn’t call the items function for list.currentconditions.
I am fairly new to Inquisit, so maybe there is anotherfunction I should be using here to ensure I get equal numbers of each combinationof conditions?
Thanks in advance.
Lisa