PDA

View Full Version : Time - seconds are longer than real seconds


clowenth
04-16-2010, 01:01 PM
I'm using the code from the reaction time tutorial, and the time listed is supposed to be in seconds. However, compared to real time, the time listed is less than half the number of seconds that elapse in the interim between the display of the stimulus and the response. Is there a conversion factor that I can use, or is there a better way to handle this? Thanks!

Jeff
04-16-2010, 01:27 PM
Have you modified the example or moved the code into your own script? If so, does this happen when you run the example without changes?

clowenth
04-16-2010, 01:31 PM
I thought that might be the problem when I had it added into my own program, so I tried it with an exact copy of the tutorial code in a new file, and it had the same problem. Does it work for you in the tutorial version?

Jeff
04-16-2010, 02:05 PM
So if you start a stopwatch when the color turns green and let it run for say 10 seconds and then press the spacebar, are you saying the time shown on screen is approximately 5 seconds? What OS are you using?

clowenth
04-29-2010, 08:27 AM
It seems like it might actually be a bit worse than that. I'm using Windows XP. When I try it in the tutorial file alone, it shows a little under 4 seconds when I let a stopwatch go for 10 seconds. In my file that I'm trying to use it in, it seems like it's closer to 5 or 6 Vizard seconds for 10 stopwatch seconds. Even factoring my double reaction time (starting the stopwatch and then stopping the stimulus and the stopwatch simultaneously), I think something's off. Any ideas?

P.S. Sorry for taking so long to respond!

masaki
04-29-2010, 11:42 AM
hi can you try this modified script and see what you get? The modifications are:

- stimulus changing color is not triggered by a random time - you trigger it by hitting the space bar. So essentially, it measures the time interval between two key presses instead of measuring your reaction time.

- there is a timer function that prints the elapsed time between stimulus change and keypress.

- i've added a second viz.Data object called dd and used that one for storing the time data from the second waitkeydown function.

I tested the code with an external stopwatch and seems accurate.

import viz
viz.go()

import vizinfo
info = vizinfo.add( 'This script uses precisely timed input recording to measure your reaction time.\nPress any key when the color changes to green.\nCan you get under .2 seconds?' )

#Add quad to screen
quad = viz.addTexQuad( viz.SCREEN , pos=(0.5,0.5,0) , scale=(4,4,4) )

#Display time on screen
timeDisplay = viz.addText( 'Time:', viz.SCREEN , pos=(0.1,0.2,0) )

import viztask

import time
starttime = time.time()

stopWatch = False


def TestReactionTime():
global starttime, stopWatch
#Data for getting values from wait conditions
d = viz.Data()
# dd = viz.Data()
while True:

#Set quad to red color
quad.color(viz.RED)

#Wait random amount of time
yield viztask.waitKeyDown(' ')
starttime = time.time()
stopWatch = True
#Set quad color to green
quad.color(viz.GREEN)

#Wait for next frame to be drawn to screen
yield viztask.waitDraw(d)

#Save display time
displayTime = d.time

#Wait for keyboard reaction
yield viztask.waitKeyDown(None,d)

#Calculate reaction time
reactionTime = d.time - displayTime

#Print and display time
print 'Reaction time:',reactionTime
timeDisplay.message( 'Time: %.5f' % (reactionTime) )
stopWatch = False

viztask.schedule( TestReactionTime() )

def showTime():
if stopWatch:
print time.time() - starttime
vizact.onupdate(-100, showTime)

Best,
Masaki

clowenth
05-19-2010, 09:14 AM
Ok, the time works out now when I use that code. So we know it's not a computer problem. However, the random timing is an important part of the code, since I want to use it as a side task that the user has to attend to at unexpected intervals. Any suggestion as to how to make that work? Thanks!