Millisecond Forums

Calling a list of shapes within a trial

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

By ben_sydney - 11/10/2020



Hi,

I’m trying to call a list of shapes using stimulus frames within trials as follows in a dot probe type task, but I keep getting the error 'could not locate list.listname', it's a long script, but the key elements are below

KEY SCRIPT

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
         shape.painoff,
         shape.pain30hzUP,
         shape.painoff)
/select=sequence
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
         shape.control15hzDOWN,
         shape.controloff,
         shape.controloff)
/select=sequence
</list>

<trial sensory_CONGUP>
/stimulusframes = [1-60     =     whitescreen, list.pain30hzUP, list.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>


----

If I run it with just the elements it works fine:

<trial sensory_CONGUP>
/stimulusframes = [1-60  =  whitescreen, shape.pain30hzUP, shape.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

So everything else seems two be working, I just can't call the list, which I want to use to alternate the shapes appearing at different frequencies.

Thanks in advance,
Ben

(PS - a workaround would be if if there was a shape attribute that would allow me to pulse the shape on and off at a certain frequency, but I take it that's not possible?)

By Dave - 11/10/2020

ben_sydney - 11/10/2020


Hi,

I’m trying to call a list of shapes using stimulus frames within trials as follows in a dot probe type task, but I keep getting the error 'could not locate list.listname', it's a long script, but the key elements are below

KEY SCRIPT

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
         shape.painoff,
         shape.pain30hzUP,
         shape.painoff)
/select=sequence
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
         shape.control15hzDOWN,
         shape.controloff,
         shape.controloff)
/select=sequence
</list>

<trial sensory_CONGUP>
/stimulusframes = [1-60     =     whitescreen, list.pain30hzUP, list.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>


----

If I run it with just the elements it works fine:

<trial sensory_CONGUP>
/stimulusframes = [1-60  =  whitescreen, shape.pain30hzUP, shape.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

So everything else seems two be working, I just can't call the list, which I want to use to alternate the shapes appearing at different frequencies.

Thanks in advance,
Ben

(PS - a workaround would be if if there was a shape attribute that would allow me to pulse the shape on and off at a certain frequency, but I take it that's not possible?)


You can't mix list references and regular stimuli in a single frame in /stimulusframes, that's the issue. The solution is to set up your trial's stimulus presentation sequence /ontrialbegin by way of the inserstimulusframe() function.

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
   shape.painoff,
   shape.pain30hzUP,
   shape.painoff)
/select=sequence
/ selectionrate = always
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
   shape.control15hzDOWN,
   shape.controloff,
   shape.controloff)
/select=sequence
/ selectionrate = always
</list>


<trial sensory_CONGUP>
/ ontrialbegin = [
    trial.sensory_CONGUP.resetstimulusframes();
    
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);

    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
    ...
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);

    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
]
...
</trial>

Note: Not all stimuli may need (re-)insertion in every single frame 1 to 60 -- doing that with the shape lists may be enough, but I cannot tell from the code or the description you provided which stimuli require being re-drawn and which do not.
By ben_sydney - 11/10/2020

Dave - 11/10/2020
ben_sydney - 11/10/2020


Hi,

I’m trying to call a list of shapes using stimulus frames within trials as follows in a dot probe type task, but I keep getting the error 'could not locate list.listname', it's a long script, but the key elements are below

KEY SCRIPT

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
         shape.painoff,
         shape.pain30hzUP,
         shape.painoff)
/select=sequence
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
         shape.control15hzDOWN,
         shape.controloff,
         shape.controloff)
/select=sequence
</list>

<trial sensory_CONGUP>
/stimulusframes = [1-60     =     whitescreen, list.pain30hzUP, list.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>


----

If I run it with just the elements it works fine:

<trial sensory_CONGUP>
/stimulusframes = [1-60  =  whitescreen, shape.pain30hzUP, shape.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

So everything else seems two be working, I just can't call the list, which I want to use to alternate the shapes appearing at different frequencies.

Thanks in advance,
Ben

(PS - a workaround would be if if there was a shape attribute that would allow me to pulse the shape on and off at a certain frequency, but I take it that's not possible?)


You can't mix list references and regular stimuli in a single frame in /stimulusframes, that's the issue. The solution is to set up your trial's stimulus presentation sequence /ontrialbegin by way of the inserstimulusframe() function.

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
   shape.painoff,
   shape.pain30hzUP,
   shape.painoff)
/select=sequence
/ selectionrate = always
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
   shape.control15hzDOWN,
   shape.controloff,
   shape.controloff)
/select=sequence
/ selectionrate = always
</list>


<trial sensory_CONGUP>
/ ontrialbegin = [
    trial.sensory_CONGUP.resetstimulusframes();
    
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);

    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
    ...
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);

    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
]
...
</trial>

Note: Not all stimuli may need (re-)insertion in every single frame 1 to 60 -- doing that with the shape lists may be enough, but I cannot tell from the code or the description you provided which stimuli require being re-drawn and which do not.


OK, thanks, so I have to add quite a few ~300 lines per trial to specify the frames.

But, I think I am missing something obvious, i.e. what do I add not in the /stimulusframes line to work through those frames?

<trial sensory_CONGUP>
/ ontrialbegin = [
  trial.sensory_CONGUP.resetstimulusframes();
 
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
  ...
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
/stimulusframes = [1-60 = ????]
]

...
</trial>
By ben_sydney - 11/10/2020

ben_sydney - 11/10/2020
Dave - 11/10/2020
ben_sydney - 11/10/2020


Hi,

I’m trying to call a list of shapes using stimulus frames within trials as follows in a dot probe type task, but I keep getting the error 'could not locate list.listname', it's a long script, but the key elements are below

KEY SCRIPT

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
         shape.painoff,
         shape.pain30hzUP,
         shape.painoff)
/select=sequence
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
         shape.control15hzDOWN,
         shape.controloff,
         shape.controloff)
/select=sequence
</list>

<trial sensory_CONGUP>
/stimulusframes = [1-60     =     whitescreen, list.pain30hzUP, list.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>


----

If I run it with just the elements it works fine:

<trial sensory_CONGUP>
/stimulusframes = [1-60  =  whitescreen, shape.pain30hzUP, shape.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

So everything else seems two be working, I just can't call the list, which I want to use to alternate the shapes appearing at different frequencies.

Thanks in advance,
Ben

(PS - a workaround would be if if there was a shape attribute that would allow me to pulse the shape on and off at a certain frequency, but I take it that's not possible?)


You can't mix list references and regular stimuli in a single frame in /stimulusframes, that's the issue. The solution is to set up your trial's stimulus presentation sequence /ontrialbegin by way of the inserstimulusframe() function.

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
   shape.painoff,
   shape.pain30hzUP,
   shape.painoff)
/select=sequence
/ selectionrate = always
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
   shape.control15hzDOWN,
   shape.controloff,
   shape.controloff)
/select=sequence
/ selectionrate = always
</list>


<trial sensory_CONGUP>
/ ontrialbegin = [
    trial.sensory_CONGUP.resetstimulusframes();
    
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);

    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
    ...
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);

    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
]
...
</trial>

Note: Not all stimuli may need (re-)insertion in every single frame 1 to 60 -- doing that with the shape lists may be enough, but I cannot tell from the code or the description you provided which stimuli require being re-drawn and which do not.


OK, thanks, so I have to add quite a few ~300 lines per trial to specify the frames.

But, I think I am missing something obvious, i.e. what do I add not in the /stimulusframes line to work through those frames?

<trial sensory_CONGUP>
/ ontrialbegin = [
  trial.sensory_CONGUP.resetstimulusframes();
 
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
  ...
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
/stimulusframes = [1-60 = ????]
]

...
</trial>

PS this is what the trial looks like now:

<trial sensory_CONGUP>
/ontrialbegin = [    
    trial.sensory_CONGUP.resetstimulusframes();
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,1 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 1 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 2 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 2 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,2 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 2 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 2 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 3 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 3 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,3 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 3 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 3 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 4 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 4 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,4 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 4 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 4 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 5 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 5 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,5 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 5 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 5 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 6 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 6 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,6 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 6 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 6 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 7 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 7 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,7 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 7 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 7 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 8 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 8 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,8 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 8 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 8 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 9 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 9 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,9 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 9 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 9 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 10 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 10 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,10 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 10 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 10 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 11 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 11 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,11 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 11 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 11 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 12 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 12 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,12 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 12 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 12 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 13 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 13 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,13 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 13 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 13 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 14 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 14 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,14 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 14 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 14 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 15 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 15 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,15 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 15 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 15 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 16 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 16 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,16 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 16 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 16 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 17 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 17 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,17 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 17 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 17 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 18 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 18 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,18 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 18 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 18 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 19 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 19 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,19 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 19 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 19 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 20 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 20 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,20 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 20 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 20 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 21 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 21 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,21 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 21 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 21 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 22 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 22 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,22 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 22 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 22 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 23 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 23 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,23 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 23 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 23 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 24 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 24 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,24 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 24 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 24 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 25 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 25 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,25 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 25 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 25 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 26 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 26 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,26 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 26 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 26 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 27 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 27 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,27 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 27 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 27 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 28 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 28 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,28 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 28 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 28 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 29 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 29 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,29 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 29 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 29 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 30 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 30 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,30 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 30 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 30 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 31 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 31 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,31 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 31 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 31 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 32 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 32 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,32 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 32 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 32 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 33 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 33 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,33 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 33 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 33 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 34 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 34 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,34 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 34 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 34 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 35 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 35 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,35 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 35 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 35 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 36 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 36 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,36 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 36 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 36 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 37 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 37 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,37 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 37 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 37 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 38 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 38 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,38 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 38 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 38 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 39 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 39 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,39 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 39 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 39 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 40 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 40 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,40 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 40 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 40 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 41 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 41 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,41 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 41 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 41 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 42 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 42 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,42 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 42 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 42 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 43 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 43 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,43 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 43 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 43 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 44 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 44 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,44 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 44 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 44 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 45 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 45 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,45 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 45 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 45 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 46 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 46 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,46 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 46 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 46 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 47 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 47 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,47 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 47 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 47 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 48 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 48 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,48 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 48 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 48 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 49 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 49 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,49 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 49 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 49 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 50 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 50 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,50 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 50 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 50 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 51 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 51 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,51 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 51 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 51 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 52 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 52 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,52 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 52 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 52 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 53 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 53 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,53 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 53 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 53 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 54 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 54 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,54 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 54 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 54 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 55 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 55 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,55 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 55 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 55 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 56 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 56 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,56 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 56 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 56 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 57 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 57 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,57 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 57 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 57 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 58 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 58 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,58 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 58 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 58 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 59 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 59 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,59 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 59 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 59 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,60 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 60 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60 )
    ]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>
By Dave - 11/10/2020

ben_sydney - 11/10/2020
ben_sydney - 11/10/2020
Dave - 11/10/2020
ben_sydney - 11/10/2020


Hi,

I’m trying to call a list of shapes using stimulus frames within trials as follows in a dot probe type task, but I keep getting the error 'could not locate list.listname', it's a long script, but the key elements are below

KEY SCRIPT

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
         shape.painoff,
         shape.pain30hzUP,
         shape.painoff)
/select=sequence
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
         shape.control15hzDOWN,
         shape.controloff,
         shape.controloff)
/select=sequence
</list>

<trial sensory_CONGUP>
/stimulusframes = [1-60     =     whitescreen, list.pain30hzUP, list.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>


----

If I run it with just the elements it works fine:

<trial sensory_CONGUP>
/stimulusframes = [1-60  =  whitescreen, shape.pain30hzUP, shape.control15hzDOWN, sensorywords_CONGUP, sensorycontrol_CONGUP]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

So everything else seems two be working, I just can't call the list, which I want to use to alternate the shapes appearing at different frequencies.

Thanks in advance,
Ben

(PS - a workaround would be if if there was a shape attribute that would allow me to pulse the shape on and off at a certain frequency, but I take it that's not possible?)


You can't mix list references and regular stimuli in a single frame in /stimulusframes, that's the issue. The solution is to set up your trial's stimulus presentation sequence /ontrialbegin by way of the inserstimulusframe() function.

<shape pain30hzUP>
/position = (50, values.probeUP)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape painoff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list pain30hzUP>
/items = (shape.pain30hzUP,
   shape.painoff,
   shape.pain30hzUP,
   shape.painoff)
/select=sequence
/ selectionrate = always
</list>


<shape control15hzDOWN>
/position = (50, values.probeDOWN)
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
</shape>

<shape controloff>
/position = (0,0)
/shape = rectangle
/color = (127,127,127)
/size = (20%, 10%)
</shape>

<list control15hzDOWN>
/items = (shape.control15hzDOWN,
   shape.control15hzDOWN,
   shape.controloff,
   shape.controloff)
/select=sequence
/ selectionrate = always
</list>


<trial sensory_CONGUP>
/ ontrialbegin = [
    trial.sensory_CONGUP.resetstimulusframes();
    
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);

    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
    ...
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
    trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);

    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
]
...
</trial>

Note: Not all stimuli may need (re-)insertion in every single frame 1 to 60 -- doing that with the shape lists may be enough, but I cannot tell from the code or the description you provided which stimuli require being re-drawn and which do not.


OK, thanks, so I have to add quite a few ~300 lines per trial to specify the frames.

But, I think I am missing something obvious, i.e. what do I add not in the /stimulusframes line to work through those frames?

<trial sensory_CONGUP>
/ ontrialbegin = [
  trial.sensory_CONGUP.resetstimulusframes();
 
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 1);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1);
  ...
  trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.senorywords_CONGUP, 60);
  trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60);
/stimulusframes = [1-60 = ????]
]

...
</trial>

PS this is what the trial looks like now:

<trial sensory_CONGUP>
/ontrialbegin = [    
    trial.sensory_CONGUP.resetstimulusframes();
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 1 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 1 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,1 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 1 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 1 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 2 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 2 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,2 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 2 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 2 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 3 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 3 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,3 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 3 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 3 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 4 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 4 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,4 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 4 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 4 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 5 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 5 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,5 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 5 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 5 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 6 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 6 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,6 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 6 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 6 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 7 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 7 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,7 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 7 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 7 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 8 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 8 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,8 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 8 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 8 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 9 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 9 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,9 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 9 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 9 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 10 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 10 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,10 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 10 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 10 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 11 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 11 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,11 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 11 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 11 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 12 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 12 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,12 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 12 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 12 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 13 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 13 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,13 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 13 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 13 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 14 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 14 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,14 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 14 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 14 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 15 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 15 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,15 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 15 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 15 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 16 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 16 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,16 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 16 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 16 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 17 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 17 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,17 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 17 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 17 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 18 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 18 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,18 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 18 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 18 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 19 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 19 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,19 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 19 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 19 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 20 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 20 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,20 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 20 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 20 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 21 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 21 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,21 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 21 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 21 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 22 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 22 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,22 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 22 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 22 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 23 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 23 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,23 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 23 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 23 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 24 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 24 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,24 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 24 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 24 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 25 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 25 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,25 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 25 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 25 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 26 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 26 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,26 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 26 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 26 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 27 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 27 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,27 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 27 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 27 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 28 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 28 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,28 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 28 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 28 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 29 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 29 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,29 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 29 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 29 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 30 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 30 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,30 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 30 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 30 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 31 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 31 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,31 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 31 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 31 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 32 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 32 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,32 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 32 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 32 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 33 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 33 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,33 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 33 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 33 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 34 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 34 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,34 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 34 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 34 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 35 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 35 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,35 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 35 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 35 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 36 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 36 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,36 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 36 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 36 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 37 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 37 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,37 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 37 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 37 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 38 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 38 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,38 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 38 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 38 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 39 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 39 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,39 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 39 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 39 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 40 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 40 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,40 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 40 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 40 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 41 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 41 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,41 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 41 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 41 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 42 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 42 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,42 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 42 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 42 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 43 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 43 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,43 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 43 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 43 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 44 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 44 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,44 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 44 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 44 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 45 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 45 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,45 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 45 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 45 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 46 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 46 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,46 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 46 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 46 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 47 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 47 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,47 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 47 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 47 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 48 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 48 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,48 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 48 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 48 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 49 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 49 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,49 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 49 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 49 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 50 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 50 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,50 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 50 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 50 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 51 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 51 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,51 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 51 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 51 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 52 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 52 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,52 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 52 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 52 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 53 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 53 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,53 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 53 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 53 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 54 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 54 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,54 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 54 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 54 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 55 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 55 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,55 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 55 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 55 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 56 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 56 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,56 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 56 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 56 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 57 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 57 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,57 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 57 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 57 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 58 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 58 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,58 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 58 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 58 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 59 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 59 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,59 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 59 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 59 );
    trial.sensory_CONGUP.insertstimulusframe(shape.whitescreen, 60 );
    trial.sensory_CONGUP.insertstimulusframe(list.pain30hzUP.nextvalue, 60 );
    trial.sensory_CONGUP.insertstimulusframe(list.control15hzDOWN.nextvalue,60 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorywords_CONGUP, 60 );
    trial.sensory_CONGUP.insertstimulusframe(text.sensorycontrol_CONGUP, 60 )
    ]
/inputdevice = keyboard
/correctresponse = (noresponse)
/trialduration = 1000
/ontrialend = [values.currenttarget = text.sensorywords_CONGUP.currentitem]
/ontrialend = [values.currentfoil = text.sensorycontrol_CONGUP.currentitem]
</trial>

> But, I think I am missing something obvious, i.e. what do I add not in the /stimulusframes line to work through those frames?

If the entire stimulus presentation sequence is set up via /ontrialbegin logic, no /stimulusframes attribute is needed. The /ontrialbegin logic sets up the stimulus frames.
By ben_sydney - 11/10/2020

And when I run that, the experiment runs, but no stimuli are presented on that trial
By Dave - 11/10/2020

ben_sydney - 11/10/2020
And when I run that, the experiment runs, but no stimuli are presented on that trial

Attach the full code and then I might be able to tell you why.
By Dave - 11/10/2020

Dave - 11/11/2020
ben_sydney - 11/10/2020
And when I run that, the experiment runs, but no stimuli are presented on that trial

Attach the full code and then I might be able to tell you why.

Let me add that there are more efficient ways to code this as well. E.g. something like

<shape a_on>
/ shape = rectangle
/ color = red
/ position = (50%, 25%)
/ size = (10%, 20%)
</shape>

<shape a_off>
/ shape = rectangle
/ color = white
/ position = (50%, 25%)
/ size = (10%, 20%)
</shape>

<list a_shapelist>
/ items = (shape.a_on, shape.a_on, shape.a_off, shape.a_off)
/ selectionmode = sequence
/ selectionrate = always
</list>

<shape b_on>
/ shape = rectangle
/ color = red
/ position = (50%, 75%)
/ size = (10%, 20%)
</shape>

<shape b_off>
/ shape = rectangle
/ color = white
/ position = (50%, 75%)
/ size = (10%, 20%)
</shape>

<list b_shapelist>
/ items = (shape.b_on, shape.b_off, shape.b_on, shape.b_off)
/ selectionmode = sequence
/ selectionrate = always
</list>

<values>
/ framecount = 0
/ nframes = 100
</values>

<trial mytrial>
/ ontrialbegin = [
    trial.mytrial.resetstimulusframes();
    values.framecount = 0;
]
/ ontrialbegin = [
    while (values.framecount < values.nframes){
    values.framecount += 1;
    trial.mytrial.insertstimulusframe(list.a_shapelist.nextvalue, values.framecount);
    trial.mytrial.insertstimulusframe(list.b_shapelist.nextvalue, values.framecount);
    };
]
/ validresponse = (57)
/ trialduration = (values.nframes * display.refreshinterval) + 100
</trial>

<block myblock>
/ trials = [1-4 = mytrial]
</block>


or by making use of the /animation attribute along the lines of

<values>
/ probeUP = 20%
/ probedown = 80%
</values>

//slow flicker: 2 frames on, 2 frames off
<shape pain30hzUP>
/shape = rectangle
/color = mediumturquoise
/ size = (20%, 10%)
/ animation = points(4*display.refreshinterval, -1, 50%, values.probeUP, 0%, 0%)
</shape>

//fast flicker: 1 frame on, 1 frame off
<shape control15hzDOWN>
/shape = rectangle
/color = mediumturquoise
/size = (20%, 10%)
/ animation = points(2*display.refreshinterval, -1, 50%, values.probeDOWN, 0%, 0%)
</shape>

// used to cover up the two flickering shapes' off-center position.
<shape off>
/shape = rectangle
/color = white
/ size = (20%, 10%)
/ animation = points(2*display.refreshinterval, -1, 0%, 0%, 0%, 0%)
</shape>

<trial mytrial>
/ posttrialpause = 100
/ stimulusframes = [1=shape.pain30hzUP, shape.control15hzDOWN, shape.off]
/ trialduration = 1000
</trial>

<block myblock>
/ trials = [1-4 = mytrial]
</block>



By ben_sydney - 11/11/2020


Thanks, fixed the long version (had made a mistake updating a block list), but seemed to miss some of the presentations.

BUT

The animation version works perfectly. I was wondering if I could use animate, but hadn't thought to move to a second location and mask that with another stimulus.

Thanks for the help.