Trying to present visual and audio together - getting 16ms lag

David McFarlane mcfarla9 at msu.edu
Thu Aug 7 20:27:32 UTC 2014


Rob,

To answer the question asked:  Yes, you are correct that the system 
is losing a refresh for every object loading.  You may avoid that 
simply by going to the Sync tab of your Slide objects and setting 
Onset Sync to "(none)".

That said ...

To get even better synchronization between onset of your image & 
sound, you could add the sound right to the Slide.  Your following 
inline code (to terminate sound on response) would then have to refer 
to the SlideSound sub-object instead, but if you look at some of the 
automatically generated code and fuss around a little you should figure it out.

Instead of

     sleep(1000-c.getattrib("TonePlay.rt")

you could simply use

     sleep(1000-TonePlay.rt)

which avoids having to deal with an attribute that may or may not be 
set at the time.  But I would not use this method anyway, as I fear 
that it still leaves too much room for slop (RT may not take into 
account other delays that have set in, etc.).  Instead, I would take 
advantage of the neat built-in timing facilities of EP objects 
themselves, and just manipulate the NextTargetOnsetTime directly, e.g.,

     SetNextTargetOnsetTime Slide1.OnsetTime + 1000

to emulate Event timing mode, or

     SetNextTargetOnsetTime Slide1.TargetOnsetTime + 1000

to emulate Cumulative timing mode.  Set the SetNextTargetOnsetTime 
topic in the E-Basic Help facility.

Better yet, just set the Slide Durations to 1000, and PreRelease to 
1000, and you will not need any code at all to make each Slide start 
1000 ms apart (don't take my word for that, try the exercise 
yourself).  The inline code will run during the PreRelease period as 
directed, and the next Slide will start 1000 ms after the previous 
one (assuming that your inline code does not run beyond the 
PreRelease).  (In fact, EP2.0.10 now sets PreRelease to "(same as 
duration)" by default, making much of this automatic.)

-----
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) You may reach PST's 
trained staff (and other support facilities) at 
https://support.pstnet.com .  3) 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 8/7/2014 01:33 PM Thursday, Rob Manchester wrote:
>I'm trying to edit someone else's experiment in E-Prime V1.
>
>They have a procedure that contains 8 objects. 4 of these objects 
>are slides which contain images. The slides have duration = 0. The 
>other 4 objects are bits of inline code that calls another procedure 
>which contains 1) a slide with duration 1000 which has a 'soundout' 
>object of duration 1000 that terminates on a keyboard response.  2) 
>a further bit of code = sleep(1000-c.getattrib("TonePlay.rt")). This 
>last bit of code I think tries to ensure that the procedure lasts 
>1000 regardless of the reaction time to the sound.
>
>The image slides are interespersed with the inline code that call 
>the audio procedure i.e.
>
>Image Slide Duration = 0
>Code calling audio proc, duration 1000ms
>Image Slide Duration = 0
>Code calling audio proc, duration 1000ms
>Image Slide Duration = 0
>Code calling audio proc, duration 1000ms
>Image Slide Duration = 0
>Code calling audio proc, duration 1000ms
>
>My screen refresh is 60hz. The idea of the code is that the Images 
>and Audio display together for 1000s each, with the audio (but not 
>the image) terminating on response. It works apart from the fact 
>that the audio loads 16/17ms after the image - i.e. 1 screen 
>refresh. The ISI between sucessive audio stimuli is 1034ms rather 
>than 1000ms (i.e. two screen refreshes too long). Could anyone tell 
>me why these delays are occurring? I presume the system is losing a 
>refresh for every object loading (i.e. a delay = to a screen refresh 
>is occuring when E-prime moves between the slide object and the 
>inline code object. I've tried putting a pre-release value of 20ms 
>on the slides but this doesn't seem to have had any effect. Does any 
>have any ideas as to how to solve this?
>
>Thanks
>Rob

-- 
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/53e3e139.033d320a.29ab.0778SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/d/optout.



More information about the Eprime mailing list