By Stahlwal - 9/20/2015
I´m new to Inquisit and only have done a very simple AMP Task till now. Which is basically a modified IAT. Also I only have a little experience in programming. Now I´m being pushed into the cold water. I have to create an Emotional Stroop Task (different from the one in the library).
Basically happy and fearful faces with the words Happy and Fearful written on them. Either congruent or incongruent. So I named the stimuli MxHH (Male, counting variable, Happy Face, Happy Word) So far so good.
The Problem is I can´t present the Stimuli just at random. There are certain criteria.
1. I need an equal number of stimuli combinations of congruent - congruent, congruent - incongruent, incongruent - congruent and incongruent - incongruent.
Trial 1 -> Incongruent -> (With no preceding trial there is no combination)
Trial 2 -> Congruent -> I-C Combination
Trial 3 -> Congruent -> C-C Combination
2. Additionally I need some way to set an id for each combination in the data output for later Spss voodoo.
3. After for example M1HH appeared as Stimulus. M1 in any Face/Word Combination can´t appear in the following trial. I can´t have the same face twice.
4. After a MxHH combination, no HH combination can follow. It must be a FH, FF, HF. So I can´t have the same Face/Word Combination twice.
I don´t even have an idea what to do about the pseudorandomization in problem 1.
I have an idea what to do about problem 2-4 but don´t know how to do it. Problem 2 could be solved by comparing the current trial with the preceding one and setting an id. Problem 3 and 4 could be solved comparing the current trial with his preceding one and exclude certain stimuli before the stimuli appears.
I´m so far out of my depth I don´t even know where to look for answers in the Inquisit Documentation. Can you tell me which commands i should check?
Is there maybe an experiment in the library which has done something similar which you can point me at? Looked through some but didn´t find or recognized what I needed.
And sorry for the wall of text. ;)
By Dave - 9/20/2015
Regarding the pseudorandomization (#1): You need to come up with an algorithm that produces trial sequences adhering to your constraints. This can be difficult, and it may be impossible to do on-the-fly. See https://www.millisecond.com/forums/Topic6419.aspx for some general thoughts on the topic. One possibility is to pre-generate several conforming sequences (either automatically, semi-automatically or manually), hard-code them into your script and simply have the script select one at random. Take a look at the AAT scripts in the library ( https://www.millisecond.com/download/library/AAT/ ), specifically at the trial sequence generation code starting at line 1366 in the mouse-version.
Setting an id is easy. You store the id in a <values> entry and log the value to the data file:
/ id = ""
/ ontrialend = [values.id = "c"; ]
/ columns = [date time subject ... values.id ...]
Blocking certain stimuli for selection in a row can be achieved in multiple ways. If you use a common <list> for selection in the respective stimulus elements, you can use the /maxrunsize attribute to prevent the same item from being selected in a row.
/ items = (1,1,2,2,3,3,...)
/ maxrunsize = 1
If you have multiple lists / stimulus pools, you can use the respective elements' /not attributes to exclude /block items from selection.
Question #4 can either be tackled just like #3 above. However, it seems to me there's also a relation to #1, the overall pseudorandomization issue. It might be best to treat this as an additional constraint and dealt with it during trial-sequence generation.
Hope this gives you a starting point.
By Stahlwal - 9/23/2015
Sorry for the delayed answer.
Thanks Dave, for the detailed answer. You helped me out alot!
The pregnerated lists would solve all of those problems. And if i generate enough of them and noreplace them I got my pseudorandom with all its constraints.
At least for the pilot study and until I know Inquisit better this is plenty.