Welcome to the home of the PyEPL
PyEPL (the Python Experiment-Programming Library) is a library for coding psychology experiments in Python. It supports presentation of both visual and auditory stimuli, and supports both manual (keyboard/joystick) and sound (microphone) input as responses.To use PyEPL, you need to either
- run one of the mac installers on your Mac; or
- install the PyEPL package on your Ubuntu or Debian system; or
- obtain and install all the dependencies and install from the source tarball.
Mac Installation
- Update 10/9/11: Installer for Mac OS 10.6 and 10.7 posted
Ubuntu Linux Installation
As of October 2006, PyEPL is an official package in Debian unstable! This means that (on Ubuntu) all you need to do to install PyEPL is to:- Enable the "universe" set of packages, if it is not already enabled (see this page, for how)
- If you have manually installed pyepl and pyode before, rename or remove /usr/lib/python2.4/site-packages/pyepl and /usr/lib/python2.4/site-packages/xode
- Type: sudo apt-get update; sudo apt-get install python-pyepl
deb http://pkg-exppsy.alioth.debian.org/debian/ sid main
to their sources.list file. Thanks to Yaroslav Halchenko and Michael Hanke for their great work on the Debian package!
Other Linux or Nonstandard Mac Installation
PyEPL is currently maintained and tested only on Ubuntu Linux and Mac OS X, but in principle should run on any Linux distribution. In this section we provide general instructions which should apply to any setup.
- First, install these dependencies:
- libsndfile
- libsamplerate
- SWIG
- ODE
- ALSA (not for mac setups)
- Next, install these Python libraries:
- Download the pyepl tarball, and as root, run: python setup.py install.
Sync-Pulsing
Synchronizing your behavioral task with a physiological measure (like EEG) can be done by sending intermittent TTL pulses from the behavioral-task machine to the machine doing the physiological recording. This is supported by PyEPL and is referred to as sync-pulsing.Update 10/9/11: PyEPL now supports sync pulsing with the LabJack U3 DAQ. See the comments in the pyepl.eeg module.
- On the Mac, sync-pulsing requires:
- an ActiveWire card, which connects via USB to your PyEPL machine
- As of December 2006, the DocDave drivers are available under the GPL and can be downloaded from the ActiveWire-OSX sourceforge project! If you're installing from one of the Mac installers, however, you don't need to do anything, as we've incorporated the driver installer into the PyEPL installer.
- On Linux, sync-pulsing functionality requires access to the
parallel port, /dev/parport0. Setting this up is likely similar to the following Ubuntu procedure.
On Ubuntu, you need to do 2 things to enable the parallel port:
- modprobe ppdev (and add ppdev to /etc/modules).
- add yourself to the lp group
Documentation
Sample Code
- Code for programs in Users' Manual
- PyFR: Free Recall Task
- PyFGS: Face/Grating Sternberg Task
- YellowCab: Virtual Driving Task