Millisecond Forums

Short videos w/response followed by surveypage

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

By ldobb - 9/14/2015

Hi there,
Thank you all in advance for even reading this post. I'm a complete novice to Inquisit and have been pouring over the forums and tutorials to try my best to understand how it all works. I'm afraid it hasn't really clicked yet.

What I'd like to do is this:
I have 6 categories of videos (happy, scared, angry, with a female and male for each) and 6 videos within each category. I'd like to show participants the video, have them press the spacebar when they can see a discernible emotion, and then on a surveypage, they'll report what emotion they believe they saw.
I started working on a script and am having a lot of trouble figuring out how to have a video stimulus followed by a surveypage that has a corresponding "correct" answer. 

To give you a sense of what I'm working with, here are some relevant pieces of the script. Everything else is basically a repeat of below, just for the different categories.

This is what each trial looks like, there is one for Male-Anger, Male-Fear, Male-Joy, Female-Anger, Female-Fear, Female-Joy:
<trial M_ANGER>
/ stimulustimes = [0=M_ANGER]
/ responseinterrupt = immediate
/ validresponse = (57, 0)
/ responsetrial = (0, M_ANGER)
/ timeout = 1000
/ branch = [surveypage.anger_survey]
</trial>

<video M_ANGER>
/ items = M_ANGER
/ playthrough = false
/ select = noreplace
</video>

<item M_ANGER>
/1 = "M_AN_01.mpg"
/2 = "M_AN_02.mpg"
/3 = "M_AN_03.mpg"
/4 = "M_AN_04.mpg"
/5 = "M_AN_05.mpg"
/6 = "M_AN_06.mpg"
</item>

The surveypages look like this:

<surveypage anger_survey>
/ caption = "What emotion did you see expressed in the previous video?"
/ subcaption = "Click on the word that you think fits best."
/ questions = [1=anger_q]
/ finishlabel = "Click here to proceed to the next video."
</surveypage>

<listbox anger_q>
/ correctresponse = ("Anger")
/ options = ("Anger", "Fear", "Joy")
/ optionvalues = ("Anger.jpg", "Fear.jpg", "Joy.jpg")
</listbox>

I guess my question is whether this is the most efficient/best way to structure it, and if so, how could I best format blocks to fit the task design? When I have attempted it before, it'll show one video/survey and then I can't continue. I'm sure I've made the code pretty clunky and could benefit from some Millisecond-forum-wisdom.
All help is greatly appreciated.
By Dave - 9/14/2015

That's a perfectly valid and sound way to do what you want to do.

As for setting up the <block>(s): You'd simply do

<block someblock>
/ trials = [1-6 = M_ANGER]
...
</block>

to display the 6 videos in your example: Run <trial M_ANGER> 6 times. Via the /branch in the <trial>, each instance of the <trial> will be followed by <surveypage anger_survey>.

To extend, suppose you also have corresponding F_ANGER trials (and six video items), then you'd do

<block someblock>
/ trials = [1-12 = noreplace(M_ANGER, F_ANGER)]
...
</block>

to run 6 M_ANGER and 6 F_ANGER trials in random order. Extend as needed for as many categories of trials you have.

By ldobb - 9/15/2015

Thanks so much for the feedback, Dave, I'm really glad to know I've somewhat sorted out how to use Inquisit! I'm now wondering this: if participants come for 3 study visits, and view 12 videos each time (for a grand total of 36 videos after all of the visits), does Inquisit recognize the Subject ID at each session and therefore won't repeat any of the 36 videos? Or would I have to do something else to ensure they don't see a video more than once?
By ldobb - 9/15/2015

I'll also add that I just ran the script as myself and then also as the test monkey. For some reason, The test monkey zips right through it, and it'll go video/surveypage/video/surveypage etc etc. When I do it, however, I'll click an answer on the surveypage, click Finish, and nothing happens. Could this be a branching issue?
By Dave - 9/15/2015

No. In and of itself, Inquisit has no concept of "persistence across sessions" or picking up where a previous session left off. Any such logic would have to be implemented by yourself directly into the script (e.g. by treating the 3 sets of 12 videos as 3 between-subjects conditions and passing the unique subject id and group / session id in to the launch page via query parameters).
By ldobb - 9/15/2015

Got it, good to know. I'll plan accordingly. 

Any thoughts on the second question I posted above? I contemplated uploading the script but I don't want to take up too much of your time. 
By Dave - 9/15/2015

The problem is due to the /optionvalues in your <listbox>:

<listbox anger_q>
/ correctresponse = ("Anger")
/ options = ("Anger", "Fear", "Joy")
/ optionvalues = ("Anger.jpg", "Fear.jpg", "Joy.jpg")
</listbox>

/optionvalues overrides /options, which leads to the specified /correctresponse ("Anger") and the (implicit) /validresponse(s) not actually being possible to attain. Doing

<listbox anger_q>
/ correctresponse = ("Anger.jpg")
/ validresponse = ("Anger.jpg", "Fear.jpg", "Joy.jpg")

/ options = ("Anger", "Fear", "Joy")
/ optionvalues = ("Anger.jpg", "Fear.jpg", "Joy.jpg")
</listbox>

should fix this.
By ldobb - 9/15/2015

Dave, thank you so much! Works like a charm now.