David and Scott,<div><br></div><div><div style="text-indent: 4px;">Thank you for your answers. I need to be <font face="Helvetica"><span style="font-size: 12px;">reassured. When doing EEG experiment, I always run an inline before the object I want to trigger</span></font><span style="font-family: Helvetica; font-size: 12px; ">(maybe I could even do that at the top of the procedure I guess). Let's call this object StimEEGa,d the trigger 50.</span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; ">What I always did was an inline like:</span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OnsetSignalEnabled = True</span><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OnsetSignalPort = &H378</span><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OnsetSignalData = 50</span><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div style="text-indent: 4px;"><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div style="text-indent: 4px;"><div><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OffsetSignalEnabled = True</span><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OffsetSignalPort = &H378</span><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OffsetSignalData = 50</span></div><div><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div><span style="font-family: Helvetica; font-size: 12px; ">If I understand correctly This inline tell "wait for the object </span><font face="Helvetica"><span style="font-size: 12px;">StimEEG to run and send the signal'. By running I mean waiting for StimEEG to be drawn on the screen right, independantly of any pre-release ? On the e-prime side, does this correspond to </span></font><span style="font-family: Helvetica; font-size: 12px; ">StimEEG.OnsetTime?</span></div><div><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div><span style="font-family: Helvetica; font-size: 12px; ">Thank you,</span></div><div><span style="font-family: Helvetica; font-size: 12px; "><br></span></div><div><span style="font-family: Helvetica; font-size: 12px; ">Sylvain</span></div></div><br>On Friday, February 22, 2013 6:42:29 PM UTC+1, McFarlane, David wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Sylvain,
<br>
<br>At 2/22/2013 06:36 AM Friday, Sylvain wrote:
<br>>Hi David,
<br>>
<br>>I have a question regarding to pre-release and timing.
<br>>
<br>>I did a little experiment trying to get the timestamp of the onset 
<br>>of stim, and the offset or it.
<br>
<br>Wonderful, everyone should do these sorts of explorations (that's how 
<br>I figured out all this stuff).
<br>
<br>
<br>>It's simple basically i have :
<br>>
<br>>- Inline1: I collect t1 = Clock.ReadMillisec
<br>>- Then an ImageDiplay for 200 ms with a pre-realase equal to the 
<br>>duration of it. I log the onset of ImageDiplay and the offset of it;
<br>>- Inline 2: I collect t2 = Clock.ReadMillisec
<br>>
<br>>Doing that, basically I get t2-t1 almost equal to 0 modulo some refresh rates.
<br>>I also get ImageDiplay.OnsetTime = ImageDiplay.OffsetTime.
<br>
<br>As you should.  You might find OffsetTime slightly behind OnsetTime; 
<br>and under these conditions (PreRelease = Duration), you should find 
<br>that TargetOffsetTime = TargetOnsetTime without exception.
<br>
<br>
<br>>1) There's something there that I don't really understand, which 
<br>>timestamp should I really consider,  ImageDiplay.OnsetTime or 
<br>>ImageDiplay.OffsetTime?
<br>
<br>That depends entirely on what you wish to do with that timestamp.
<br>
<br>
<br>>2) If I understood pre-realase affect offset time, so does that mean that:
<br>>ImageDiplay.Duration = (ImageDiplay.OffsetTime 
<br>>-  ImageDiplay.OnsetTime) + pre-realase
<br>
<br>Not quite -- E-Prime can control only *Target* offset (& onset) 
<br>times, not actual times.  Actual offset (& onset) times are subject 
<br>to the limitations of the stimulus presentation hardware.  Also, I 
<br>would not write the relationship that way -- that makes it sound like 
<br>Duration derives from the other quantities, which is wrong.  As I 
<br>described earlier, Duration remains whatever you asked it to be, so 
<br>should appear only on the right side of the equals sign as it is used 
<br>to determine other quantities.  Thus, repeating what I wrote in my 
<br>earlier description of TargetOffsetTime, in the case of Event timing mode,
<br>
<br>     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime +
<br>         ImageDisplay.Duration - ImageDisplay.PreRelease
<br>
<br>Note that, in the case PreRelease = Duration (the new default setting 
<br>since EP2.0.10.x), we get simply
<br>
<br>     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime
<br>
<br>which fits your observations.  If instead we set PreRelease to 0, we find
<br>
<br>     ImageDisplay.TargetOffsetTime = ImageDisplay.OnsetTime +
<br>         ImageDisplay.Duration
<br>
<br>which perhaps is what you expected (and was the default for Event 
<br>timing mode prior to EP2.0.10.x).
<br>
<br>And just to drive the point further, OffsetTime does *not* indicate 
<br>the time at which *presentation* of a stimulus ends.  Rather, (for 
<br>most practical purposes) it indicates when *execution* of the 
<br>stimulus Run method ends (strictly speaking, this describes 
<br>FinishTime, see my earlier description for the fine distinction 
<br>between OffsetTime and FinishTime).
<br>
<br>Furthermore, even with PreRelease set to 0, neither Duration nor 
<br>(OffsetTime - OnsetTime) necessarily indicate the actual duration of 
<br>the stimulus.  In particular, a visual stimulus does not disappear at 
<br>its OffsetTime (ignoring Clear After, which has been deprecated), but 
<br>remains visible until replaced by another visual stimulus, so actual 
<br>presentation duration is
<br>
<br>     Stim2.OnsetTime - Stim1.OnsetTime
<br>
<br>and EP2.0.10.x Pro can now log those values for you 
<br>(<a href="http://www.pstnet.com/support/kb.asp?TopicID=718" target="_blank">http://www.pstnet.com/<wbr>support/kb.asp?TopicID=718</a> )!
<br>
<br>
<br>>3) The fact that Inline2 is executed at the same time as Inline1 is 
<br>>particulary disturbing for me. Does that mean than Inline placed 
<br>>after an object could be executed while this object is still on screen?
<br>
<br>Yes, and that is exactly what we want it to do in many, many cases 
<br>(e.g., to handle multiple mouse actions while a visual stimulus 
<br>remains on the display, or to prepare the next stimulus during the 
<br>run of the current stimulus).  If you really want your InLine to wait 
<br>until the previous object completes its Duration, then set PreRelease 
<br>of that object to 0.
<br>
<br>Hope that helps,
<br>-----
<br>David McFarlane
<br>E-Prime training 
<br>online:  <a href="http://psychology.msu.edu/Workshops_Courses/eprime.aspx" target="_blank">http://psychology.msu.edu/<wbr>Workshops_Courses/eprime.aspx</a>
<br>Twitter:  @EPrimeMaster (<a href="https://twitter.com/EPrimeMaster" target="_blank">https://twitter.com/<wbr>EPrimeMaster</a>)
<br>
<br>
<br>>Thank you for any answer, I'm confused about this!
<br>>
<br>>Sylvain
<br>>
<br>>On Friday, September 10, 2010 3:46:03 PM UTC+2, David McFarlane wrote:
<br>>When you look at the Logging tab on the properties page of any
<br>>stimulus object, you will find a host of items available for
<br>>logging.  Most of these are time audit data.  But what do all these
<br>>items mean, and what are they good for?  Chapter 3 of the E-Prime
<br>>User's Guide discusses time auditing to some degree, and the timing
<br>>diagram at Appendix E provides one way to see the relationships
<br>>between these items.  As an alternative, here I try to set out, in
<br>>order, a brief description of these items.
<br>>
<br>>First let us distinguish between timing control *settings* and time
<br>>audit *measures*.  The following items do not reflect any results
<br>>formed during the course of a stimulus but simply log the settings
<br>>provided by the user (e.g., you).  You may choose to have any of
<br>>these logged just to keep a record of settings active during the experiment:
<br>>- Duration:  To reiterate, this does *not* show the actual duration of
<br>>    the stimulus, only the setting as provided by the user.
<br>>- PreRelease:  Affects the TargetOffsetTime (see below).
<br>>- TimingMode:   Event, Cumulative, or Custom, as set by the user (see
<br>>    the online E-Basic Help).
<br>>- CustomOffsetTime:  In Custom timing mode, overrides the
<br>>    TargetOnsetTime (see the online E-Basic Help).
<br>>- CustomOnsetTime:  In Custom timing mode, overrides the
<br>>    TargetOffsetTime (see the online E-Basic Help).
<br>>
<br>>Now, the raw time audit measures, listed in the order in which events
<br>>occur during the execution of a stimulus object.  These are all time
<br>>stamps in milliseconds from the start of the current program run:
<br>>- StartTime:  Time at which E-Prime started executing the stimulus
<br>>    object.
<br>>- TargetOnsetTime:  Scheduled time at which presentation of stimulus was
<br>>    to begin; set automatically from GetNextTargetOnsetTime (see online
<br>>    E-Basic Help).
<br>>- OnsetTime:  Time when E-Prime actually submitted the stimulus data for
<br>>    presentation (e.g., proceeded to copy data to display memory or load
<br>>    sound buffer).  This may not coincide with when the stimulus actually
<br>>    got presented, e.g., if data are submitted in the middle of a display
<br>>    refresh cycle then they may not get presented until the next refresh.
<br>>- ActionTime:  According to the online E-Basic Help, time at which
<br>>    E-Prime completed the "critical action" of the stimulus.  The
<br>>    documentation remains somewhat vague about this -- perhaps "critical
<br>>    action" means copying data to display memory, or loading a sound or
<br>>    video buffer.  In my tests, ActionTime never lags more than 1 ms
<br>>    behind OnsetTime, so it serves practically the same purpose as
<br>>    OnsetTime.
<br>>- TargetOffsetTime:  Scheduled time at which offset actions (e.g.,
<br>>    clean-up, ClearAfter, StopAfter) of stimulus object were to begin,
<br>>    e.g., OnsetTime + Duration - PreRelease (Event timing mode), or
<br>>    TargetOnsetTime + Duration - PreRelease (Cumulative timing mode).
<br>>- OffsetTime:  Time when E-Prime actually began the offset actions of
<br>>    the object.  Actions may not take practical effect until next
<br>>    vertical blank, or until presentation of next stimulus.
<br>>- FinishTime:  Time when E-Prime exited from execution of the
<br>>    stimulus object and proceeded to execute the next section of the
<br>>    program (e.g., next stimulus object or inline code).  Note that
<br>>    *execution* of a stimulus *object* may end before *presentation* of
<br>>    the *stimulus* ends; this is the point of PreRelease (as well as
<br>>    happening as a matter of course with some stimuli such as some
<br>>    sounds).
<br>>
<br>>Finally, a few composite time audit measures derived from the raw
<br>>measures above and provided for convenience:
<br>>- OnsetDelay = OnsetTime - TargetOnsetTime
<br>>- ActionDelay = ActionTime - OnsetTime
<br>>- OffsetDelay = OffsetTime - TargetOffsetTime
<br>>- DurationError = OffsetTime + PreRelease - OnsetTime - Duration
<br>>
<br>>Note:
<br>>- Time audit measures include the ActionTime that follows upon
<br>>    OnsetTime, but no corresponding item to follow upon OffsetTime.
<br>>- No time audit item for time stamp of vertical blank, although many
<br>>    stimuli do not take full effect until just after a vertical blank.
<br>>
<br>>-- David McFarlane, Professional Faultfinder
<br>>
<br>>--
<br>>You received this message because you are subscribed to the Google 
<br>>Groups "E-Prime" group.
<br>>To unsubscribe from this group and stop receiving emails from it, 
<br>>send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="Vt2QAt3uoOcJ">e-prime+u...@<wbr>googlegroups.com</a>.
<br>>To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="Vt2QAt3uoOcJ">e-p...@googlegroups.com</a>.
<br>>To view this discussion on the web visit 
<br>><<a href="https://groups.google.com/d/msg/e-prime/-/eFwpjTnxC2kJ" target="_blank">https://groups.google.com/d/<wbr>msg/e-prime/-/eFwpjTnxC2kJ</a>><a href="https://groups.google.com/d/msg/e-prime/-/eFwpjTnxC2kJ" target="_blank">htt<wbr>ps://groups.google.com/d/msg/<wbr>e-prime/-/eFwpjTnxC2kJ</a>.
<br>>For more options, visit 
<br>><<a href="https://groups.google.com/groups/opt_out" target="_blank">https://groups.google.com/<wbr>groups/opt_out</a>><a href="https://groups.google.com/groups/opt_out" target="_blank">https://groups.<wbr>google.com/groups/opt_out</a>.
<br>>
<br>>
<br>
<br></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "E-Prime" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe@googlegroups.com.<br />
To post to this group, send email to e-prime@googlegroups.com.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msg/e-prime/-/t_JN6la2f0MJ">https://groups.google.com/d/msg/e-prime/-/t_JN6la2f0MJ</a>.<br />
For more options, visit <a href="https://groups.google.com/groups/opt_out">https://groups.google.com/groups/opt_out</a>.<br />
 <br />
 <br />