Staircase Procedure for E-Prime
Release 1.2
Developed by W. David Hairston Ph.D, in conjunction with the XMODAL and ANSIR Labs at Wake Forest University

Update 8/18/08 - version 1.2.1

- Added variable "UpDownRatio" - specified in the Paramters inline, this allows the user to choose a ratio between the sizes of "up" and "down" steps. E.g., value of "2" makes "up" steps (those made following an incorrect decision) 2x the size of "down" steps (those following a "correct" decision.

- Added a note in the text surrounding "NumReversalsToAverage" suggesting that the value chosen by experimenter should be even (helps balance weight of final values)

-*working* on additional examples using alternate rules (3 down, 1 up, 3 down, 2 upe, etc). To be included in a later release!

Update 8/7/08 - version 1.1
Fixed minor bug, improper reference of object name prevented compiling/running preoprly.


The E-Prime script contained in this folder provides an example of a simple self-adjusting staircase procedure.  It was developed in E-Prime 1.2, and currently has NOT been tested in version 2.0 – however there are no known reasons why it might not work.

This description and implementation is based on the assumption of basic familiarity with staircase procedures. For the “seminal” reference, see Levitt ’71, “Transformed up-down methods in psychoacoustics”.


The “Parameters” Inline script, near the beginning of the primary procedure, allows declaration of all of the usual parameters of a psychophysical staircase.

Experimenter-defined variables include:
NumStairs – define the number of staircases to run. They will incre\iment independently of one another. *note this can be any number, but must not exceed what is listed in the main List object.
StepSize – this is the size of the steps at the beginning of the procedure. They can get smaller later.
Target(i) – this is the initial value the procedure will begin with. Each (i) represents a different staircase.
Min/MaxTarget – denote the min/mum allowable value that Target can become. In many cases (e.g., durations) min will be 1 or higher.
MaxReversals – the total number of response reversals per staircase re the procedure will terminate.
NumReversalsToAverage – as each staircase completes, it will calculate an average across the next X number of  reversals in response.
RvrslStep2  -  Number of reversals before decreasing step size the first time
StepSize_2  - Distance between steps after changing the first time
RvrslStep3 - Number of reversals before decreasing step size again
StepSize_3 - Distance between steps after changing the second time

This procedure employs a simple 2-down,1-up rule; each incorrect response INCREASES the target value by 1 step, while 2 consecutive correct responses must be made before the target is DECREASED by 1 step.

During operation, information regarding the status of each variable is printed to the E-Studio Debugger window. This is very useful for tracking subjects on-line. Additionally, a tab-delineated text file is written. It is entitled “Staircase” + subject ID + session ID.dat.

Use in other paradigms

This is designed to be easily copied and integrated into many other types of paradigms developed within E-Prime.
To copy the existing example into a new paradigm, you may simply use the Windows Copy/Paste functions. Copy, IN ENTIRETY, the following 4 components:
1 – the Parameters Inline script
*This must be placed early in your main procedure, before any other copied components
2 – the Definitions Inline script
*This needs to be placed at the beginning of the procedure that contains the stimuli being varied
3 – the Staircase Inline script
*This is usually best placed at the end of your trial procedure (with Definitions)
4 – the “user” primary Script  (viewed by pressing “Alt+5” or selecting from the View drop-down menu. This contains all of the variable declarations for the above sript to function properly.

That should be it….

Example Paradigm

The provided script is embedded within an example auditory psychophysics experiment.
In this example, subjects perform a simple auditory temporal-order-judgment (TOJ) paradigm. Two tones are presented; they report which comes first, the high tone (660 Hz) or low tone (440Hz).
Here, the staircase is used to adjusted the SOA between tones on each trial. Correct responses lead to shorter SOA, while incorrect responses lead to longer SOA.
To make implementation simple, the sound files have been pre-recorded, and the procedure adjusted the Filename variable of the SoundOut object… filename “LH132.wav” is low tone-high-tone wit ha 132 ms SOA, and so on.
In this example, 3 staircases are run, and collapse across “high-first” and “low-first” conditions. Note that this is reflected in the ToneList List object, which contains 6 items, but the “staircase” value is replicated for every two conditions so that only 3 are used.
Any number of staircases may be used; however, the total cannot exceed what is listed in this object.


If you use this procedure in a published manuscript, PLEASE reference the following paper (I'm not getting any $$ from this, referencing is all I ask!!):

Hairston, W.D. and Maldjian, J.A. (2008) An adaptive staircase procedure for the E-Prime programming environment. Computer Methods and Programs in Biomedicine,  doi:10.1016/j.cmpb.2008.08.003

At the moment it is only in "e-pub" status, but surely a hard-page reference will be available shortly.


Development of this software is a side-project, and will be updated only on rare occasions. If you find bugs or glitches, please feel free to inform me, and I will attempt to address them. However, no additional development is planned at this time.

If you find this tool to be useful, send me a postcard. Nice way to see the world on the cheap.

*please note the address change below*


Dr. W. David Hairston
Research Fellow
Oak Ridge Affiliated Universities

Auditory Research Team, VAP,
HRED B-520
Army Research Lab
Aberdeen Proving Ground, MD 21005