Trying to branch to survey between randomized blocks?


Author
Message
am2922
am2922
Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)
Group: Forum Members
Posts: 9, Visits: 44
Hi!

I'm creating an Inquisit program to run an experiment in which we are showing participants two blocks of video stimuli (positive and negative). There are 10 videos within each block, and both the videos within the blocks and the blocks themselves are randomized between participants. Participants must answer a question (let's refer to it as "Survey A") after each video, but we would also like for participants to answer a  different survey ("Survey B") after the block has been completed. I easily managed to branch to Survey A after each video, but I can't figure out a way to branch to "survey B" only after all 10 videos have been shown. I have tried using if and trial counts, but I keep getting error messages no matter what I try. Does anyone have any ideas for how to achieve this? As a side note, I am a psychology major, and have no experience with coding like this, so I apologize if it is an easy solution!!

This is what it currently looks like without the inclusion of survey B (and excluding instructions and values, etc.):

<trial Positive>
/ stimulusframes = [1 = Postive]
/ ontrialend = [values.stimulusitem = video.Postive.currentitem]
/ ontrialend = [values.encoder = video.Postive.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_positive]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_positive>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_positive)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_positive.response < 4) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ showbackbutton = false
/ showpagenumbers = false
/ recorddata = true
</surveypage>

<trial Negative>
/stimulusframes = [1 = Negative]
/ ontrialend = [values.stimulusitem = video.Negative.currentitem]
/ ontrialend = [values.encoder = video.Negative.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_negative]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_negative>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_negative)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_negative.response > 3) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ recorddata = true
</surveypage>

<block Positive>
/ trials = [1-10 = noreplacenorepeat(Positive)]
</block>

<block Negative>
/ trials = [1-10 = noreplacenorepeat(Negative)]

<expt >
/ preinstructions = (Intro)
/ postinstructions = (End)
/ blocks = [1-2 = noreplacenorepeat(Negative, Positive)]
/ onexptend = [values.completed = 1]
</expt>


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
am2922 - Saturday, February 17, 2018
Hi!

I'm creating an Inquisit program to run an experiment in which we are showing participants two blocks of video stimuli (positive and negative). There are 10 videos within each block, and both the videos within the blocks and the blocks themselves are randomized between participants. Participants must answer a question (let's refer to it as "Survey A") after each video, but we would also like for participants to answer a  different survey ("Survey B") after the block has been completed. I easily managed to branch to Survey A after each video, but I can't figure out a way to branch to "survey B" only after all 10 videos have been shown. I have tried using if and trial counts, but I keep getting error messages no matter what I try. Does anyone have any ideas for how to achieve this? As a side note, I am a psychology major, and have no experience with coding like this, so I apologize if it is an easy solution!!

This is what it currently looks like without the inclusion of survey B (and excluding instructions and values, etc.):

<trial Positive>
/ stimulusframes = [1 = Postive]
/ ontrialend = [values.stimulusitem = video.Postive.currentitem]
/ ontrialend = [values.encoder = video.Postive.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_positive]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_positive>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_positive)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_positive.response < 4) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ showbackbutton = false
/ showpagenumbers = false
/ recorddata = true
</surveypage>

<trial Negative>
/stimulusframes = [1 = Negative]
/ ontrialend = [values.stimulusitem = video.Negative.currentitem]
/ ontrialend = [values.encoder = video.Negative.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_negative]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_negative>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_negative)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_negative.response > 3) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ recorddata = true
</surveypage>

<block Positive>
/ trials = [1-10 = noreplacenorepeat(Positive)]
</block>

<block Negative>
/ trials = [1-10 = noreplacenorepeat(Negative)]

<expt >
/ preinstructions = (Intro)
/ postinstructions = (End)
/ blocks = [1-2 = noreplacenorepeat(Negative, Positive)]
/ onexptend = [values.completed = 1]
</expt>


Add your <survey B>  or <block B> to the script, and then /branch to that <survey> or <block> from <block positive> and <block negative>:

<block B>
/ trials = [1=page_b1]
...
</block>

<surveypage page_b1>
/ caption = "This is survey B"
...
</surveypage>


<block Positive>
/ trials = [1-10 = noreplacenorepeat(Positive)]
/ branch = [block.b]
</block>

<block Negative>
/ trials = [1-10 = noreplacenorepeat(Negative)]
/ branch = [block.b]
</block>
am2922
am2922
Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)Partner Member (966 reputation)
Group: Forum Members
Posts: 9, Visits: 44
Dave - Monday, February 19, 2018
am2922 - Saturday, February 17, 2018
Hi!

I'm creating an Inquisit program to run an experiment in which we are showing participants two blocks of video stimuli (positive and negative). There are 10 videos within each block, and both the videos within the blocks and the blocks themselves are randomized between participants. Participants must answer a question (let's refer to it as "Survey A") after each video, but we would also like for participants to answer a  different survey ("Survey B") after the block has been completed. I easily managed to branch to Survey A after each video, but I can't figure out a way to branch to "survey B" only after all 10 videos have been shown. I have tried using if and trial counts, but I keep getting error messages no matter what I try. Does anyone have any ideas for how to achieve this? As a side note, I am a psychology major, and have no experience with coding like this, so I apologize if it is an easy solution!!

This is what it currently looks like without the inclusion of survey B (and excluding instructions and values, etc.):

<trial Positive>
/ stimulusframes = [1 = Postive]
/ ontrialend = [values.stimulusitem = video.Postive.currentitem]
/ ontrialend = [values.encoder = video.Postive.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_positive]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_positive>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_positive)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_positive.response < 4) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ showbackbutton = false
/ showpagenumbers = false
/ recorddata = true
</surveypage>

<trial Negative>
/stimulusframes = [1 = Negative]
/ ontrialend = [values.stimulusitem = video.Negative.currentitem]
/ ontrialend = [values.encoder = video.Negative.currentitemnumber]
/ timeout = values.stimulusduration
/ branch = [surveypage.emotion_negative]
/ recorddata = true
/ posttrialpause = 1500
</trial>

<surveypage emotion_negative>
/ caption = "<%values.emotion%>"
/ questions = [1=sequence(emotion_negative)]
/ itemspacing = 0
/ nextbuttonposition = (90%, 90%)
/ showbackbutton = false
/ ontrialend = [ if (radiobuttons.emotion_negative.response > 3) values.emotion_accuracy = 1 else values.emotion_accuracy = 0]
/ recorddata = true
</surveypage>

<block Positive>
/ trials = [1-10 = noreplacenorepeat(Positive)]
</block>

<block Negative>
/ trials = [1-10 = noreplacenorepeat(Negative)]

<expt >
/ preinstructions = (Intro)
/ postinstructions = (End)
/ blocks = [1-2 = noreplacenorepeat(Negative, Positive)]
/ onexptend = [values.completed = 1]
</expt>


Add your <survey B>  or <block B> to the script, and then /branch to that <survey> or <block> from <block positive> and <block negative>:

<block B>
/ trials = [1=page_b1]
...
</block>

<surveypage page_b1>
/ caption = "This is survey B"
...
</surveypage>


<block Positive>
/ trials = [1-10 = noreplacenorepeat(Positive)]
/ branch = [block.b]
</block>

<block Negative>
/ trials = [1-10 = noreplacenorepeat(Negative)]
/ branch = [block.b]
</block>

This worked perfectly. Thank you so much!!
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search