Holcombe:VerifyTiming

From OpenWetWare

(Difference between revisions)
Jump to: navigation, search
(Precautions to avoid timing problems)
Line 25: Line 25:
==Sound==
==Sound==
Here [[Media:AudioAndUSBnotesWithPython.oo3]] is the file with all my notes on different ways to play a sound in Python and the  associated latencies and standard deviations of the latencies--[[User:Alex O. Holcombe|Alex O. Holcombe]] 05:15, 25 June 2008 (UTC)
Here [[Media:AudioAndUSBnotesWithPython.oo3]] is the file with all my notes on different ways to play a sound in Python and the  associated latencies and standard deviations of the latencies--[[User:Alex O. Holcombe|Alex O. Holcombe]] 05:15, 25 June 2008 (UTC)
 +
 +
We used the oscilloscope to measure audiovisual synchrony using this stimulus:
 +
The results are in this table:

Revision as of 20:42, 9 July 2009

Members

Alex Holcombe
Sarah McIntyre
Fahed Jbarah
• Shih-Yu Lo
• Patrick Goodbourn
Lizzy Nguyen
Alumni


Technical

Skills Checklist
Python Programming
Psychopy/VisionEgg Installation Notes
R analysis,plot,stats
Statistics
Buttonbox
Verifying timing
Programming Cheat Sheets


Precautions to avoid timing problems

  • Presence of USB external hard drive for TimeMachine takes about 3 ms every 10-20 trials
  • Connection of second screen?
  • May want to quit finder. To do so, include these lines in python script:
 import os
 applescript="\'tell application \"Finder\" to quit\'"
 shellCmd = 'osascript -e '+applescript
 os.system(shellCmd)

Visual

To create custom resolutions and refresh rate modes for the screen if not available in System Preferences->Displays, use DisplayConfigX

Ideally, your program synchronizes drawing of the stimulus with the refresh of the CRT. To do this, you have to use particular techniques for drawing. Psychopy has some code included for checking interframe intervals with the system clock, see this page on the psychopy wiki

Once you think you've done it properly, best to further verify that stim drawing is synchronized with the CRT.

  • Use the tachometer
    • It lives in a box on the shelf of the lab
  • Use an oscilloscope
  • Visually verify that no screen refreshes are missed
    • e.g. my screenRefreshTest.py program exchanges the location of a black and white circle, one off screen and one on screen, every frame. Viewing the display, if any frames are missed, screen flicker should visibly stutter. Fortunately even at 160 Hz 800 by 600, frames are never missed until I try to draw about 10 circles every frame


Sound

Here Media:AudioAndUSBnotesWithPython.oo3 is the file with all my notes on different ways to play a sound in Python and the associated latencies and standard deviations of the latencies--Alex O. Holcombe 05:15, 25 June 2008 (UTC)

We used the oscilloscope to measure audiovisual synchrony using this stimulus:

The results are in this table:
Views
Personal tools