Millisecond Forums

Branching to a questionnaire after a certain number of videos played.

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

By Jrp - 1/10/2017

Hello,

So I have been working on using values, in particular the trial count function, to branch after a certain number of videos played. I have gotten the trial count to properly count the videos, but it still is not branching on the 6th video like I would like it to.

Here is an example of how I have it counting:

<trial beta5>
/stimulustimes = [1=beta5_video]
/validresponse = (57)
/branch = [surveypage.B5]
/timeout = 20000
/ ontrialend=[values.trialcount += 1]
</trial>

Here is my values function: 
<values>
/trialcount = 0
</values>

And here is my branch logic:
<block ASIDE>
/trials = [1= list.beta; 2-12=list.alpha_beta]
/branch = [if(values.trialcount == 6) block.MidASIDESUDS]
</block>

Not sure what I am fdoing wrong. As I mentioned before The counting works properly it just is not branching at the proper time.

Thank you,
jrp  
By Dave - 1/10/2017

Jrp - Tuesday, January 10, 2017
Hello,

So I have been working on using values, in particular the trial count function, to branch after a certain number of videos played. I have gotten the trial count to properly count the videos, but it still is not branching on the 6th video like I would like it to.

Here is an example of how I have it counting:

<trial beta5>
/stimulustimes = [1=beta5_video]
/validresponse = (57)
/branch = [surveypage.B5]
/timeout = 20000
/ ontrialend=[values.trialcount += 1]
</trial>

Here is my values function: 
<values>
/trialcount = 0
</values>

And here is my branch logic:
<block ASIDE>
/trials = [1= list.beta; 2-12=list.alpha_beta]
/branch = [if(values.trialcount == 6) block.MidASIDESUDS]
</block>

Not sure what I am fdoing wrong. As I mentioned before The counting works properly it just is not branching at the proper time.

Thank you,
jrp  

A /branch at the <block>-level will execute when the <block> ends, it will not interrupt the <block> when that block still has trials to run (as it does in your case). It seems to me that your /branch logic should actually reside at the <trial>-level, not the <block>-level. In this regard, please note that branches need to remain at the same level, i.e.

- A <trial> can /branch to another <trial>. A <trial> cannot /branch to a <block>.
- A <block> can /branch to another <block>. A <block> cannot /branch to a <trial>.
- A /branch is executed at the *end* of the object it resides in. I.e. a <trial>-level /branch is executed at the end of the <trial> it resides in. A <block>-level /branch is executed at the end of the <block> it resides in.

Hope this clarifies.
By Jrp - 1/10/2017

Dave - Tuesday, January 10, 2017
Jrp - Tuesday, January 10, 2017
Hello,

So I have been working on using values, in particular the trial count function, to branch after a certain number of videos played. I have gotten the trial count to properly count the videos, but it still is not branching on the 6th video like I would like it to.

Here is an example of how I have it counting:

<trial beta5>
/stimulustimes = [1=beta5_video]
/validresponse = (57)
/branch = [surveypage.B5]
/timeout = 20000
/ ontrialend=[values.trialcount += 1]
</trial>

Here is my values function: 
<values>
/trialcount = 0
</values>

And here is my branch logic:
<block ASIDE>
/trials = [1= list.beta; 2-12=list.alpha_beta]
/branch = [if(values.trialcount == 6) block.MidASIDESUDS]
</block>

Not sure what I am fdoing wrong. As I mentioned before The counting works properly it just is not branching at the proper time.

Thank you,
jrp  

A /branch at the <block>-level will execute when the <block> ends, it will not interrupt the <block> when that block still has trials to run (as it does in your case). It seems to me that your /branch logic should actually reside at the <trial>-level, not the <block>-level. In this regard, please note that branches need to remain at the same level, i.e.

- A <trial> can /branch to another <trial>. A <trial> cannot /branch to a <block>.
- A <block> can /branch to another <block>. A <block> cannot /branch to a <trial>.
- A /branch is executed at the *end* of the object it resides in. I.e. a <trial>-level /branch is executed at the end of the <trial> it resides in. A <block>-level /branch is executed at the end of the <block> it resides in.

Hope this clarifies.

Hello Dave, 

Thanks for the reply. I knew the block to block bit but I did not know it only went after the trials which presents me with a problem. The survey I have is in block form because it is 7 random trials with their own survey pages. However the videos are needed to be played randomly and not replaced with this one block in the middle. Is there a way to run a block as a trial or in the middle of another block?

Thank you,

jrp
By Dave - 1/10/2017

Jrp - Tuesday, January 10, 2017
Dave - Tuesday, January 10, 2017
Jrp - Tuesday, January 10, 2017
Hello,

So I have been working on using values, in particular the trial count function, to branch after a certain number of videos played. I have gotten the trial count to properly count the videos, but it still is not branching on the 6th video like I would like it to.

Here is an example of how I have it counting:

<trial beta5>
/stimulustimes = [1=beta5_video]
/validresponse = (57)
/branch = [surveypage.B5]
/timeout = 20000
/ ontrialend=[values.trialcount += 1]
</trial>

Here is my values function: 
<values>
/trialcount = 0
</values>

And here is my branch logic:
<block ASIDE>
/trials = [1= list.beta; 2-12=list.alpha_beta]
/branch = [if(values.trialcount == 6) block.MidASIDESUDS]
</block>

Not sure what I am fdoing wrong. As I mentioned before The counting works properly it just is not branching at the proper time.

Thank you,
jrp  

A /branch at the <block>-level will execute when the <block> ends, it will not interrupt the <block> when that block still has trials to run (as it does in your case). It seems to me that your /branch logic should actually reside at the <trial>-level, not the <block>-level. In this regard, please note that branches need to remain at the same level, i.e.

- A <trial> can /branch to another <trial>. A <trial> cannot /branch to a <block>.
- A <block> can /branch to another <block>. A <block> cannot /branch to a <trial>.
- A /branch is executed at the *end* of the object it resides in. I.e. a <trial>-level /branch is executed at the end of the <trial> it resides in. A <block>-level /branch is executed at the end of the <block> it resides in.

Hope this clarifies.

Hello Dave, 

Thanks for the reply. I knew the block to block bit but I did not know it only went after the trials which presents me with a problem. The survey I have is in block form because it is 7 random trials with their own survey pages. However the videos are needed to be played randomly and not replaced with this one block in the middle. Is there a way to run a block as a trial or in the middle of another block?

Thank you,

jrp

I'm actually wondering whether you need any /branch-ing at all. In other words, why don't you do

<block ASIDE>
/trials = [1= list.beta; 2-6, 14-19=list.alpha_beta; 7-13 = noreplace(...your 7 trials / surveypages from block MidASIDESUDS go here ...)]
</block>

?
By Jrp - 1/11/2017

Dave - Tuesday, January 10, 2017
Jrp - Tuesday, January 10, 2017
Dave - Tuesday, January 10, 2017
Jrp - Tuesday, January 10, 2017
Hello,

So I have been working on using values, in particular the trial count function, to branch after a certain number of videos played. I have gotten the trial count to properly count the videos, but it still is not branching on the 6th video like I would like it to.

Here is an example of how I have it counting:

<trial beta5>
/stimulustimes = [1=beta5_video]
/validresponse = (57)
/branch = [surveypage.B5]
/timeout = 20000
/ ontrialend=[values.trialcount += 1]
</trial>

Here is my values function: 
<values>
/trialcount = 0
</values>

And here is my branch logic:
<block ASIDE>
/trials = [1= list.beta; 2-12=list.alpha_beta]
/branch = [if(values.trialcount == 6) block.MidASIDESUDS]
</block>

Not sure what I am fdoing wrong. As I mentioned before The counting works properly it just is not branching at the proper time.

Thank you,
jrp  

A /branch at the <block>-level will execute when the <block> ends, it will not interrupt the <block> when that block still has trials to run (as it does in your case). It seems to me that your /branch logic should actually reside at the <trial>-level, not the <block>-level. In this regard, please note that branches need to remain at the same level, i.e.

- A <trial> can /branch to another <trial>. A <trial> cannot /branch to a <block>.
- A <block> can /branch to another <block>. A <block> cannot /branch to a <trial>.
- A /branch is executed at the *end* of the object it resides in. I.e. a <trial>-level /branch is executed at the end of the <trial> it resides in. A <block>-level /branch is executed at the end of the <block> it resides in.

Hope this clarifies.

Hello Dave, 

Thanks for the reply. I knew the block to block bit but I did not know it only went after the trials which presents me with a problem. The survey I have is in block form because it is 7 random trials with their own survey pages. However the videos are needed to be played randomly and not replaced with this one block in the middle. Is there a way to run a block as a trial or in the middle of another block?

Thank you,

jrp

I'm actually wondering whether you need any /branch-ing at all. In other words, why don't you do

<block ASIDE>
/trials = [1= list.beta; 2-6, 14-19=list.alpha_beta; 7-13 = noreplace(...your 7 trials / surveypages from block MidASIDESUDS go here ...)]
</block>

?

Hello,

I did not know why I didnt think of that! Thank you so much it worked perfectly!

-jrp