+xThank you for your fast answer.
Using the <batch> way would randomize the scripts, but the randomization of the stimuli pools would not be possible. Is my asumption right? Or is there a way to randomize the same stimuli pools for different scripts.
At the moment I see the same problem for using <block>. I think that I am missing something. I will post a PSE-file we are using and maybe you can help me to realize where I am stuck.
In the file you can see the structure that we use at the moment. Every <block> consist of a <trial> showing a picture and after that an <openended>. I can't wrap my head around the right way to program my experiment. I try to explain again what I want and what problems I see.
Requirements: 3 blocks (1=speech, 2=Keyboard, 3=pen&paper), 3 picture lists (I, II, III), every list consists of 3 pictures (a, b, c)
In the following I will describe a possible sequence for one subject in the experiment:
experiment starts: experiment randomly selects block 2 -> instructions to use the Keyboard for the following 3 stories -> randomly selects picture list III -> randomly shows picture IIIc for 10 seconds -> <openended> for 4 minutes -> now randomly shows picture IIIa for 10 seconds -> <openended> for 4 minutes -> now randomly shows picture IIIb -> <openended> for 4 minutes --------> now random selection of block 1 -> instruchtion to use the microphone for the following 3 stories -> randomly selects picture list I -> randomly shows pic Ia for 10 seconds -> voice reording with a prompt to go on after 4 min -> randomly pic Ic for 10 sec -> voice recording with a prompt to go on after 4 min -> randomly pic Ib for 10 sec -> voce recording with a prompt to go on after 4 min --------------> now selection of block 3 -> instruction to use pen&paper -> selection of picture list II -> randomly pic IIb for 10 sec -> black Screen with prompt to use pen&paper after 4 min prompt to go on -> randomly pic IIa for 10 sec .... and so on
With the current structure of the PSE I don't know how to program blocks that randomly select a picture list (with noreplace) and then randomly show the three pictures of the list with the same Input device.
Dominik
You can implement that kind of selection using nested <list> elements. In a nutshell, suppose you have 9 items, i.e. three sets of three items belonging together:
<text example>
/ items = exampleitems
/ select = values.itemnum
</text>
<item exampleitems>
/ 1 = "1a.jpg"
/ 2 = "1b.jpg"
/ 3 = "1c.jpg"
/ 4 = "2a.jpg"
/ 5 = "2b.jpg"
/ 6 = "2c.jpg"
/ 7 = "3a.jpg"
/ 8 = "3b.jpg"
/ 9 = "3c.jpg"
</item>
List 1 is comprised of items 1 to 3, list 2 is comprised of items 4 to 6, and list 3 is comprised of items 7 to 9:
<list 1>
/ items = (1,2,3)
</list>
<list 2>
/ items = (4,5,6)
</list>
<list 3>
/ items = (7,8,9)
</list>
Then you can put those in a list of lists, and randomly select a list number to use for a given <block> /onblockbegin:
<list mainlist>
/ items = (list.1.nextvalue, list.2.nextvalue, list.3.nextvalue)
/ selectionmode = values.listnum
</list>
<list listnumber>
/ items = (1,2,3)
</list>
<trial mytrial>
/ ontrialbegin = [
values.itemnum = list.mainlist.nextvalue;
]
/ stimulusframes = [1=example]
/ validresponse = (57)
</trial>
<block X>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>
<block Y>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>
<block Z>
/ preinstructions = (intro)
/ onblockbegin = [
values.listnum = list.listnumber.nextvalue;
]
/ trials = [1-3 = mytrial]
</block>
<expt>
/ blocks = [1-3 = noreplace(x,y,z)]
</expt>
<page intro>
^This is block <%script.currentblock%>.
^We'll be using items from list #<%values.listnum%> in this block.
</page>
<values>
/ listnum = 1
/ itemnum = 1
</values>