![]() phase += 0.1 # Increment by 10th of cycle gabor. draw () if 50 <= frameN < 100 : # Present stim for a different subset gabor. GratingStim ( win, tex = None, mask = 'gauss', sf = 0, size = 0.02, name = 'fixation', autoLog = False ) # Let's draw a stimulus for 200 frames, drifting for frames 50:100 for frameN in range ( 200 ): # For exactly 200 frames if 10 <= frameN < 150 : # Present fixation for a subset of frames fixation. GratingStim ( win, tex = 'sin', mask = 'gauss', sf = 5, name = 'gabor', autoLog = False ) fixation = visual. As a result, on most cards, as long as frames are not being ‘dropped’ (see Detecting dropped frames) you can present stimuli for a fixed, reproducible period.įrom psychopy import visual, core # Setup stimulus win = visual. Calls to Window.flip() will be synchronised to the frame refresh the script will not continue until the flip has occurred. The frame rate is extremely precise, much better than ms-precision. At 60Hz refresh you can not present your stimulus for, say, 120ms the frame period would limit you to a period of 116.7ms (7 frames) or 133.3ms (8 frames).Īs a result, the most precise way to control stimulus timing is to present them for a specified number of frames. It also might also give the false impression that a stimulus can be presented for any given period. An error of 16.7ms might be acceptable to long-duration stimuli, but not to a brief presentation. So using this method you get timing accurate to the nearest frame period but with little consistent precision. Alternatively, if the time has reached 2.001s, there will not be an extra frame drawn. If the screen is refreshing at 60Hz (16.7ms per frame) and the getTime() call reports that the time has reached 1.999s, then the stimulus will draw again for a frame, in accordance with the while loop statement and will ultimately be displayed for 2.0167s. In the above, the stimulus does not actually get drawn for exactly 0.5s (500ms). flip ()Ĭlocks are accurate to around 1ms (better on some platforms), but using them to time stimuli is not very accurate because it fails to account for the fact that one frame on your monitor has a fixed frame rate. phase += 0.1 # Increment by 10th of cycle win. getTime () < 2.0 : # Clock times are in seconds if 0.5 <= clock. autoLog = False # Or we'll get many messages about phase change # Let's draw a stimulus for 2s, drifting for middle 0.5s clock = core. autoDraw = True # Automatically draw every frame gabor. GratingStim ( win, tex = 'sin', mask = 'gauss', sf = 5, name = 'gabor' ) gabor. From psychopy import visual, core # Setup stimulus win = visual.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |