This page contains information relating to over 40 different software resources for conducting perception/production experiments. For details about how this page is organized and advice on how to choose a suitable program, see the final Appendix section.

Highlighted resources: PowerPoint (under 1st section), Praat, and DMDX (both under 2nd section) are the most popular.

For useful online resources for designing phonetics experiments, see the Data and Resources section on the Web Portal page.


+

Point-and-click interfaces

-

Point-and-click interfaces

Presentation software

  • Operating system: All major operating systems (depending on the program)
  • Description: The lowest-tech option is to simply treat the experiment like a presentation for a class or a conference. For a production experiment, you can display the word(s) the participant should read in large font in the center of each slide. For a perception experiment, you can add a soundfile to each slide that play as soon as the slide is displayed, and have the participant type a response or move objects to indicate their response. Of course, given its limited capabilities, presentation software is only suitable for very basic experiments.
  • Specific programs:

ProRec

  • Operating system: Windows only
  • Description: ProRec ('Prompt & Record') presents timed visual text prompts (e.g. a word or a sentence) to the participant for them to read out loud and records their speech back to disk from a microphone. ProRec saves a 'prompts time' text file along with the recorded audio file, thus indexing the individual tokens in the recording (thus potentially saving post-processing time, especially if automated by a script).
  • Homepage: http://www.phon.ucl.ac.uk/resource/prorec/

OpenSesame

  • Operating system: Windows, Mac, Linux
  • Description: OpenSesame is a graphical experiment builder, providing a modern point-and-click user interface for creating experiments. This allows you to build complex experiments with minimum effort. OpenSesame can both play back soundfiles stored on your computer as well as synthesize sounds on the spot.
  • Homepage: http://osdoc.cogsci.nl/

PsyScope X

  • Operating system: Mac only
  • Description: PsyScope X is a graphical user interface (GUI) software program that allows researchers to design and run experiments without the need for programming. The standard components of a psychology experiment – groups, blocks, trials, and factors – are all represented graphically, and experiments are constructed by working with these elements in interactive windows and dialogs. In addition, scripts can be written in the underlying scripting language in order to add custom functionality. See the Wikipedia page for more details.
  • Homepage: http://psy.ck.sissa.it/

MouseTracker

  • Operating system: Windows only
  • Description: MouseTracker allows you to record a participant's hand movements traveling toward response alternatives on the computer screen via the [x,y] coordinates of the computer mouse. Once recorded, mouse trajectories can be visualized, averaged, and explored, and measures of attraction/curvature, complexity, velocity, and acceleration can be computed. This makes it possible to look at the dynamics of how participants' hand movements settle into a response alternative (and how they may be partially pulled toward other alternatives), yielding valuable information about real-time cognitive processing.
  • Homepage: http://psych.nyu.edu/freemanlab/mousetracker/

PsychoPy

  • While PsychoPy is based on the Python language, it also has a point-and-click interface (known as 'Builder'). Since this makes it possible to build an experiment without writing any Python code by hand, this is a viable option even for people with little to no programming background. For more information on PsychoPy, see its entry under Scripting in Python below.

+

Mini scripting languages for experiment-building

-

Mini scripting languages for experiment-building

ExperimentMFC in Praat

  • Operating system: Windows, Mac, Linux
  • Description: The popular phonetics software program Praat has the capability to run Multiple Forced-Choice (MFC) listening experiments (i.e., the subject is presented with several options and must choose one of them). A wide variety of functionality is supported, such as carrier phrases, goodness judgments, replay buttons, and stimulus-dependent text prompts. Experiments are built this way by creating a script file using a special scripting language within Praat specially for this purpose. This can be done relatively easily by adapting the templates provided in the detailed ExperimentMFC documentation in the Praat manual.
  • Homepage: http://www.fon.hum.uva.nl/praat/

DMDX

  • Operating system: Windows only
  • Description: DMDX (DisplayMaster DirectX) is a software program designed for measuring reaction times to visual and auditory stimuli. Scripts are written in a special scripting language inside a Rich Text Format (RTF) file, which DMDX parses to run the experiment. While the DMDX program itself is no longer in actively development, it is still very popular, and new information is occasionally posted to the updates page and help pages. See the resources page of IU's Second Language Psycholinguistics Lab for several how-to tutorials.
  • Homepage: http://www.u.arizona.edu/~kforster/dmdx/dmdx.htm

Psychology Experiment Building Language

  • Operating system: Windows, Mac, Linux
  • Description: Psychology Experiment Building Language (PEBL) is a simple programming language tailor-made for creating and conducting many standard experiments. Experiments are created by a simple scripting language for creating displays (graphics, shapes, text, etc.), collecting responses (mouse and keyboard), experimental design (randomization and counterbalancing), and data recording. For more information, see the Wikipedia page.
  • Homepage: http://pebl.sourceforge.net/

FLXLab

  • Operating system: Windows, Mac, Linux
  • Description: FLXLab is a program for running computer-based experiments by writing short scripts in a custom scripting language. It can present stimuli in the form of graphics, text, or sound and can record responses to those stimuli - either manual (i.e., pressing a key) or verbal. Reaction times can be recorded via the keyboard, joystick/button box, or a voice key.
  • Homepage: http://flxlab.sourceforge.net/

PsyToolkit

  • Operating system: Linux (plus limited support for Windows and Mac)
  • Description: PsyToolkit is a free software package for programming and running experiments through writing scripts in a simple scripting language. Emphasis is placed on precise timing of stimulus presentation and data collection. While originally designed for Linux, experiments can be compiled into Java code which runs on Windows and Mac, but this imposes limitations in terms of functionality and timing accuracy. For more information, see the Wikipedia page.
  • Homepage: http://psytoolkit.gla.ac.uk/software/

+

Scripting in Python

-

Scripting in Python

PsychoPy

  • Operating system: Windows, Mac, Linux
  • Description: PsychoPy allow the presentation of stimuli and collection of data for a wide range of experiments. Experiments are generated by writing Python scripts, allowing for precise control of the fine details of the experiment. An integrated development environment (known as 'Coder') assists in writing scripts. For more information, see the Wikipedia page.
  • Homepage: http://www.psychopy.org/

Expyriment

  • Operating system: Windows, Mac, Linux
  • Description: Expyriment is a lightweight Python library for designing and conducting of timing-critical experiments. It handles stimulus presentation, the recording of input/output events, communication with other devices, and the collection and preprocessing of data. The hierarchical design structure allows for an intuitive transition from the experimental design to a running program.
  • Homepage: http://www.expyriment.org/

PyEPL

  • Operating system: Mac and Linux only
  • Description: PyEPL (Python Experiment-Programming Library) is a library for coding experiments in Python. It supports presentation of visual as well as auditory stimuli. Responses can be either manual (keyboard/joystick) or sound (microphone) input.
  • Homepage: http://pyepl.sourceforge.net/

OpenSesame

  • OpenSesame supports adding in-line Python scripts and even includes a built-in editor with syntax highlighting. For more information on OpenSesame, see its entry under Point-and-click interfaces above.

+

Scripting in MATLAB / GNU Octave

-

Scripting in MATLAB / GNU Octave

Psychtoolbox

  • Operating system: Windows, Mac, Linux
  • Description: The Psychtoolbox (PTB) is a comprehensive package of functions for conducting experiments from within MATLAB. GNU Octave, the free alternative to MATLAB, is also fully supported. Psychtoolbox has a large user base (with well over ten thousand active users), has an active forum, and is highly cited. For more information, see the Wikipedia page.
  • Homepage: https://docs.psychtoolbox.org/Psychtoolbox

MonkeyLogic

  • Operating system: Windows only
  • Description: MonkeyLogic is a MATLAB toolbox for the design and execution of experimental tasks with high temporal precision. It uses a graphical user interface for setting and saving a variety of task-related configuration parameters. During task execution, you can see an information-rich display of behavioral performance and within-trial events. Behavior can be followed over the Internet, and commands can be submitted remotely to alter the execution of the task.
  • Homepage: http://www.brown.edu/Research/monkeylogic/

Cogent 2000

  • Operating system: Windows only
  • Description: Cogent ("Cognitive Objects within a Graphical EnviroNmenT") 2000 is a MATLAB Toolbox for stimulus generation, presenting stimuli, and recording responses with precise timing. It provides utilities for the manipulation of sound and the collection of subject responses via keyboard, mouse, joystick, or other hardware.
  • Homepage: http://www.vislab.ucl.ac.uk/cogent_2000.php

+

C / C++ programming

-

C / C++ programming

Tscope5

  • Operating system: Windows, Mac, Linux
  • Description: Tscope5 is a C/C++ library that provides several groups of functions for experiment programming. A set of 'stimulus output functions' controls display, graphics, drawing, bitmaps, text, audio, and video. Another set of 'timer functions' controls mouses, keyboards, joysticks, response boxes, parallel ports, and serial ports. Other functions exist for randomization and interfacing with the operating system.
  • Homepage: http://users.ugent.be/~masteven/tscope5/index.html

PsyToolkit

  • PsyToolkit is normally used via its scripting language, but it also comes with a C library. The scripting language is translated into editable C code, which then in turn is compiled into an executable using the GNU C compiler. For more information on PsyToolkit, see its entry under Mini scripting languages for experiment-building above.

+

Java programming

-

Java programming

Tatool

  • Operating system: Windows, Mac, Linux
  • Description: Tatool is a 'training and testing tool' for experiments. In addition to a graphical user interface, there is also an API with classes and methods that are useful for building experiments. The different components of an experiment can be configured by simply modifying an XML file. Experimental data can be managed online with Tatool Online.
  • Homepage: http://www.tatool.ch/

PXLab

  • Operating system: Windows, Mac, Linux
  • Description: PXLab is a collection of Java classes and applications for interactive experiment design. Built-in tools are available for editing the plain-text 'design files' that specify the parameters of the experiment. Experiments can run as local applications or as HTML-embedded applets using the same design file. A run time control system is included to achieve precise timing through optimized use of accelerated video memory.
  • Homepage: http://irtel.uni-mannheim.de/pxlab/index.html

PsychJava

  • Operating system: Windows, Mac, Linux
  • Description: PsychJava is a toolbox for programming experiments in Java. It uses Java syntax, so it requires at least some programming knowledge of Java, but it is designed to be easy, intuitive, and simple.
  • Homepage: http://psychjava.com/html/

+

Software for running experiments online

-

Software for running experiments online

jsPsych

  • Operating system: N/A
  • Description: jsPsych is a JavaScript library for creating and running experiments online in a web browser. It provides a set of plugins that define different kinds of tasks a participant could complete during an experiment. By assembling different plugins together and customizing the parameters of each, it is possible to create many different types of experiments.
  • Homepage: http://www.jspsych.org/

SoPHIE

  • Operating system: N/A
  • Description: SoPHIE (Software Platform for Human Interaction Experiments) is a completely web-based platform for running experiments. It provides the flexibility to use the broad variety of web technologies integrated into modern web browsers. Researchers can use ready-made building blocks for simple experiments but can also extend SoPHIE using PHP. You can either install it on your local computer, use a centralized installation at IU, or use a professional hosting service.
  • Homepage: http://www.sophie.uni-osnabrueck.de/

WebExp

  • Operating system: N/A
  • Description: WebExp (Web Experiments) is a set of Java classes for conducting experiments over the Internet. It provides control over timing, subject responses, and faulty data. It is optimized for experiments based on a sequential, questionnaire (stimulus/response) framework, but it provides for the specification of experiments and thus is not restricted to any particular paradigm.
  • Homepage: http://www.webexp.info/

Other software

  • Other Java-based software: Since a Java application can be embedded in a website, see the Java programming section above for three other programs that can be used to conduct experiments online (Tatool, PXLab, and PsychJava).
  • PsyToolkit: The online version of this program can be used to program and run experiments from within a web browser. For more information on PsyToolkit, see its entry under Mini scripting languages for experiment-building above.

Additional resources

  • Paying subjects: Amazon Mechanical Turk is a widely-used platform for compensating participants in online experiments. To streamline the process of creating and running experiments on this service, see psiTurk.
  • Collecting demographic information: The Language History Questionnaire service allows you to design an online questionnaire about your participants' linguistic backgrounds and have them complete it before they come in for your experiment.

+

List of commercial software

-

List of commercial software

While the focus on this webpage is on software that can be acquired for free, under certain circumstances it might be desirable to pay the necessary fees to use a commercial software package. Purchasing a license has the advantage of giving one access to personalized customer support. The major programs of this type are listed below in alphabetical order along with their vendors. Many of the programs listed here have a free trial version as well as an educational discount if you purchase the product.


+

Appendix: Design and organization of this page

-

Appendix: Design and organization of this page

Inclusion criteria:

  1. The section 'List of commercial software' enumerates the programs ones requiring you need to pay money for in order to access the full version. All other programs listed on this page are free (or can be obtained for free by IU students).
  2. All software listed here must have undergone some form of development within the last several years. (Thus, obsolete programs like Psych/Lab are excluded).
  3. The software must have functionality for experiments beyond a simple questionnaire service (e.g. SurveyMonkey, SurveyNuts, or similar).

Organization into categories:

  • The software resources are grouped into categories (forming the collapsible sections of the page), ordered roughly from least technical (i.e. accessible to beginners) to most technical (requiring strong programming skills).
  • For beginners, the first two ('Point-and-click interfaces' and 'Mini scripting languages for experiment building') are recommended.
  • If you are comfortable using a programming language, you should look at the other sections lower down. The languages covered on this page, in order, are Python, MATLAB, GNU Octave, C, C++, Java, JavaScript, and PHP. (Further information about how you can learn Python and MATLAB at Indiana University can be found on the acoustics page.)

Choosing the right program:

  1. First, check to make sure that the software runs on the Operating System you normally use (Windows/Mac/Linux).
  2. Second, read the program's Description to learn about its core features and how it is different from other similar programs. (The descriptions that appear on this page are paraphrased directly from explanations of the software found online.)
  3. Third, follow the link to the Homepage and read more information about it to determine if meets your needs. You might also consider the amount of documentation and support available for it (manual, tutorials, examples, forums, mailing lists, etc.).

Finally, note that while most of the programs listed here were originally designed for experimental psychology, they are often equally useful for experimental phonetics. As such, don't be scared off just because a program has 'psychology' in its title or the documentation/website seems to be geared toward other fields like neuroscience or vision science.