Millisecond Forums

Newbie - Trials, Blocks, EXPT & AAT

https://forums.millisecond.com/Topic15917.aspx

By The Electric Man - 4/2/2015

Hello, I have a question about trials, blocks, and EXPT. I am attempting to write out code for an Approach-Avoid-Task that would utilize a button box. I'm having some trouble wrapping my head around the Trial, Blocks, and EXPT functions.

Currently, I am aware of how to identify the stimuli (namely pictures) through the item function, and to write out the instructions through the "item instructions" function, but I have trouble with the aforementioned functions.

Take the following block of code as an example:
"<item targetAlabel>
/ 1 = "Carnivores"
</item>

<item targetA>
/ 1 = "carnivore1.jpg"
/ 2 = "carnivore2.jpg"
/ 3 = "carnivore3.jpg"
/ 4 = "carnivore4.jpg"
/ 5 = "carnivore5.jpg"
</item>

<item targetBlabel>
/ 1 = "Nonpredatory"
</item>

<item targetB>
/ 1 = "Nonpredatory1.jpg"
/ 2 = "Nonpredatory2.jpg"
/ 3 = "Nonpredatory3.jpg"
/ 4 = "Nonpredatory4.jpg"
/ 5 = "Nonpredatory5.jpg"
</item>


<trial targetA>
/ validresponse = ("1", "3")
/ correctresponse = ("1")
/ stimulusframes = [3 = targetA]
/ posttrialpause = 250
</trial>

<trial targetB>
/ validresponse = ("1", "3")
/ correctresponse = ("3")
/ stimulusframes = [3 = targetB]
/ posttrialpause = 250
</trial>

<instruct>
/ nextlabel = "Continue"
/ lastlabel = "Continue"
/ prevkey = (0)
/ inputdevice = mouse
/ windowsize = (90%, 90%)
/ screencolor = (0, 0, 0)
/ fontstyle = ("Arial", 3%)
/ txcolor = (255, 255, 255)
</instruct>


<trial instruct>
/ stimulustimes = [1=instruct, spacebar]
/ correctresponse = ("2")
/ errormessage = false
/ recorddata = false
</trial>

<block targetpractice>
/ bgstim = (targetA, targetB)
/ trials = [1=instructions;2-21 = noreplace(targetA, targetB)]
/ responsemode=correct
/ recorddata = false
</block>

<block targetreal>
/ bgstim = (targetA, targetB)
/ trials = [
    1, 3, 5 = noreplace (targetA, targetB)
    2, 4 = noreplace(targetA, targetB)
/ responsemode = correct
/ recorddata = true
</block>

<block targetrealistic>
/ bgstim = (targetB, targetA)
/ trials = [
    1, 3, 5 = noreplace(targetB, targetA)
    2, 4 = noreplace(targetB, targetA)
/ responsemode = correct
</block>

<expt>
/ blocks = [1=targetpractice; 2=block2; 3=block3]
</expt>

<variables>
/ group = (1 of 2) (block2=targetreal; block3=targetrealistic)
/ group = (2 of 2) (block2=targetrealistic; block3=targetreal)
</variables>

<defaults>
/ screencolor = (255, 255, 255)
</defaults>"

The following errors are some of the errors I am getting.
block.attributepractice: Could not locate stimulus 'practicerun'.
block.attributepractice: Could not locate element "instruction"
block.attributepractice: Trial 1 is unassigned.

Should I reverse engineer my code, starting out with EXPT and working my way up to items?
Any help would be appreciated.
By Dave - 4/2/2015

There are stimulus elements -- <picture>, <text>, etc. They define what a stimulus is (e.g. an image), where on the screen it's displayed  and how its items are to be selected.

<item> elements just store items to be used by stimulus elements, nothing else.

A <trial> elements display stimulus elements and collects a response.

A <block> element runs a collection of trials.

An <expt> elements runs a collection of blocks.

You should *not* start by reverse-engineering an existing piece of code. You *should* start by working through the tutorials included in the Inquisit documenation, which will introduce the elementary syntax elements sketched above.