Millisecond Forums

Accepting participant response while GIF is playing

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

By Jhall91 - 9/5/2024

Hi, 
I have a GIF stimuli that is 60 frames played over 1000ms. Ideally, participants would be able to register their response at any point during the 60 frames/1000 ms. That is, prior to the last frame (frame 60) or 1000ms duration. Unfortunately, I can't work out how to allow for this. Can anyone let me know if this is possible, and if so how? 

Thanks for your time, 
Jackie 
By Dave - 9/6/2024

Jhall91 - 9/6/2024
Hi, 
I have a GIF stimuli that is 60 frames played over 1000ms. Ideally, participants would be able to register their response at any point during the 60 frames/1000 ms. That is, prior to the last frame (frame 60) or 1000ms duration. Unfortunately, I can't work out how to allow for this. Can anyone let me know if this is possible, and if so how? 

Thanks for your time, 
Jackie 

Provide the gif and your code, please. Otherwise nobody can tell you what you need to change.

In general, if you want to allow responses while a sound, video, or GIF is playing, you'll want to set /playthrough = false in the respective <video> or <sound> element.


By Jhall91 - 9/10/2024

Dave - 9/6/2024
Jhall91 - 9/6/2024
Hi, 
I have a GIF stimuli that is 60 frames played over 1000ms. Ideally, participants would be able to register their response at any point during the 60 frames/1000 ms. That is, prior to the last frame (frame 60) or 1000ms duration. Unfortunately, I can't work out how to allow for this. Can anyone let me know if this is possible, and if so how? 

Thanks for your time, 
Jackie 

Provide the gif and your code, please. Otherwise nobody can tell you what you need to change.

In general, if you want to allow responses while a sound, video, or GIF is playing, you'll want to set /playthrough = false in the respective <video> or <sound> element.



Hi Dave,
I have provided the basic for my experiment below and relevant GIFs. Apologies for the rudimentary code, I am very new to Inquisit and coding in general. 
I did try the playthrough = false suggestion, but to no avail.
Please let me know if you need anything further.
Again, thanks for your time.
Jackie

<usermanual>
                        PLW 2024 Experiment 1a
</usermanual>
<video movieseven>
/ items = ("-1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (50%,50%)
/ size = (100%, 100%)
</video>

<video movieeleven>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (20%,50%)
/ size = (100%, 100%)
</video>

<video movietwelve>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (80%,50%)
/ size = (100%, 100%)
</video>

<instruct>
/ inputdevice = keyboard
/ fontstyle = ("Arial", 3%, true)
/ txcolor = white
/ screencolor = black
</instruct>

<page instr>
Please indicate your answer with ethier "Z" or "/"
</page>

</item>

<parameters>
/questionfontsize = 5%
</parameters>

<text responsetext>
/numitems =1
/items= ("+")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 40)
</text>

<text verder>
/numitems =1
/items= ("Press space bar to continue.")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 50)
</text>

<text spacebar>
/ items = ("press the spacebar to continue")
/ position = (50%, 80%)
/ txcolor = white
/ txbgcolor = black
/ fontstyle = ("Courier New", 2.08%, false, false, false, false, 5, 0)
</text>


<defaults>
/ fontstyle = ("Arial", 3.5%)
/ screencolor = black
/ txbgcolor = black
/ txcolor = white
/ minimumversion = "5.0.7.0"
/ canvasaspectratio = (4, 3)
</defaults>

<data>
/ separatefiles = true
/ columns = (build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum,
stimulusitem, response, correct, latency)
</data>

***********************
summary data file
***********************
<summarydata>
/columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, )
/ separatefiles = true
</summarydata>


**************************************************************************************************************
**************************************************************************************************************
    VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/completed:                                0 = script was not completed; 1 = script was completed (all conditions run)

set:                                    helper variable, is set to one after the critical block
notice_critical:                        1 = if notice something during critical trial; 0 = otherwise
response_critical:                        contains the detailed description of the stimulus noticed during the critical trial

<values>
/completed = 0
/set = 0
/notice_critical = 0
/response_critical = ""
</values>
<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"Tap";} else {"Click";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"tap";} else {"click";}
</expressions>


**************************************************************************************************************
**************************************************************************************************************
    TRIALS     
**************************************************************************************************************
**************************************************************************************************************
< trial movieten>
/trialcode = "mo10"
/stimulustimes = [ 1= movieseven, Movieeleven, Movietwelve; 500 = clearscreen]
/trialduration = 5000
/ validresponse = ("Z", "/")
/ correctresponse = ("Z")
</trial>

< trial response>
/trialcode = "response"
/stimulustimes = [ 1 = responsetext]
/ validresponse = ("Z", "/")
/ correctresponse = ("K")
/ responseinterrupt = trial
</trial>

**************************************************************************************************************
**************************************************************************************************************
    BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block one>
/ screencolor = black
/ trials = [1 = movieten, response]
</block>


**************************************************************************************************************
**************************************************************************************************************
    EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************

<expt>
/ preinstructions = (instr)
/ blocks = [1 = one;
]
/onexptend = [values.completed = 1]
</expt>

**************************************************************************************************************
                                                End of File
**************************************************************************************************************

By Dave - 9/10/2024

Jhall91 - 9/10/2024
Dave - 9/6/2024
Jhall91 - 9/6/2024
Hi, 
I have a GIF stimuli that is 60 frames played over 1000ms. Ideally, participants would be able to register their response at any point during the 60 frames/1000 ms. That is, prior to the last frame (frame 60) or 1000ms duration. Unfortunately, I can't work out how to allow for this. Can anyone let me know if this is possible, and if so how? 

Thanks for your time, 
Jackie 

Provide the gif and your code, please. Otherwise nobody can tell you what you need to change.

In general, if you want to allow responses while a sound, video, or GIF is playing, you'll want to set /playthrough = false in the respective <video> or <sound> element.



Hi Dave,
I have provided the basic for my experiment below and relevant GIFs. Apologies for the rudimentary code, I am very new to Inquisit and coding in general. 
I did try the playthrough = false suggestion, but to no avail.
Please let me know if you need anything further.
Again, thanks for your time.
Jackie

<usermanual>
                        PLW 2024 Experiment 1a
</usermanual>
<video movieseven>
/ items = ("-1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (50%,50%)
/ size = (100%, 100%)
</video>

<video movieeleven>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (20%,50%)
/ size = (100%, 100%)
</video>

<video movietwelve>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (80%,50%)
/ size = (100%, 100%)
</video>

<instruct>
/ inputdevice = keyboard
/ fontstyle = ("Arial", 3%, true)
/ txcolor = white
/ screencolor = black
</instruct>

<page instr>
Please indicate your answer with ethier "Z" or "/"
</page>

</item>

<parameters>
/questionfontsize = 5%
</parameters>

<text responsetext>
/numitems =1
/items= ("+")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 40)
</text>

<text verder>
/numitems =1
/items= ("Press space bar to continue.")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 50)
</text>

<text spacebar>
/ items = ("press the spacebar to continue")
/ position = (50%, 80%)
/ txcolor = white
/ txbgcolor = black
/ fontstyle = ("Courier New", 2.08%, false, false, false, false, 5, 0)
</text>


<defaults>
/ fontstyle = ("Arial", 3.5%)
/ screencolor = black
/ txbgcolor = black
/ txcolor = white
/ minimumversion = "5.0.7.0"
/ canvasaspectratio = (4, 3)
</defaults>

<data>
/ separatefiles = true
/ columns = (build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum,
stimulusitem, response, correct, latency)
</data>

***********************
summary data file
***********************
<summarydata>
/columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, )
/ separatefiles = true
</summarydata>


**************************************************************************************************************
**************************************************************************************************************
    VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/completed:                                0 = script was not completed; 1 = script was completed (all conditions run)

set:                                    helper variable, is set to one after the critical block
notice_critical:                        1 = if notice something during critical trial; 0 = otherwise
response_critical:                        contains the detailed description of the stimulus noticed during the critical trial

<values>
/completed = 0
/set = 0
/notice_critical = 0
/response_critical = ""
</values>
<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"Tap";} else {"Click";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"tap";} else {"click";}
</expressions>


**************************************************************************************************************
**************************************************************************************************************
    TRIALS     
**************************************************************************************************************
**************************************************************************************************************
< trial movieten>
/trialcode = "mo10"
/stimulustimes = [ 1= movieseven, Movieeleven, Movietwelve; 500 = clearscreen]
/trialduration = 5000
/ validresponse = ("Z", "/")
/ correctresponse = ("Z")
</trial>

< trial response>
/trialcode = "response"
/stimulustimes = [ 1 = responsetext]
/ validresponse = ("Z", "/")
/ correctresponse = ("K")
/ responseinterrupt = trial
</trial>

**************************************************************************************************************
**************************************************************************************************************
    BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block one>
/ screencolor = black
/ trials = [1 = movieten, response]
</block>


**************************************************************************************************************
**************************************************************************************************************
    EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************

<expt>
/ preinstructions = (instr)
/ blocks = [1 = one;
]
/onexptend = [values.completed = 1]
</expt>

**************************************************************************************************************
                                                End of File
**************************************************************************************************************


By default a <trial> will begin accepting responses only once its entire stimulus presentation sequence has been completed. I.e. with

<trial movieten>
/trialcode = "mo10"
/stimulustimes = [ 1= movieseven, Movieeleven, Movietwelve; 500 = clearscreen]
/trialduration = 5000
/ validresponse = ("Z", "/")
/ correctresponse = ("Z")
</trial>


responses are possible from 500ms into the trial, concurrent with the display of the clearscreen stimulus at 500. If you want to allow for responses while the stimulus presentation sequence is ongoing, use /beginresponsetime to specify the time from which you want to allow responses. Be sure to also set the desired /responseinterrupt.

https://www.millisecond.com/support/docs/v5/html/language/attributes/beginresponsetime.htm
https://www.millisecond.com/support/docs/v5/html/language/attributes/responseinterrupt.htm

By Jhall91 - 9/10/2024

Dave - 9/10/2024
Jhall91 - 9/10/2024
Dave - 9/6/2024
Jhall91 - 9/6/2024
Hi, 
I have a GIF stimuli that is 60 frames played over 1000ms. Ideally, participants would be able to register their response at any point during the 60 frames/1000 ms. That is, prior to the last frame (frame 60) or 1000ms duration. Unfortunately, I can't work out how to allow for this. Can anyone let me know if this is possible, and if so how? 

Thanks for your time, 
Jackie 

Provide the gif and your code, please. Otherwise nobody can tell you what you need to change.

In general, if you want to allow responses while a sound, video, or GIF is playing, you'll want to set /playthrough = false in the respective <video> or <sound> element.



Hi Dave,
I have provided the basic for my experiment below and relevant GIFs. Apologies for the rudimentary code, I am very new to Inquisit and coding in general. 
I did try the playthrough = false suggestion, but to no avail.
Please let me know if you need anything further.
Again, thanks for your time.
Jackie

<usermanual>
                        PLW 2024 Experiment 1a
</usermanual>
<video movieseven>
/ items = ("-1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (50%,50%)
/ size = (100%, 100%)
</video>

<video movieeleven>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (20%,50%)
/ size = (100%, 100%)
</video>

<video movietwelve>
/ items = ("+1.5SD.gif")
/ playthrough = false
/ erase = true (0,0,0)
/ position = (80%,50%)
/ size = (100%, 100%)
</video>

<instruct>
/ inputdevice = keyboard
/ fontstyle = ("Arial", 3%, true)
/ txcolor = white
/ screencolor = black
</instruct>

<page instr>
Please indicate your answer with ethier "Z" or "/"
</page>

</item>

<parameters>
/questionfontsize = 5%
</parameters>

<text responsetext>
/numitems =1
/items= ("+")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 40)
</text>

<text verder>
/numitems =1
/items= ("Press space bar to continue.")
/ txcolor = white
/ txbgcolor = black
/ position = (50, 50)
</text>

<text spacebar>
/ items = ("press the spacebar to continue")
/ position = (50%, 80%)
/ txcolor = white
/ txbgcolor = black
/ fontstyle = ("Courier New", 2.08%, false, false, false, false, 5, 0)
</text>


<defaults>
/ fontstyle = ("Arial", 3.5%)
/ screencolor = black
/ txbgcolor = black
/ txcolor = white
/ minimumversion = "5.0.7.0"
/ canvasaspectratio = (4, 3)
</defaults>

<data>
/ separatefiles = true
/ columns = (build, computer.platform, date, time, subject, group, blockcode, blocknum, trialcode, trialnum,
stimulusitem, response, correct, latency)
</data>

***********************
summary data file
***********************
<summarydata>
/columns = (script.startdate, script.starttime, script.subjectid, script.groupid, script.elapsedtime, computer.platform, values.completed, )
/ separatefiles = true
</summarydata>


**************************************************************************************************************
**************************************************************************************************************
    VALUES: automatically updated
**************************************************************************************************************
**************************************************************************************************************

/completed:                                0 = script was not completed; 1 = script was completed (all conditions run)

set:                                    helper variable, is set to one after the critical block
notice_critical:                        1 = if notice something during critical trial; 0 = otherwise
response_critical:                        contains the detailed description of the stimulus noticed during the critical trial

<values>
/completed = 0
/set = 0
/notice_critical = 0
/response_critical = ""
</values>
<expressions>
/buttoninstruct1 = if (computer.touch && !computer.haskeyboard) {"Tap";} else {"Click";}
/buttoninstruct2 = if (computer.touch && !computer.haskeyboard) {"tap";} else {"click";}
</expressions>


**************************************************************************************************************
**************************************************************************************************************
    TRIALS     
**************************************************************************************************************
**************************************************************************************************************
< trial movieten>
/trialcode = "mo10"
/stimulustimes = [ 1= movieseven, Movieeleven, Movietwelve; 500 = clearscreen]
/trialduration = 5000
/ validresponse = ("Z", "/")
/ correctresponse = ("Z")
</trial>

< trial response>
/trialcode = "response"
/stimulustimes = [ 1 = responsetext]
/ validresponse = ("Z", "/")
/ correctresponse = ("K")
/ responseinterrupt = trial
</trial>

**************************************************************************************************************
**************************************************************************************************************
    BLOCKS
**************************************************************************************************************
**************************************************************************************************************

<block one>
/ screencolor = black
/ trials = [1 = movieten, response]
</block>


**************************************************************************************************************
**************************************************************************************************************
    EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************

<expt>
/ preinstructions = (instr)
/ blocks = [1 = one;
]
/onexptend = [values.completed = 1]
</expt>

**************************************************************************************************************
                                                End of File
**************************************************************************************************************


By default a <trial> will begin accepting responses only once its entire stimulus presentation sequence has been completed. I.e. with

<trial movieten>
/trialcode = "mo10"
/stimulustimes = [ 1= movieseven, Movieeleven, Movietwelve; 500 = clearscreen]
/trialduration = 5000
/ validresponse = ("Z", "/")
/ correctresponse = ("Z")
</trial>


responses are possible from 500ms into the trial, concurrent with the display of the clearscreen stimulus at 500. If you want to allow for responses while the stimulus presentation sequence is ongoing, use /beginresponsetime to specify the time from which you want to allow responses. Be sure to also set the desired /responseinterrupt.

https://www.millisecond.com/support/docs/v5/html/language/attributes/beginresponsetime.htm
https://www.millisecond.com/support/docs/v5/html/language/attributes/responseinterrupt.htm


Perfect, thank you!