Millisecond Forums

Stimulusnumbers between blocks cause problem with order of the stimuli.

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

By letko - 1/27/2014

Hi all.

I have a problem with random selected graphics in following blocks.
In the first block everything is ok.

But in the further blocks INQ seemsto "remember" stimulusnumber from first block. That couse big problems with stimulus order in the block.

How can I reset stimulusnumbers?

Can someone look at it an try to help.


Attached you can find part of the result file and script.

By Dave - 1/27/2014

It is hard to understand what your actual problem may be. In other words, you do not state what you *expect* your code to do and what you expect to see as a result. But let me point out a few things:

<item current_pic>
</item>

<picture picture>
/items = current_pic
/position = (50%, 50%)
/size = (60%, 60%)
/erase = true (255, 255, 255)
</picture>

The above <picture> element sample randomly without replacement from <item current_pic>. You *keep adding* items to <item current_pic> at runtime per your <expressions>

<expressions>
/ w123_v1 = if ((values.order_count<5) || (values.order_count==6) || (values.order_count==7) || (values.order_count>8)) item.current_pic.item = values.current_picD;
            if (values.order_count==5) item.current_pic.item = values.current_picT1;
            if (values.order_count==8) item.current_pic.item = values.current_picT2
/ w123_v2 = if ((values.order_count<9) || (values.order_count==10) || (values.order_count==11) || (values.order_count>12)) item.current_pic.item = values.current_picD;
            if (values.order_count==9) item.current_pic.item = values.current_picT1;
            if (values.order_count==12) item.current_pic.item = values.current_picT2
/ w123_v3 = if ((values.order_count<13) || (values.order_count==14) || (values.order_count==15) || (values.order_count>16)) item.current_pic.item = values.current_picD;
            if (values.order_count==13) item.current_pic.item = values.current_picT1;
            if (values.order_count==16) item.current_pic.item = values.current_picT2

/ w456_v1 = if ((values.order_count<6) || (values.order_count>6 && values.order_count<12) || (values.order_count>12)) item.current_pic.item = values.current_picD;
            if (values.order_count==6) item.current_pic.item = values.current_picT1;
            if (values.order_count==12) item.current_pic.item = values.current_picT2
/ w456_v2 = if ((values.order_count<8) || (values.order_count>8 && values.order_count<14) || (values.order_count>14)) item.current_pic.item = values.current_picD;
            if (values.order_count==8) item.current_pic.item = values.current_picT1;
            if (values.order_count==14) item.current_pic.item = values.current_picT2
/ w456_v3 = if ((values.order_count<10) || (values.order_count>10 && values.order_count<16) || (values.order_count>16)) item.current_pic.item = values.current_picD;
            if (values.order_count==10) item.current_pic.item = values.current_picT1;
            if (values.order_count==16) item.current_pic.item = values.current_picT2
</expressions>

Every time one of those expressions is run by any of your <trial> elements, *another item is added* to the <item> element. Any previous items *do not dissappear* and the <picture> element will consequently sample from an ever-growing set of items as the task progresses through its blocks. If you want to remove items, you need to clear() the item element at an appropriate point in time.

With respect to your <list> elements, please consult the documentation for the /resetinterval attribute and be aware of the fact that -- contrary to <text>, <picture> or <counter> elements -- <list> selection pools *do not reset between blocks by default*.