This book has two parts. The first part (Chapters first--exvars) describes general features of programs that are based on the \sf Psychological Experiments Library, called PXL. The second part (beginning with Chapter apc) describes a collection of experiments which are applications of the library functions.

Chapter first gives an overview by example on the common features of psychological experiments based on PXL. The rather general view of experimental variables is explained in this chapter together with the sequential pattern that makes up the basic frame of every psychological experiment. Blocks and trials are introduced as the internal units of an experimental session. The whole chapter is based on an introductory example from visual sensory memory research.

In Chapter defs we go into the details of the language that is used by PXL to control an experiment. This language has some similarities with popular programming languages and thus should be easy to understand. However, controlling experimental sessions requires some concepts that are rather special so we have to explain them in detail. The complete grammar of PXL's definition language is given in Appendix Grammar in a modified version of Backus-Naur form.

Section expansions deals with the various ways that may be used to specify repetitive actions in PXL. Since PXL allows rather short notations of more or less complicated block and display sequences, there are several features available for expanding shorthand notations. Another sequential feature is random ordering that may be requested for the trials within a block. Usually an experiment takes more than one session. Thus PXL contains a special feature that makes continuation automatic. This is treated in Section Continuation.

Each PXL program has several options and some special behavior that may be controlled by the command line. Chapter run describes how to run a program and what options may be used to control various modes and hardware dependencies.

Experimental programs need files for getting their parameters. There are system wide initializations as well as local defaults. There also are data and protocol files giving a complete description of everything that happened during a session. Everything about these files and the way their names are derived is described in Chapter files.

The development of PXL was started and tested by some fully equipped experiments for color perception. An outgrowth of this is a set of library functions that deal with colors given in standard CIE chromaticity coordinates. These functions and PXL's graphics abilities are described in Chapters graphics and colors. Chapter graphics also explains the various graphics modes that can be used on SVGA graphic adaptors and describes PXL's available fonts and how they are selected.

Response timing is a common thing in modern psychology. Chapter timing describes how timing and response event detection is handled by PXL programs.

Many psychological experiments use adaptive methods, especially if they are computer controlled. PXL provides some rather sophisticated functions for dealing with adaptive stimulus presentation. They are described in Chapter adaptive. This chapter contains a general introduction into the way adaptive procedures may be handled by PXL as well as a precise specification of the types of procedures implemented in PXL.

Experiments that use PXL will be rather similar, thus there exist many predefined experimental variables. Anything that someone may ever want to change in the behavior of a PXL program is controlled by an extensive set of parameters. All the predefined parameters may be changed by any application, and all of them are explained in Chapter exvars.

The second part of this book starts with Chapter apc. This part contains a collection of applications. Each description has several sections. The introduction section gives a short overview of the major program features. This includes the main questions that may be investigated with the program, the independent and dependent variables that exist and the methods that are used. This section also gives references to published experiments that are similar to the application with respect to the psychological questions investigated or the experimental methods used.

The experimental parameters section exactly describes the function of each parameter used in the application. Each description finally contains examples for valid and nontrivial parameter files, that use most of the features built into the program.

Program documentation takes time and hardly ever results in any reward for the one who does it. This is especially true for public domain programs. So please keep in mind that this documentation may not be up to date and do not get angry if the program does something different then expected from the documentation. The final word always is the source code itself.

Every program contains at least one more error and the time to find an error increases exponentially with the errors already found. So if you are the one who finds the next one, please report it to me via e-mail at
Comments and hints are welcome also.

The PXL library would not exist if I did not have access to numerous sources of public domain code. I have used these extensively and am grateful to all those people who give the sources of their programs to the public. Of course I am the only one who is to blame for all the errors in my programs.


\makebox[\textwidth]H. Irtel (Mannheim, April 1995)
Back to table of contents

Author: Hans Irtel