﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 4  » control when to stop a sound stimulus</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Sat, 02 May 2026 13:38:37 GMT</lastBuildDate><ttl>20</ttl><item><title>control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17417.aspx</link><description>Hi, Inquisit community,&lt;br/&gt;Suppose I want to present a sound which lasts 3s, and I want it to stop at any point before the 3s . Which syntax should I use?&lt;br/&gt;Best,&lt;br/&gt;Nakayama</description><pubDate>Tue, 03 Nov 2015 04:01:29 GMT</pubDate><dc:creator>Nakayama Yao</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17594.aspx</link><description>Thank you Dave! this scrip helped a lot!</description><pubDate>Tue, 03 Nov 2015 04:01:29 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17579.aspx</link><description>Store positions etc. in global variables (&amp;lt;values&amp;gt; entries), reference those as needed:&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ s1h = 0&lt;br/&gt;/ s1v = 0&lt;br/&gt;/ s1onset = 0&lt;br/&gt;/ s1duration = 0&lt;br/&gt;/ s2h = 0&lt;br/&gt;/ s2v = 0&lt;br/&gt;/ s2onset = 0&lt;br/&gt;/ s2duration = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list onsets&amp;gt;&lt;br/&gt;/ items = (2000,2500,3000,3500,4000,4500)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list duration&amp;gt;&lt;br/&gt;/ items = (100,200,300,400,500,600)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list h&amp;gt;&lt;br/&gt;/ items = (20%, 40%, 60%, 80%)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list v&amp;gt;&lt;br/&gt;/ items = (20%, 30%, 40%, 50%, 60%, 70%, 80%)&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block someblock&amp;gt;&lt;br/&gt;/ trials = [1-10=sometrial]&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial sometrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [values.s1h=list.h.nextvalue; values.s1v=list.v.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.s1onset=list.onsets.nextvalue; values.s1duration=list.duration.nextvalue;&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.s2h=list.h.nextvalue; values.s2v=list.v.nextvalue; &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.s2onset=list.onsets.nextvalue; values.s2duration=list.duration.nextvalue; ]&lt;br/&gt;/ ontrialbegin = [trial.sometrial.insertstimulustime(shape.s1, values.s1onset); &lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; trial.sometrial.insertstimulustime(shape.e1, values.s1onset+values.s1duration);&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; trial.sometrial.insertstimulustime(shape.s2, values.s2onset);&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; trial.sometrial.insertstimulustime(shape.e2, values.s2onset+values.s2duration); ]&lt;br/&gt;&lt;br/&gt;/ ontrialend = [trial.sometrial.resetstimulusframes(); list.h.reset(); list.v.reset(); list.duration.reset(); list.onsets.reset(); ]&lt;br/&gt;&lt;br/&gt;/ stimulusframes = [1=info]&lt;br/&gt;/ validresponse = (57)&lt;br/&gt;&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape s1&amp;gt;&lt;br/&gt;/ shape = rectangle&lt;br/&gt;/ color = red&lt;br/&gt;/ size = (100px, 100px)&lt;br/&gt;/ hposition = values.s1h&lt;br/&gt;/ vposition = values.s1v&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape e1&amp;gt;&lt;br/&gt;/ shape = rectangle&lt;br/&gt;/ color = white&lt;br/&gt;/ size = (100px, 100px)&lt;br/&gt;/ hposition = values.s1h&lt;br/&gt;/ vposition = values.s1v&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape s2&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = green&lt;br/&gt;/ size = (100px, 100px)&lt;br/&gt;/ hposition = values.s2h&lt;br/&gt;/ vposition = values.s2v&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape e2&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = white&lt;br/&gt;/ size = (100px, 100px)&lt;br/&gt;/ hposition = values.s2h&lt;br/&gt;/ vposition = values.s2v&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text info&amp;gt;&lt;br/&gt;/ items = ("S1: Onset = &amp;lt;%values.s1onset%&amp;gt; | Duration = &amp;lt;%values.s1duration%&amp;gt; | X = &amp;lt;%values.s1h%&amp;gt; | Y = &amp;lt;%values.s1v%&amp;gt;&lt;br/&gt;~nS2: Onset = &amp;lt;%values.s2onset%&amp;gt; | Duration = &amp;lt;%values.s2duration%&amp;gt; | X = &amp;lt;%values.s2h%&amp;gt; | Y = &amp;lt;%values.s2v%&amp;gt;")&lt;br/&gt;/ position = (50%, 5%)&lt;br/&gt;/ erase = false&lt;br/&gt;/ size = (90%, 5%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Mon, 02 Nov 2015 07:09:14 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17576.aspx</link><description>Thank you for your reply. It works when the position of stimulus was set fixed. However, when the position was set according to a list:&lt;br /&gt;&lt;shape 1&gt;&lt;br /&gt;...&lt;br /&gt;/hposition=list.hpos1.nextvalue&lt;br /&gt;/vposition=list.vpos1.nextvalue&lt;br /&gt;&lt;br /&gt;How should I set the position of &lt;br /&gt;&lt;shape erase&gt; if I want to erase shape 1?&lt;br /&gt;It didn't erase shape1 if I input:&lt;br /&gt;&lt;shape erase&gt;&lt;br /&gt;/hposition=shape.1.hposition&lt;br /&gt;/vposition=shape.1.vposition&lt;br /&gt;And input insertstimulus(shape.erase,list.eraseduration.nextvalue) under the same ontrislbegin with shape1&lt;br /&gt;&lt;br /&gt;</description><pubDate>Mon, 02 Nov 2015 06:35:01 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17572.aspx</link><description>Yes, and it works exactly like what you've already done. You've used the insertstimulustime() function to display your target(s) at a random onsets. You only need to do the exact same thing for the stimuli that erase the respective target(s).&lt;br/&gt;</description><pubDate>Mon, 02 Nov 2015 05:24:45 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17570.aspx</link><description>Hi, Dave.&amp;nbsp;&lt;br/&gt;I am wondering whether it is possible to track the position of the target, and erase it at random stimulustime, given that its position and onset varies randomly? &amp;nbsp;&lt;br/&gt;So that they can appear and be erased randomly.&lt;br/&gt;I guess should I use ontrialbegin? Thank you.&lt;br/&gt;&lt;br/&gt;&amp;lt;list erase&amp;gt;&lt;br/&gt;/ items = (2500,2600,2700,2800,2900)&lt;br/&gt;/ selectionmode=random&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list targetduration&amp;gt;&lt;br/&gt;/ items = (2100,2200,2300,2400,2500)&lt;br/&gt;/ selectionmode=random&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&amp;lt;trial timepresent1&amp;gt;&lt;br/&gt;...&lt;br/&gt;/ ontrialend = [trial.timepresent1.resetstimulusframes(); list.targetduration.reset(); ]&lt;br/&gt;&amp;lt;/trial&amp;gt; &amp;nbsp;&lt;br/&gt;&lt;br/&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br/&gt;</description><pubDate>Mon, 02 Nov 2015 03:55:39 GMT</pubDate><dc:creator>Nakayama Yao</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17477.aspx</link><description>As always, thank you, Dave.&lt;br/&gt;Best,&lt;br/&gt;nakayama</description><pubDate>Mon, 26 Oct 2015 06:58:12 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17475.aspx</link><description>If you need to sample more than one value from a &amp;lt;list&amp;gt; in a given &amp;lt;trial&amp;gt;, you need to set its /selectionrate to always. The default is trial. Details can be found in the documentation for the /selectionrate attribute.&lt;br/&gt;&lt;br/&gt;&amp;lt;list targetduration&amp;gt;&lt;br/&gt;/ items = (2100,2200,2300,2400,2500)&lt;br/&gt;/ selectionmode=random&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;You'll also have to think about resetting the list before it runs out of items (you are sampling without replacement). You'll want to do &lt;br/&gt;&lt;br/&gt;&amp;lt;trial timepresent1&amp;gt;&lt;br/&gt;...&lt;br/&gt;/ ontrialend = [trial.timepresent1.resetstimulusframes(); list.targetduration.reset(); ]&lt;br/&gt;&amp;lt;/trial&amp;gt;			    							    </description><pubDate>Mon, 26 Oct 2015 06:43:11 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17474.aspx</link><description>Hi, Dave.&lt;br/&gt;Sorry for asking again.&lt;br/&gt;Following your advice, I made this:&lt;br/&gt;However, onset of items appears synchronous, is there a way to varying them using the values from list?&lt;br/&gt;&lt;br/&gt;&amp;lt;list targetduration&amp;gt;&lt;br/&gt;/ items = (2100,2200,2300,2400,2500)&lt;br/&gt;/ selectionmode=random&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial timepresent1&amp;gt;&lt;br/&gt;/ ontrialbegin = [trial.timepresent1.setstimulustime(shape.dot2,list.targetduration.nextvalue);&lt;br/&gt;trial.timepresent1.insertstimulustime(shape.dot3,list.targetduration.nextvalue);&lt;br/&gt;trial.timepresent1.insertstimulustime(shape.dot4,list.targetduration.nextvalue)]&lt;br/&gt;/ stimulustimes = [0=fixation;2000=erase]&lt;br/&gt;/ timeout = 2900&lt;br/&gt;/ ontrialend = [trial.timepresent1.resetstimulusframes()]&lt;br/&gt;&amp;lt;/trial&amp;gt;</description><pubDate>Mon, 26 Oct 2015 06:11:55 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17473.aspx</link><description>Thank you Dave. Very appreciated for your advice.&lt;br/&gt;The one for normal distribution generation appears complicated to comprehend so I decide to use discrete stimuli to approximate Gaussian.&lt;br/&gt;Looking forward Inquisit to have some functions like norm().&lt;br/&gt;Best,&lt;br/&gt;nakayama&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description><pubDate>Mon, 26 Oct 2015 05:49:53 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17468.aspx</link><description>Regarding your first question (sampling values from a normal distribution), see &lt;a href="https://www.millisecond.com/forums/Topic8431.aspx"&gt;https://www.millisecond.com/forums/Topic8431.aspx&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Regarding randomizing the onset of the stimulus, your syntax is invalid. You need to use the trial elements setstimulustime() function. See e.g. &lt;a href="https://www.millisecond.com/forums/Topic11671.aspx"&gt;https://www.millisecond.com/forums/Topic11671.aspx&lt;/a&gt; as well as the language reference for setstimulustime(), resetstimulusframes(), etc.&lt;br/&gt;</description><pubDate>Mon, 26 Oct 2015 04:23:40 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17466.aspx</link><description>&lt;title&gt;stimulustimes property&lt;/title&gt;&lt;h1&gt;&lt;font size="2"&gt;I am trying to randomize the onset (stimulustimes) of the stimulus using this syntax&lt;/font&gt;&lt;span style="font-size: 10pt; font-weight: normal;"&gt;, but it seems not working.&lt;/span&gt;&lt;/h1&gt;&amp;lt;trial time&amp;gt;&lt;br/&gt;/ ontrialbegin = [clear(trial.time.stimulustimes]&lt;br/&gt;/ ontrialbegin = [setitem(trial.time.stimulustimes,shape.targetdot,list.targetduration.nextvalue)]&lt;br/&gt;/ stimulustimes = [1=fixation;2000=targetdot]&lt;br/&gt;/ timeout = 2900&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;Is there a way to fix this?&lt;br/&gt;Thank you.</description><pubDate>Sun, 25 Oct 2015 22:07:34 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17464.aspx</link><description>Hi, Dave.&lt;br /&gt;It is possible to let this random value drawn following a normal distribution with a certain fixed mean and standard deviation, say, 2000 and 40? So the timeout stop approximately 68% times within 2000+_40. &lt;br /&gt;ontrialbegin = [values.randomduration = round(rand(10,2999))]&lt;br /&gt;Best,&lt;br /&gt;Nakayama</description><pubDate>Sun, 25 Oct 2015 11:47:03 GMT</pubDate><dc:creator>nakayama</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17423.aspx</link><description>Thank you for your advice, Dave.&lt;br/&gt;Best,&lt;br/&gt;nakayama&amp;nbsp;</description><pubDate>Mon, 19 Oct 2015 07:07:18 GMT</pubDate><dc:creator>Nakayama Yao</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17420.aspx</link><description>You should use either /timeout or /trialduration, set to a random value below 3 seconds.&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/ randomduration = 0&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;sound mysound&amp;gt;&lt;br/&gt;/ items = ("threeseconds.wav")&lt;br/&gt;/ playthrough = false&lt;br/&gt;&amp;lt;/sound&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial sometrial&amp;gt;&lt;br/&gt;/ ontrialbegin = [values.randomduration = round(rand(10,2999))]&lt;br/&gt;/ stimulusframes = [1=mysound]&lt;br/&gt;/ validresponse = (0)&lt;br/&gt;/ timeout = values.randomduration&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;There is no other way to "stop" a sound once it's started playing.&lt;br/&gt;</description><pubDate>Mon, 19 Oct 2015 01:16:12 GMT</pubDate><dc:creator>Dave</dc:creator></item><item><title>RE: control when to stop a sound stimulus</title><link>https://forums.millisecond.com/Topic17418.aspx</link><description>(*instead of using Timeout)</description><pubDate>Mon, 19 Oct 2015 00:27:31 GMT</pubDate><dc:creator>Nakayama Yao</dc:creator></item></channel></rss>