Mastering E-Prime: Meaning of all time audit measures.

David McFarlane mcfarla9 at msu.edu
Fri Feb 22 17:42:29 UTC 2013


Sylvain,

At 2/22/2013 06:36 AM Friday, Sylvain wrote:
>Hi David,
>
>I have a question regarding to pre-release and timing.
>
>I did a little experiment trying to get the timestamp of the onset 
>of stim, and the offset or it.

Wonderful, everyone should do these sorts of explorations (that's how 
I figured out all this stuff).


>It's simple basically i have :
>
>- Inline1: I collect t1 = Clock.ReadMillisec
>- Then an ImageDiplay for 200 ms with a pre-realase equal to the 
>duration of it. I log the onset of ImageDiplay and the offset of it;
>- Inline 2: I collect t2 = Clock.ReadMillisec
>
>Doing that, basically I get t2-t1 almost equal to 0 modulo some refresh rates.
>I also get ImageDiplay.OnsetTime = ImageDiplay.OffsetTime.

As you should.  You might find OffsetTime slightly behind OnsetTime; 
and under these conditions (PreRelease = Duration), you should find 
that TargetOffsetTime = TargetOnsetTime without exception.


>1) There's something there that I don't really understand, which 
>timestamp should I really consider,  ImageDiplay.OnsetTime or 
>ImageDiplay.OffsetTime?

That depends entirely on what you wish to do with that timestamp.


>2) If I understood pre-realase affect offset time, so does that mean that:
>ImageDiplay.Duration = (ImageDiplay.OffsetTime 
>-  ImageDiplay.OnsetTime) + pre-realase

Not quite -- E-Prime can control only *Target* offset (& onset) 
times, not actual times.  Actual offset (& onset) times are subject 
to the limitations of the stimulus presentation hardware.  Also, I 
would not write the relationship that way -- that makes it sound like 
Duration derives from the other quantities, which is wrong.  As I 
described earlier, Duration remains whatever you asked it to be, so 
should appear only on the right side of the equals sign as it is used 
to determine other quantities.  Thus, repeating what I wrote in my 
earlier description of TargetOffsetTime, in the case of Event timing mode,

     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime +
         ImageDisplay.Duration - ImageDisplay.PreRelease

Note that, in the case PreRelease = Duration (the new default setting 
since EP2.0.10.x), we get simply

     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime

which fits your observations.  If instead we set PreRelease to 0, we find

     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime +
         ImageDisplay.Duration

which perhaps is what you expected (and was the default for Event 
timing mode prior to EP2.0.10.x).

And just to drive the point further, OffsetTime does *not* indicate 
the time at which *presentation* of a stimulus ends.  Rather, (for 
most practical purposes) it indicates when *execution* of the 
stimulus Run method ends (strictly speaking, this describes 
FinishTime, see my earlier description for the fine distinction 
between OffsetTime and FinishTime).

Furthermore, even with PreRelease set to 0, neither Duration nor 
(OffsetTime - OnsetTime) necessarily indicate the actual duration of 
the stimulus.  In particular, a visual stimulus does not disappear at 
its OffsetTime (ignoring Clear After, which has been deprecated), but 
remains visible until replaced by another visual stimulus, so actual 
presentation duration is

     Stim2.OnsetTime - Stim1.OnsetTime

and EP2.0.10.x Pro can now log those values for you 
(http://www.pstnet.com/support/kb.asp?TopicID=718 )!


>3) The fact that Inline2 is executed at the same time as Inline1 is 
>particulary disturbing for me. Does that mean than Inline placed 
>after an object could be executed while this object is still on screen?

Yes, and that is exactly what we want it to do in many, many cases 
(e.g., to handle multiple mouse actions while a visual stimulus 
remains on the display, or to prepare the next stimulus during the 
run of the current stimulus).  If you really want your InLine to wait 
until the previous object completes its Duration, then set PreRelease 
of that object to 0.

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


>Thank you for any answer, I'm confused about this!
>
>Sylvain
>
>On Friday, September 10, 2010 3:46:03 PM UTC+2, David McFarlane wrote:
>When you look at the Logging tab on the properties page of any
>stimulus object, you will find a host of items available for
>logging.  Most of these are time audit data.  But what do all these
>items mean, and what are they good for?  Chapter 3 of the E-Prime
>User's Guide discusses time auditing to some degree, and the timing
>diagram at Appendix E provides one way to see the relationships
>between these items.  As an alternative, here I try to set out, in
>order, a brief description of these items.
>
>First let us distinguish between timing control *settings* and time
>audit *measures*.  The following items do not reflect any results
>formed during the course of a stimulus but simply log the settings
>provided by the user (e.g., you).  You may choose to have any of
>these logged just to keep a record of settings active during the experiment:
>- Duration:  To reiterate, this does *not* show the actual duration of
>    the stimulus, only the setting as provided by the user.
>- PreRelease:  Affects the TargetOffsetTime (see below).
>- TimingMode:   Event, Cumulative, or Custom, as set by the user (see
>    the online E-Basic Help).
>- CustomOffsetTime:  In Custom timing mode, overrides the
>    TargetOnsetTime (see the online E-Basic Help).
>- CustomOnsetTime:  In Custom timing mode, overrides the
>    TargetOffsetTime (see the online E-Basic Help).
>
>Now, the raw time audit measures, listed in the order in which events
>occur during the execution of a stimulus object.  These are all time
>stamps in milliseconds from the start of the current program run:
>- StartTime:  Time at which E-Prime started executing the stimulus
>    object.
>- TargetOnsetTime:  Scheduled time at which presentation of stimulus was
>    to begin; set automatically from GetNextTargetOnsetTime (see online
>    E-Basic Help).
>- OnsetTime:  Time when E-Prime actually submitted the stimulus data for
>    presentation (e.g., proceeded to copy data to display memory or load
>    sound buffer).  This may not coincide with when the stimulus actually
>    got presented, e.g., if data are submitted in the middle of a display
>    refresh cycle then they may not get presented until the next refresh.
>- ActionTime:  According to the online E-Basic Help, time at which
>    E-Prime completed the "critical action" of the stimulus.  The
>    documentation remains somewhat vague about this -- perhaps "critical
>    action" means copying data to display memory, or loading a sound or
>    video buffer.  In my tests, ActionTime never lags more than 1 ms
>    behind OnsetTime, so it serves practically the same purpose as
>    OnsetTime.
>- TargetOffsetTime:  Scheduled time at which offset actions (e.g.,
>    clean-up, ClearAfter, StopAfter) of stimulus object were to begin,
>    e.g., OnsetTime + Duration - PreRelease (Event timing mode), or
>    TargetOnsetTime + Duration - PreRelease (Cumulative timing mode).
>- OffsetTime:  Time when E-Prime actually began the offset actions of
>    the object.  Actions may not take practical effect until next
>    vertical blank, or until presentation of next stimulus.
>- FinishTime:  Time when E-Prime exited from execution of the
>    stimulus object and proceeded to execute the next section of the
>    program (e.g., next stimulus object or inline code).  Note that
>    *execution* of a stimulus *object* may end before *presentation* of
>    the *stimulus* ends; this is the point of PreRelease (as well as
>    happening as a matter of course with some stimuli such as some
>    sounds).
>
>Finally, a few composite time audit measures derived from the raw
>measures above and provided for convenience:
>- OnsetDelay = OnsetTime - TargetOnsetTime
>- ActionDelay = ActionTime - OnsetTime
>- OffsetDelay = OffsetTime - TargetOffsetTime
>- DurationError = OffsetTime + PreRelease - OnsetTime - Duration
>
>Note:
>- Time audit measures include the ActionTime that follows upon
>    OnsetTime, but no corresponding item to follow upon OffsetTime.
>- No time audit item for time stamp of vertical blank, although many
>    stimuli do not take full effect until just after a vertical blank.
>
>-- David McFarlane, Professional Faultfinder
>
>--
>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/msg/e-prime/-/eFwpjTnxC2kJ>https://groups.google.com/d/msg/e-prime/-/eFwpjTnxC2kJ.
>For more options, visit 
><https://groups.google.com/groups/opt_out>https://groups.google.com/groups/opt_out.
>
>

-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.



More information about the Eprime mailing list