Millisecond Forums

videos with varying duration: presentation and erasing

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

By rouge - 7/22/2014

Dear readers,


at the moment I am writing a program with following features:
1. the subject is presented a string of letters/numbers, which shall be remembered
2. a video is presented that should be evaluated
3. after the video presentation, the string of letters/numbers shall be written down

What I am struggling about is following:
after the video stimuli are played, I want them to to be erased. However, the videos´ durations vary.
Meaning, I can´t just program a timeout.
Additionaly, whileeach video scene is erased after finishing, a question about the video scene shall be shown (I do not want to present the question while the video scene is still presented).
How do I manage to erase the video frame and to present my question simultaneously?

Thank you very much in advance for your help! And best greetings!

This is what I have so far:

<item numberstring>
/1="V98PYXGX"
/2="4XU01AT8"
/3="AVLWVW7W"
/4="VIT4HXW7"

</item>

<item Videos_kein_Tor>
/1="Video_2.mp4"
/2="Video_3.mp4"
</item>

<item Videos_Tor>
/1="Video_55.mp4"
/2="Video_57.mp4"
</item>

<text fixation>
/ items = ("+")
</text>

<text mask>
/ items = ("                   ")
</text>

<text numberstring>
/ items = ("V98PYXGX", "4XU01AT8", "AVLWVW7W", "VIT4HXW7")
</text>

<text Frage_Tor_kein_Tor>
/ items = ("Tor oder kein Tor?")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ valign = bottom
</text>

<text Entscheidung_Manipulation>
/ items = ("Entscheiden Sie sich jetzt!")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ valign = center
</text>

<text Zeichen_Tor>
/ items = ("Tor^^(Taste A)")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ position = (25, 90)
</text>

<text Zeichen_kein_Tor>
/ items = ("Tor^^(Taste L)")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ position = (75, 90)
</text>

<text recalltext>
/ items = ("Bitte schreiben Sie jetzt die zu erinnernde Serie aus Buchstaben und Zahlen in korrekter Reihenfolge auf!")
/ valign = top
</text>

<video Videos_kein_Tor>
/ items = Videos_kein_Tor
/ size = (30%, 30%)
/ playthrough = true
/ valign = center
</video>

<video Videos_Tor>
/ items = Videos_Tor
/ size = (30%, 30%)
/ playthrough = true
/ valign = center
</video>

<trial displaynumberstring>
/ stimulustimes =  [0=fixation; 1000=numberstring]
/ validresponse = (noresponse)
/ trialduration = 5000
</trial>

<trial playvideo_kein_Tor>
/ stimulustimes = [0=fixation; 1000 = Videos_kein_Tor; 1000=Entscheidung_Manipulation; 1000=Zeichen_Tor; 1000=Zeichen_kein_Tor]
/ validresponse = (a, l)
/ correctresponse = (a)
</trial>

<trial playvideo_Tor>
/ stimulustimes = [0=fixation; 1000 = Videos_Tor; 1000=Entscheidung_Manipulation; 1000=Zeichen_Tor; 1000=Zeichen_kein_Tor]]
/ validresponse = (a, l)
/ correctresponse = (l)
</trial>

<trial Entscheidung>
/ stimulustimes = [0=Entscheidung_Manipulation; 0=Zeichen_Tor; 0=Zeichen_kein_Tor]
/ validresponse = (a, l)
</trial>

<openended recallnumberstring>
/ stimulustimes = [0=recalltext]
/ validresponse = (anyresponse)
/ iscorrectresponse = [openended.recallnumberstring.response == text.numberstring.currentitem]
/ position = (50%, 70%)
</openended>

<block myblock>
/ trials = [1,4,7=noreplace(displaynumberstring); 2,5,8=noreplace(playvideo_kein_Tor, playvideo_Tor); 3,6,9=recallnumberstring]
/ preinstructions = (Instruktion_1, Instruktion_2, Instruktion_3)
/ postinstructions = (thank_you)
</block>

<page Instruktion_1>
^^txxx
</page>

<page Instruktion_2>
^^xxx
</page>

<page Instruktion_3>
^^xxx
</page>

<page thank_you>
^^xxx
</page>






By Dave - 7/22/2014

You'll have to separate the video-display and follow-up question into separate <trial>s. In a nutshell you do

<video myvideo>
...
/ playthrough = true
</video>

<trial showmyvideo>
/ stimulusframes = [1=myvideo]
/ timeout = 10
/ validresponse = (noresponse)
/ branch = [trial.showquestionaboutmyvideo]
...
</trial>

<trial showquestionaboutmyvideo>
...
</trial>

etc.

By rouge - 7/22/2014

Dear Dave, thank you very much for your fast answer!
By Dave - 7/22/2014

Just pointing out the key thing here: Setting /playthrough = true for your <video> elements will force the <trial> to play them to the end *despite* the shorter /timeout. This will accommodate for the videos' varying durations automatically.
By rouge - 7/24/2014

Dear Dave, in regard to the experiment from above I have a question about the isntruction feature. In my experiment there are 3 instruction pages at the beginning. I programmed the button for "next page" in German. On the third instruction page my adjustments jump back to default with a "next page" button in English. I do not figure out why my program switches to default at that point of time.
It would be great, if you could help me with that! Thanx a lot in advance!


<item numberstring>
/1="V98PYXGX"
/2="4XU01AT8"
/3="AVLWVW7W"
/4="VIT4HXW7"
</item>

<item Videos_kein_Tor>
/1="Video_2.mp4"
/2="Video_3.mp4"
</item>

<item Videos_Tor>
/1="Video_55.mp4"
/2="Video_57.mp4"
</item>

<text fixation>
/ items = ("+")
</text>

<text mask>
/ items = ("                   ")
</text>

<text numberstring>
/ items = ("V98PYXGX", "4XU01AT8", "AVLWVW7W")
</text>

<text Frage_Tor_kein_Tor>
/ items = ("Tor oder kein Tor?")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ valign = bottom
</text>

<text Entscheidung_Manipulation>
/ items = ("Entscheiden Sie sich jetzt!")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ valign = center
</text>

<text Zeichen_Tor>
/ items = ("Tor, Taste A")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ position = (25, 90)
</text>

<text Zeichen_kein_Tor>
/ items = ("Tor, Taste L")
/ size = (450,200)
/ txcolor = (50, 50, 255)
/ position = (75, 90)
</text>

<text recalltext>
/ items = ("Bitte schreiben Sie jetzt die zu erinnernde Serie aus Buchstaben und Zahlen in korrekter Reihenfolge auf!")
/ valign = top
</text>

<video Videos_kein_Tor>
/ items = Videos_kein_Tor
/ size = (30%, 30%)
/ playthrough = true
/ valign = center
</video>

<video Videos_Tor>
/ items = Videos_Tor
/ size = (30%, 30%)
/ playthrough = true
/ valign = center
</video>

<trial displaynumberstring>
/ stimulustimes =  [0=fixation; 1000=numberstring]
/ validresponse = (noresponse)
/ trialduration = 5000
</trial>

<trial playvideo_kein_Tor>
/ stimulustimes = [0=fixation; 1000 = Videos_kein_Tor]
/ timeout = 10
/ validresponse = (noresponse)
/ branch = [trial.showquestionaboutmyvideo]
</trial>

<trial playvideo_Tor>
/ stimulustimes = [0=fixation; 1000 = Videos_Tor]
/ timeout = 10
/ validresponse = (noresponse)
/ branch = [trial.showquestionaboutmyvideo]
</trial>

<trial showquestionaboutmyvideo>
/ stimulustimes = [0=Entscheidung_Manipulation; 0=Zeichen_Tor; 0=Zeichen_kein_Tor]
/ validresponse = ("a", "l")
/ correctresponse = ("a", "l")
</trial>

<openended recallnumberstring>
/ stimulustimes = [0=recalltext]
/ validresponse = (anyresponse)
/ iscorrectresponse = [openended.recallnumberstring.response == text.numberstring.currentitem]
/ position = (50%, 70%)
</openended>

<block myblock>
/ trials = [1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, 127, 130, 133, 136, 139, 142=noreplace(displaynumberstring);
2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47, 50, 53, 56, 59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143=noreplace(playvideo_kein_Tor, playvideo_Tor);
3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144=recallnumberstring]
/ preinstructions = (Instruktion_1, Instruktion_2, Instruktion_3)
/ postinstructions = (thank_you)
</block>

<page Instruktion_1>
^^asgkaöergl
</page>

<page Instruktion_2>
^^asgkaöergl
</page>

<page Instruktion_3>
^^asgkaöergl
</page>

<page thank_you>
^^asgkaöergl
</page>

<instruct>
/ txcolor = (0,0,0)
/ screencolor = (255,255,255)
/ nextkey = (" "€œ)
/ prevkey = (noresponse)
/ nextlabel = "weiter mit Leertaste"
</instruct>
By Dave - 7/24/2014

The label for the 'next' button for the *last* page in a set of instruction pages must be set via the <instruct> element's /finishlabel attribute.
By rouge - 7/27/2014

Thank you very much Dave! That helped :-) .