Stimulus Presentation solutions for your EEG experiments

Neuroscientists usually need presenting stimuli as well as behavioral monitoring while recording brain activity. Several software solutions can be found out there that fit the minimum requirements an experiment might have in that regard. I am compiling and commenting here on some of them. I will appreciate very much your comments in case I am missing any others.


Presentation and e-Prime are certainly the most popular stimulus presentation software used in labs. Presentation offers a large comprehensive scripting language which allows you to fully program your experiment. Its intuitive user interface is also very convenient for configuring and testing the hardware that might be involved in the campaign. Access to serial and parallel port is provided which might be useful when communicating with other programs to synchronize both the stimuli and the electrophysiological recorded signals through hardware triggers.

They provide an example scripts database which makes the language easy to learn and it is also large enough to find something you can start from when coding your own experiment.

Its extension manager allows to add functionalities on the fly. I have especially found the Lab Streaming Layer extension very useful. As I explained here, it allows the synchronization of experiments via software with the only requirement being that the applications be synchronized in the same network.

In case you need integrate Presentation functionalities with your own program they offer an API which can be called from C/C++, Matlab and Python and others.


E-Prime’s main difference from Presentation is the way experiments can be programmed. E-Prime offers a drag and drop graphical interface which can be very convenient in case you do not feel confident about your programming skills. The underlying scripting language, which is very similar to Visual basic, can also be accessed to design more complex experiments.

Like Presentation, E-Prime seamlessly integrates with fMRI devices by synchronizing with their scanner trigger pulses. In addition, E-Prime also integrates other hardware like the Tobii eye tracker and the eye gaze and eye movement sensors from SMI.

The timing accuracy for both Presentation and E-Prime is solid for precise timing experiments (within the ms accuracy). However, E-Prime needs a bit of a learning curve to achieve proper accuracy since the stimulus pre-loading functionality needs to be considered so as not to alter the timing of the paradigm.

Regarding synchronization with other applications, E-Prime supports TCP/IP link which, as discussed before, might not be enough depending on the experiment precision needed. The Lab Streaming Layer is not natively supported.

Like Presentation, E-Prime is designed to run in a Windows operative system.


PsychoPy is a free open source alternative to Presentation and E-Prime in case you do not want (or you cannot afford) to buy a licensed software. Like E-Prime, it offers an intuitive user interface

experiment builder to define the experiment’s workflow. The experiment scripts can also be directly edited in Python which might be very convenient for Neuroscientists already familiarized with such popular language. By using python as its native scripting language there are no restrictions on developing or deploying the experiment in either Windows, Mac, Linux or other platforms.

Apart from the PsychoPy standalone version, it is also possible to work with PsychoPy as a library which your projects can call from your Python environment.

For using Lab Streaming Layer in PsychoPy for robust synchronization across multiple computers you can find some ports of that synchronization library to Python like this one.


Psychophysics Toolbox is a free set of Matlab functions which its main functionality is to provide the interface to the computer hardware to achieve proper synchronization when displaying visual stimuli or playing audio ones. Since no graphical user interface is provided, good Matlab skills are recommended in case you decide to go for it. In case you cannot access a licensed Matlab, the Psychtoolbox functions can also be used in GNU Octave.


Paradigm is a commercial software with a similar approach to PsychoPy. It is a Python based solution providing both access to scripting programming with Python and with a very simple user interface.

Paradigm has an added value over and above PsychoPy which is the integration of several devices, including Enobio, to which it sends event triggers during the experiment. It also supports running experiments on mobile platforms running iOS, however, you need to design and develop the experiment in a Windows computer since Mac is not supported yet.


Inquisit might be your choice if you are looking for a solution working either in Windows and Mac. This commercial software provides quite a large library with examples and experiments which will speed up your development. To program your experiment a proprietary scripting language is provided. Its syntax is very similar to other imperative programming languages like Java, JavaScript, C#, PHP or C. If you are not familiar with any of those languages or have poor program skills the learning curve might be large in your case.

Like Paradigm, Inquisit experiments can run on iOS devices through its Inquisit Web special license which allows deploying the experiment remotely on the participant’s own devices. The data collection can be later accessed through the web too.


PEBL is an open source GPL-licensed software. Its name stands for The Psychology Experiment Building Language. It provides a cross-platform solution, a scripting language to write your experiment’s workflow and a mailing list where you can find support from the community.

Custom solutions

As far as your development platform allows you access to the computer hardware resources like

video and audio cards and input and output ports, you might develop your own stimulus presentation application. For instance, when conducting neurobehavioral experiment on the field of gaming platforms like Unity or Superlab, they may be programmed in such a way that presents and records synchronized stimuli and responses.