2 slides equal to one time duration

David McFarlane mcfarla9 at msu.edu
Thu Oct 31 20:01:41 UTC 2013


Glad you found that useful.

Hope I understand your question...  Let's see, we have

     BSlide.Duration = 2500 - ASlide.RT

and since RT = (ASlide.RTTime - ASlide.OnsetTime), that is the same as

     BSlide.Duration = 2500 - (ASlide.RTTime - ASlide.OnsetTime)

which is not all that different from

     BSlide.Duration = 2500 - (Clock.Read - ASlide.OnsetTime)

So the difference is slight.  But here's the 
deal.  The goal here is to make BSlide end 
precisely 2500 ms after the onset of 
ASlide.  Some small time may pass between 
ASlide.RTTime and the time when BSlide starts, 
and if that happens then if you base 
BSlide.Duration on ASlide.RTTime then the 
Duration will be a little too long and that will 
make the full time of ASlide + BSlide longer than 
intended.  Using the Clock.Read in code 
immediately before BSlide should give you a 
closer estimate of the Duration needed for 
BSlide, but even here, any delay between the 
computation of BSlide.Duration and when BSlide 
actually starts running will result in Duration 
being just a little too long.  May not be enough 
to matter, but why not be more exact if we can?

So I advise *against* doing things this way just 
because of the complications of all these little 
delays.  Instead, my main advice of using 
SetNextTargetOnsetTime along with Cumulative 
timing mode avoids these complications, and used 
properly, can result in precise timing.

-----
David McFarlane
E-Prime training 
online:  http://psychology.msu.edu/Workshops_Courses/eprime.aspx
Twitter:  @EPrimeMaster (https://twitter.com/EPrimeMaster )

/----
Stock reminder:  1) I do not work for PST.  2) 
PST's trained staff take any and all questions at 
https://support.pstnet.com , and they strive to 
respond to all requests in 24-48 hours, so make 
full use of it.  3) In addition, PST offers 
several instructional videos on their YouTube 
channel (http://www.youtube.com/user/PSTNET 
).  4) If you do get an answer from PST staff, 
please extend the courtesy of posting their reply 
back here for the sake of others.
\----


At 10/30/2013 11:03 PM Wednesday, =?GB2312?B?vKrP6cjn0uI=?= wrote:
>Dear  David McFarlane,
>  I have tried your suggestion, it really works 
> and it's quite simple compared with what I 
> performed before as : 
> BSlide.Duration=2500-ASlide.RT,  and one more 
> question, why you use 2500 - (Clock.Read - ASlide.OnsetTime).
>Thanks a lot.
>
>
>2013/10/22 David McFarlane <<mailto:mcfarla9 at msu.edu>mcfarla9 at msu.edu>
>Just for the record, I need to correct a bit of 
>my advice here.  Earlier, I said that using
>
>     SetNextTargetOnsetTime ASlide.OnsetTime
>
>between ASlide and BSlide would make the total 
>duration from the start of ASlide to the end of 
>BSlide equal the specified Duration of BSlide 
>(in this case, 2500 ms).  But I neglected to say 
>that, for this to work, you must also set BSlide 
>to use Cumulative timing mode.  This works 
>because, in Cumulative timing mode, the 
>TargetOnset time for whatever follows BSlide 
>will be based on the TargetOnsetTime of BSlide 
>(instead of actual OnsetTime), and 
>BSlide.TargetOnsetTime will come from the 
>NextTargetOnsetTime implied in the code 
>above.  I generally like this approach because 
>it eliminates any errors due to delays in starting BSlide.
>
>Furthermore, the line of code above makes the 
>total duration of ASlide + BSlide act like Event 
>timing mode (think it through).  If you want 
>that to instead act like Cumulative timing mode, then that line should read
>
>     SetNextTargetOnsetTime ASlide.TargetOnsetTime
>
>i.e., use .TargetOnsetTime instead of just .OnsetTime.
>
>
>If you stubbornly insist on keeping BSlide set 
>to Event timing mode, then the TargetOnset time 
>for whatever follows BSlide will be based on the 
>actual OnsetTime of BSlide, and you have no 
>recourse but to manipulate the Duration of 
>BSlide.  In that case, your inline code between 
>ASlide and BSlide should look more like
>
>     BSlide.Duration = 2500 - (Clock.Read - ASlide.OnsetTime)
>
>or if you prefer,
>
>     c.SetAttrib "BSlideDuration", 2500 - (Clock.Read - ASlide.OnsetTime)
>
>and then use "[BSlideDuration]" as an attribute 
>reference for the Duration of BSlide (see 
>comments on assigning object properties directly 
>in code vs. via attribute reference at 
><https://groups.google.com/d/topic/e-prime/dWpfjk-BeLs>https://groups.google.com/d/topic/e-prime/dWpfjk-BeLs 
>and 
><https://groups.google.com/d/topic/e-prime/g1Fv2CGaSeg>https://groups.google.com/d/topic/e-prime/g1Fv2CGaSeg 
>).
>
>Manipulating Duration (instead of 
>NextTargetOnsetTime) also means that the actual 
>duration of BSlide (and ASlide + BSlide) will 
>vary depending on any delays in starting BSlide, 
>but maybe that is what you want.
>
>
>-----
>David McFarlane
>E-Prime training 
>online: 
><http://psychology.msu.edu/Workshops_Courses/eprime.aspx>http://psychology.msu.edu/Workshops_Courses/eprime.aspx
>Twitter:  @EPrimeMaster 
>(<https://twitter.com/EPrimeMaster>https://twitter.com/EPrimeMaster )
>
>/----
>Stock reminder:  1) I do not work for PST.  2) 
>PST's trained staff take any and all questions 
>at 
><https://support.pstnet.com>https://support.pstnet.com 
>, and they strive to respond to all requests in 
>24-48 hours, so make full use of it.  3) In 
>addition, PST offers several instructional 
>videos on their YouTube channel 
>(<http://www.youtube.com/user/PSTNET>http://www.youtube.com/user/PSTNET 
>).  4) If you do get an answer from PST staff, 
>please extend the courtesy of posting their 
>reply back here for the sake of others.
>\----
>
>
>At 10/14/2013 02:22 PM Monday, David McFarlane wrote:
>Not sure I follow your description of the 
>problem.  But let's suppose you have two Slides 
>in your Procedure, let's call them ASlide and 
>BSlide.  ASlide takes a response, and the 
>Procedure moves on to present BSlide whenever 
>ASlide gets a response, or 2000 ms, whichever 
>comes first.  And you want the total duration 
>for ASlide & BSlide to be 2500 ms, i.e., BSlide 
>should last for 2500 - (ASlide_actual_duration).
>
>There are many ways to skin this cat.  My 
>favorite method goes as follows.  Set the 
>Duration of BSlide to 2500, and in an Inline 
>between ASlide and BSlide, do the following:
>
>     SetNextTargetOnsetTime ASlide.OnsetTime
>
>That's all!  Understanding how this works takes 
>some deeper understanding of E-Prime timing 
>models & mechanisms, more than I can go into 
>here, but look at the SetNextTargetOnsetTime 
>topic in the E-Basic Help facility.  But in 
>short, with that bit of code, BSlide will use 
>the actual OnsetTime from ASlide in order to 
>compute its own ending time, and so will end at 
>2500 ms from the OnsetTime of ASlide, whithout 
>you having to do anything more.  Presto!
>
>-----
>David McFarlane
>E-Prime training 
>online: 
><http://psychology.msu.edu/Workshops_Courses/eprime.aspx>http://psychology.msu.edu/Workshops_Courses/eprime.aspx
>Twitter:  @EPrimeMaster 
>(<https://twitter.com/EPrimeMaster>https://twitter.com/EPrimeMaster )
>
>/----
>Stock reminder:  1) I do not work for PST.  2) 
>PST's trained staff take any and all questions 
>at 
><https://support.pstnet.com>https://support.pstnet.com 
>, and they strive to respond to all requests in 
>24-48 hours, so make full use of it.  3) In 
>addition, PST offers several instructional 
>videos on their YouTube channel 
>(<http://www.youtube.com/user/PSTNET>http://www.youtube.com/user/PSTNET 
>).  4) If you do get an answer from PST staff, 
>please extend the courtesy of posting their 
>reply back here for the sake of others.
>\----
>
>
>At 10/8/2013 10:00 PM Tuesday, Kim Goodyear wrote:
>I am trying to have two sequential slides that 
>are equal to one time duration of 2500 ms.  The 
>first slide and the second slide are completely 
>identical, except in the second slide the text 
>color changes to red so that the participant can 
>see their selection,  I want the first slide to 
>terminate and then have the second slide come up 
>so that they both equal the same 2500 ms.  Since 
>the response time will vary I don't know how to 
>make both slides equal to the same 2500.  I 
>don't know why, but if the buttons aren't 
>selected right away, the total duration is 
>around 5000, or if there is a delay in the 
>response, the total duration is around 4200.  I 
>am not sure how to fix this issue, any advice 
>would be great.  Here is my inline script:
>
>Dim ResetSlide as integer
>Dim x as integer
>
>ResetSlide = StimDisplay.Duration + StimDisplay2.Duration
>ResetSlide = x
>x = 2500

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/5272b74d.2cdd320a.7803.0516SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Eprime mailing list