Creating all combinations of stimuli and correct feedback


Author
Message
SilvioM
SilvioM
Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)
Group: Forum Members
Posts: 8, Visits: 105
Dear all, 
I am just developing my first Inquisit task and I would need your support. The task I would like to create is the following:
- Fixation cross - Display a "manikin" picture and two word stimuli, either in the upper part and the lower part of the screen - Display a feedback, depending on participant' response (correct; incorrect; or too slow response).
In this example, I have four different "target" stimuli which are displayed at the top of screen and four "distracting" stimuli which are displayed at the bottom of the screen. Using this post (https://www.millisecond.com/forums/Topic2273.aspx), I have created a counter to generate all possible combinations between my 4 "target" stimuli and my 4 "distracting" stimuli (i.e., 16 trials). 

The problem is: when the participant gives the correct answer, I would like to display a feedback in which the manikin gets closer from the "target" stimulus and in which the same "target" and "distracting" stimuli remain displayed on screen. However, using my actual code, the "target" and "distracting" stimuli change between the "trial" and the feedback.

When I do not create the possible combinations using a counter, I manage to display the same stimuli between the trial and the feedback, using this post (https://www.millisecond.com/forums/Topic20934.aspx#21189). Specifically, I was using:

<list itemnumbers_PA_top>                                
/ items = (1,4) 
</list>

<values>
/ myvalue = 1
</values>

<list itemnumbers_SED_bottom>          
/ items = (1,4)
</list>

<values>
/ myvalue = 1
</values>

<trial PA_top>
/ ontrialbegin = [values.itemnumber_PA_top = list.itemnumbers_PA_top.nextvalue;]
/ ontrialbegin = [values.itemnumber_SED_bottom = list.itemnumbers_SED_bottom.nextvalue;]   
/ stimulusframes = [1= focuspoint; 250 = PA_top, SED_bottom, moi]                         
/ validresponse = ("t", "b")
/ correctresponse = ("t")
/ timeout = 10000
/ branch = [if (trial.PA_top.response == 0) trial.tooslowfb]                            
/ branch = [if (trial.PA_top.error) trial.errorfb]                                        
/ branch = [if (trial.PA_top.correct) trial.correctfb_PA_top]                            
</trial>

<trial correctfb_PA_top>
/ stimulusframes = [1= FB_top, PA_top, SED_bottom]
/ validresponse = (0)
/ trialduration = 750
</trial>
 
However, up to now, adding these lines does not change anything when I previously create all possible combinations of trials. 
Do you think that we could mix these two approaches? Please find my code attached.

Thank you very much for your help,
Silvio
Attachments
Inquisit_AAT.zip (152 views, 5.00 KB)
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
SilvioM - 4/4/2021
Dear all, 
I am just developing my first Inquisit task and I would need your support. The task I would like to create is the following:
- Fixation cross - Display a "manikin" picture and two word stimuli, either in the upper part and the lower part of the screen - Display a feedback, depending on participant' response (correct; incorrect; or too slow response).
In this example, I have four different "target" stimuli which are displayed at the top of screen and four "distracting" stimuli which are displayed at the bottom of the screen. Using this post (https://www.millisecond.com/forums/Topic2273.aspx), I have created a counter to generate all possible combinations between my 4 "target" stimuli and my 4 "distracting" stimuli (i.e., 16 trials). 

The problem is: when the participant gives the correct answer, I would like to display a feedback in which the manikin gets closer from the "target" stimulus and in which the same "target" and "distracting" stimuli remain displayed on screen. However, using my actual code, the "target" and "distracting" stimuli change between the "trial" and the feedback.

When I do not create the possible combinations using a counter, I manage to display the same stimuli between the trial and the feedback, using this post (https://www.millisecond.com/forums/Topic20934.aspx#21189). Specifically, I was using:

<list itemnumbers_PA_top>                                
/ items = (1,4) 
</list>

<values>
/ myvalue = 1
</values>

<list itemnumbers_SED_bottom>          
/ items = (1,4)
</list>

<values>
/ myvalue = 1
</values>

<trial PA_top>
/ ontrialbegin = [values.itemnumber_PA_top = list.itemnumbers_PA_top.nextvalue;]
/ ontrialbegin = [values.itemnumber_SED_bottom = list.itemnumbers_SED_bottom.nextvalue;]   
/ stimulusframes = [1= focuspoint; 250 = PA_top, SED_bottom, moi]                         
/ validresponse = ("t", "b")
/ correctresponse = ("t")
/ timeout = 10000
/ branch = [if (trial.PA_top.response == 0) trial.tooslowfb]                            
/ branch = [if (trial.PA_top.error) trial.errorfb]                                        
/ branch = [if (trial.PA_top.correct) trial.correctfb_PA_top]                            
</trial>

<trial correctfb_PA_top>
/ stimulusframes = [1= FB_top, PA_top, SED_bottom]
/ validresponse = (0)
/ trialduration = 750
</trial>
 
However, up to now, adding these lines does not change anything when I previously create all possible combinations of trials. 
Do you think that we could mix these two approaches? Please find my code attached.

Thank you very much for your help,
Silvio

What you need to do is

<values>
/ PA_top = 1
/ SED_bottom = 1
</values>

with

<trial PA_top>
/ ontrialbegin = [
    values.PA_top = counter.counter_PA_top.selectedvalue;
    values.SED_bottom = counter.counter_SED_bottom.selectedvalue;
]


/ stimulusframes = [1=focuspoint; 100 = PA_top, SED_bottom, moi]
/ validresponse = ("t", "b")
/ correctresponse = ("t")
/ timeout = 10000
/ branch = [if (trial.PA_top.response == 0) trial.tooslowfb]                            
/ branch = [if (trial.PA_top.error) trial.errorfb]                                        
/ branch = [if (trial.PA_top.correct) trial.correctfb_PA_top]
</trial>

and

<text PA_top>
/ items = PA_top
/ position = (50%, 10%)    
/ select = values.PA_top
</text>

<text SED_bottom>
/ items = SED_bottom
/ position = (50%, 90%)    
/ select = values.sed_bottom
</text>
SilvioM
SilvioM
Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)Associate Member (99 reputation)
Group: Forum Members
Posts: 8, Visits: 105
Thank you very much Dave, it worked wonders!
Best regards,
Silvio
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search