Play Movies without using Screen('Flip')? Need consistency of presentation speed on each playback

Hello,


I am interested in whether there is any way to play a movie without using Screen('Flip') at some point?


I am trying to run an experiment where subjects judge the average speed of coloured moving dots over a series of trials. Subjects are trained on a laptop and then out of necessity tested on a different computer. It is very important that the speed of the dots is consistent across computers. Initially I used Screen('DrawDots') to draw dots (and flip to screen) on every frame. The positions and colour of each dot on each frame had been pre-calculated and stored before running the experiment. There was considerable variation in the time to draw dots and flip screen on each loop (using tic toc), and the perceptual speed of the dots presented varied across computers.


To fix this I made movies of the dots, thinking I could then play the movie and it would be the same each time. This will not work however if I still need to use Screen('DrawTexture') and Screen('Flip') in a loop, as there will be the same issue as with Screen('DrawDots') and Screen('Flip'). 


Are there any methods for playing movies or presenting motion dots that will have consistent performance- not dropping frames, not resulting in variations in perceptual speed, etc?


Thanks very much!


Emma Lawrance

FMRIB Centre, University of Oxford

XX---In PSYCHTOOLBOX@yahoogroups.com, <emma.lawrance@...> wrote :

Hello,


-> Hello Emma,


I am interested in whether there is any way to play a movie without using Screen('Flip') at some point?


-> No, that would take out all the flexibility and also not help your problem.


I am trying to run an experiment where subjects judge the average speed of coloured moving dots over a series of trials. Subjects are trained on a laptop and then out of necessity tested on a different computer. It is very important that the speed of the dots is consistent across computers. Initially I used Screen('DrawDots') to draw dots (and flip to screen) on every frame. The positions and colour of each dot on each frame had been pre-calculated and stored before running the experiment. There was considerable variation in the time to draw dots and flip screen on each loop (using tic toc), and the perceptual speed of the dots presented varied across computers.


To fix this I made movies of the dots, thinking I could then play the movie and it would be the same each time. This will not work however if I still need to use Screen('DrawTexture') and Screen('Flip') in a loop, as there will be the same issue as with Screen('DrawDots') and Screen('Flip'). 


Are there any methods for playing movies or presenting motion dots that will have consistent performance- not dropping frames, not resulting in variations in perceptual speed, etc?


-> If you have a half-way decent system, properly setup, and write your code properly, yes, that should be simple.


DotDemo.m shows how to get constant framerate animations. 'waitframes' in DotDemo(showSprites, waitframes) will allow to select the speed, e.g., waitframes = 1 for full speed of your display, 2 = half speed (every 2nd refresh cycle) etc. So there's your reference code.


Obviously you must not overload your graphics card, so what graphics card(s) does your system have? What operating system, display setup, other details etc.? Sample code?


best,

-mario


Thanks very much!


Emma Lawrance

FMRIB Centre, University of Oxford