2 slides equal to one time duration

David McFarlane mcfarla9 at msu.edu
Mon Oct 21 18:33:55 UTC 2013


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 and 
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
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/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
>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/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/526573bf.0286320a.39d7.2574SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Eprime mailing list