Millisecond Forums

Experiment won't stop

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

By Mirthe - 8/15/2017

Hi, I have a question concerning my experiment. While the experiment runs fine, after completing the last experimental black, the experiment starts again. I can't seem to figure out why this happens.

<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
<expt >
/ onexptbegin = [values.abbruch = 0]


/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
/onexptend = [values.completed = 1]
</expt>

<block Practice_Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap1, Practice_Consistent_1)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen4;
3=Consistent_Ik2;
/ branch = [if (expressions.pct_correct < 80 || expressions.mean_rt > 2000) block.practice_consistent2]
/ branch = [if (expressions.pct_correct > 80 || expressions.mean_rt < 2000) block.consistent1]
</block>

<block Practice_Consistent2>
/ skip = [values.abbruch == 1]
/ onblockbegin=[values.ntrials = 0; values.n_correct = 0; values.sum_latency = 0]
/ preinstructions = (Practice_Consistent_2)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Ik2;
/ branch = [block.practice_inconsistent2]
</block>

<block Practice_inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (Practice_inConsistent)
/ postinstructions = (practicefeedback)
/ trials = [
1=inConsistent_Vrouwen3;
2=inConsistent_Ik4;
/ branch = [block.consistent1]
</block>

<block Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap2, irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik3;
3=Consistent_Ik2;
/ branch = [block.inconsistent1]
</block>

<block inConsistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen1;
/ branch = [block.consistent2]
</block>

<block Consistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik2;
3=Consistent_Ik3;
/ branch = [block.inconsistent2]
</block>

<block inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen1;
2=inConsistent_Vrouwen2;
/ branch = [block.consistent3]
</block>

<block Consistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Vrouwen4;
/ branch = [block.inconsistent3]
</block>

<block inConsistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen4; 
3 = End_task.trial]
</block>


By Dave - 8/16/2017

Mirthe - Wednesday, August 16, 2017
Hi, I have a question concerning my experiment. While the experiment runs fine, after completing the last experimental black, the experiment starts again. I can't seem to figure out why this happens.

<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
<expt >
/ onexptbegin = [values.abbruch = 0]


/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
/onexptend = [values.completed = 1]
</expt>

<block Practice_Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap1, Practice_Consistent_1)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen4;
3=Consistent_Ik2;
/ branch = [if (expressions.pct_correct < 80 || expressions.mean_rt > 2000) block.practice_consistent2]
/ branch = [if (expressions.pct_correct > 80 || expressions.mean_rt < 2000) block.consistent1]
</block>

<block Practice_Consistent2>
/ skip = [values.abbruch == 1]
/ onblockbegin=[values.ntrials = 0; values.n_correct = 0; values.sum_latency = 0]
/ preinstructions = (Practice_Consistent_2)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Ik2;
/ branch = [block.practice_inconsistent2]
</block>

<block Practice_inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (Practice_inConsistent)
/ postinstructions = (practicefeedback)
/ trials = [
1=inConsistent_Vrouwen3;
2=inConsistent_Ik4;
/ branch = [block.consistent1]
</block>

<block Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap2, irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik3;
3=Consistent_Ik2;
/ branch = [block.inconsistent1]
</block>

<block inConsistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen1;
/ branch = [block.consistent2]
</block>

<block Consistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik2;
3=Consistent_Ik3;
/ branch = [block.inconsistent2]
</block>

<block inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen1;
2=inConsistent_Vrouwen2;
/ branch = [block.consistent3]
</block>

<block Consistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Vrouwen4;
/ branch = [block.inconsistent3]
</block>

<block inConsistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen4; 
3 = End_task.trial]
</block>



I assume this is a copy and paste error, but there are two identical <expt> elements in what you posted:

#1
<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
</expt>

#2
<expt >
/ onexptbegin = [values.abbruch = 0]
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
/onexptend = [values.completed = 1]
</expt>

They would both be executed one after another, i.e. you'd actually be running the entire thing twice.


The actual issue, however, is that you are running all your blocks twice.

You invoke the various <block>s from other <block>s via /branch, which takes precedence

<block Consistent1>
...
/ branch = [block.inconsistent1]
</block>

but then you again run them again via the <expt>'s /blocks attribute

<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
</expt>

You'll only want to do _one_ of those things: EITHER invoke a given <block> via /branch from another <block> OR run it via the <expt>'s /blocks attribute.
By Mirthe - 8/16/2017

Dave - Wednesday, August 16, 2017
Mirthe - Wednesday, August 16, 2017
Hi, I have a question concerning my experiment. While the experiment runs fine, after completing the last experimental black, the experiment starts again. I can't seem to figure out why this happens.

<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
<expt >
/ onexptbegin = [values.abbruch = 0]


/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
/onexptend = [values.completed = 1]
</expt>

<block Practice_Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap1, Practice_Consistent_1)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen4;
3=Consistent_Ik2;
/ branch = [if (expressions.pct_correct < 80 || expressions.mean_rt > 2000) block.practice_consistent2]
/ branch = [if (expressions.pct_correct > 80 || expressions.mean_rt < 2000) block.consistent1]
</block>

<block Practice_Consistent2>
/ skip = [values.abbruch == 1]
/ onblockbegin=[values.ntrials = 0; values.n_correct = 0; values.sum_latency = 0]
/ preinstructions = (Practice_Consistent_2)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Ik2;
/ branch = [block.practice_inconsistent2]
</block>

<block Practice_inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (Practice_inConsistent)
/ postinstructions = (practicefeedback)
/ trials = [
1=inConsistent_Vrouwen3;
2=inConsistent_Ik4;
/ branch = [block.consistent1]
</block>

<block Consistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap2, irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik3;
3=Consistent_Ik2;
/ branch = [block.inconsistent1]
</block>

<block inConsistent1>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen1;
/ branch = [block.consistent2]
</block>

<block Consistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Ik2;
3=Consistent_Ik3;
/ branch = [block.inconsistent2]
</block>

<block inConsistent2>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen1;
2=inConsistent_Vrouwen2;
/ branch = [block.consistent3]
</block>

<block Consistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_Consistent)
/ trials = [
1=ready.trial;
2=Consistent_Vrouwen2;
3=Consistent_Vrouwen4;
/ branch = [block.inconsistent3]
</block>

<block inConsistent3>
/ skip = [values.abbruch == 1]
/ preinstructions = (irap_inConsistent)
/ trials = [
1=inConsistent_Vrouwen4;
2=inConsistent_Vrouwen4; 
3 = End_task.trial]
</block>



I assuming this is a copy and paste error, but there are two identical <expt> elements in what you posted:

#1
<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
</expt>

#2
<expt >
/ onexptbegin = [values.abbruch = 0]
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
/onexptend = [values.completed = 1]
</expt>

They would both be executed one after another, i.e. you're actually running the entire thing twice.

The actual issue, however, is that you are running all your blocks twice.

You invoke the various <block>s from other <block>s via /branch, which takes precedence

<block Consistent1>
...
/ branch = [block.inconsistent1]
</block>

but then you again run them again via the <expt>'s /blocks attribute

<expt >
/ blocks = [ 1 = Practice_Consistent1;
    2 = Practice_inConsistent1;
    3 = Consistent1;
    4 = inConsistent1;
    5 = Consistent2;
    6 = inConsistent2;
    7 = Consistent3;
    8 = inConsistent3]
</expt>

You'll only want to do _one_ of those things: EITHER invoke a given <block> via /branch from another <block> OR run it via the <expt>'s /blocks attribute.

Thank you! And It indeed was a copy and past error..