We have been flirting with the idea of PsychoPy (http://www.psychopy.org/) for quite some time now, but have not until recently had time to use it in anger!
I was lucky enough to be able to travel up to Nottingham University last year to meet PsychoPy’s creator Jon Pierce, and get some hands on training, and I must say I was impressed with how much Jon had managed to achieve, and with the fact that he has released it as Open Source! This comes with a background of my increasing dis-satisfaction with E-Prime, a program that we spend a lot of money on licensing for.
With that in mind, we have been looking for opportunities to replace E-Prime with PsychoPy, but have only very recently had such an opportunity. The study involved displaying videos of either fires or running water, which the participants were invited to concentrate on, and then after some time, a simple cognitive task was displayed in the participants peripheral vision, which once solved moves the experiment onto the next trial (a different video). The aim was to measure reaction times, and see if the reaction times differed depending on the type of video they were watching.
This is something that we simply couldn’t do in E-Prime, firstly, E-Prime is dreadful at displaying videos, and secondly it is not possible to add something to an existing display window, instead you must create a whole new screen. This means that you can’t smoothly continue showing video and then introduce a task to that same window. However in PsychoPy it was simple, and we got it working in next to no time.
From my experience PsychoPy seems to be able to do anything that E-Prime can, having analgous display objects to E-Primes (Slides, Text, Image, Video, Sound out/in). in addition there are a few other advantages that spring to mind :
- It’s free!!!!
- It is open source, if it doesn’t do something, you can contribute that something to the project.
- It is implemented in Python (we love Python).
- You can use any Python library in combination with PsychoPy, so for example if you wanted to do some on the fly data analysis with SciPy then you can do that with ease, which opens up a whole world of possibilities.
- The GUI creates nicely formatted Python code, this can be easily read, modified and most importantly Source Controlled!
- You can distribute experiments just like you would distribute Python packages (I wonder if there are any experiments on PyPi?).
There are of course drawbacks……. :
- We don’t know how well PsychoPy compares to E-Prime when it comes to timing accuracy (I would love to see the data if anyone has it?!).
- Currently there aren’t any libraries that I know of that allow easy integration of Eye Trackers or EEG into PsychoPy (although most eye trackers have Python APIs so it is just a matter of time I suspect).
- Our response boxes are all E-Prime ones, which don’t work with PsychoPy, but Cedrus boxes apparently do, so we might have to invest in a few of those?
- There doesn’t seem to be many published studies yet that have used PsychoPy, which might make some our academics nervous?
Personally I think that the advantages out-weigh the disadvantages, and we are hoping to run many more PsychoPy projects in the next academic year, which I will post on as they come along!