PSYSCOPE X NOTE: This guide is intended for the classic version of PsyScope that runs in Mac OS 9. There are some subtle changes in the new version of PsyScope for Mac OS X, although for the most part, the scripts are 100 percent compatible.
Before designing an experiment using PsyScope, it is important to understand the basic concepts and limitations of the program. The purpose of this guide is not to make a PsyScope expert out of you, but is intended to provide you with the necessary information for modifying existing scripts and in creating and editing lists that can be substituted into existing scripts.
To begin, here is the experiment view of a cued-shadowing experiment that flashes text on the screen in the middle of a sentence. The subject is to hit a button indicating if the text is a word or non-word.
In the design view below, you can see that there are three blocks attached to the experiment. The first displays a title screen and waits for a key or button press to begin the experiment. The next block runs a series of trials defined by the template. The third block simply displays a prompt on the screen to press a key to exit the experiment.
It is important to note that the position of the icons in this window does not define the order of events. You must open up the experiment, block and template icons to define the order of blocks, templates, events, etc.

Events are the objects that present the pictures, text and sounds in your experiment. The most common events are:
| Text - a word or words in any font and size displayed at any position on the screen | |
| Sound - a SoundEdit 16 sound file, 16-bit, 22KHz or 44KHz | |
| Picture - a Macintosh PICT graphic file, from 1-bit (black & white) to 24-bit (photo-quality) | |
| Time - a delay in milliseconds |
Events are attached directly to blocks or templates and are arranged within the block or template to produce a trial.
PsyScope events have two sets of attributes known as "stimulus attributes" and "event attributes". Double-click an event object to access these attributes.
Stimulus attributes define the physical properties of the event. For example, the stimulus attributes of a text event include the actual text to be displayed, font, size and color information and the position on the screen to display the text. Because time events do not have any physical properties, they do not have any stimulus attributes.
Event attributes define the actions of an event including the duration and the collection of reaction times.
A template is the definition of a trial. Events are strung along in a timeline within a template to produce a single trial. In most cases, your experiment will have only one template since you are repeating the same series of events (show picture, collect response time). Templates can be set to run repeatedly by changing the value of "trials in block" within the block definition.
Double-click a template to view the events associated with the template.

In this sample experiment, you can see that two events, TrialCountEvent and Sound1, run at the beginning of the trial. TrialCountEvent displays a trial counter at the bottom of the screen to indicate the current trial number. Sound1, Text1, and Sound2 make up the pre-sentence, target word, and post-sentence presentation. The ManualPause event is floating out in space because it is not scheduled to run at any particular time. It is, however, tied to a trial action associated with the template so that it displays a pause message on the screen when the mouse button is clicked. The pause message stays on the screen until the mouse button is clicked again. This manual pause is an advanced PsyScope procedure. It is presented here to show you that it can be done.
Clicking an event in the Template window will describe details related to the timing of the event in the bottom section of the window. For example, clicking Text1 will indicate that it starts "0 milliseconds after the end of Sound1". You could easily change this to "0 milliseconds after the start of Sound1" to make them run simultaneously. The duration information is also displayed and can be changed in this view.
External lists (meaning they are not part of the actual PsyScope script) are tab-delimited text files. Each row contains information used in one trial. You define columns to contain your stimuli to be used (name of text, picture, sound file, etc.), condition codes, and other tidbits of information related to the trial.
Make sure your list does not contain any items with spaces since PsyScope separates columns on any white space, not just tabs. If you do need to use spaces, make sure your items containing spaces are between quotes ("").
A simple list looks like the one shown here.
| 1 | 91spre | flies | 91spost | unaltered | congruent | unaltered |
| 2 | 209spre | stove | 209spost | unaltered | congruent | unaltered |
| 3 | 191spre | clock | 191spost | unaltered | incongruent | unaltered |
| 4 | 90spre | bus | 90spost | unaltered | incongruent | unaltered |
| 5 | neupre | noise | neupost | unaltered | congruent | unaltered |
| 6 | neupre | turtle | neupost | unaltered | congruent | unaltered |
| 7 | 36spre | diver | 36spost | altered | incongruent | compressed |
| 8 | 3spre | "apple pie" | 3spost | altered | incongruent | filtered |
| 9 | 165spre | socks | 165spost | altered | congruent | compressed |
| 10 | 10spre | jacket | 10spost | altered | congruent | filtered |
| 11 | neupre | dress | neupost | altered | incongruent | compressed |
| 12 | neupre | moon | neupost | altered | incongruent | filtered |
In this list, which is used in the sample experiment view below, the columns are defined as this:
| column | meaning |
| 1 | list ID number |
| 2 | lead-in sound file |
| 3 | visual target |
| 4 | lead-out sound file |
| 5 | alteration of sound files |
| 6 | sentence context |
| 7 | type of alteration done on the sound |
Column 1 is used for tracking and sorting purposes. It is not used by the script, but it is passed on through to the data file.
Columns 5 and 6 are also not used by the script, but are passed through to the data file for data analysis purposes.
Columns 2 and 4 are used by the script to play the first and last part of the sentence.
Column 3 is also used by the script. It is the actual word that appears on the screen.
Column 7 indicates the type of sound alteration and is also used by the script to pull the sound files.
To define your list, you need to double-click the list icon to open the list window. Click the "Set..." button to open your list file. You then need to define each of the columns by clicking the "New" button and naming each of the columns. The names of the columns should describe their purpose. The 'L' preceding each field name here is not necessary. These are here for making searches within the script easier. These field names are used as block attributes which are similarly named with a 'B'. To make sure your list file is formatted properly, click the "View Values" button. This will open up a table as shown below. If your list has formatting errors (spaces, missing items, etc.), you be able to identify these problems easily by scrolling through the list. In all cases, you should keep the item order set to sequential. If you want to randomize your trials within your block of trials, set this randomization in the block, described below. |
![]() |

This is an example of what happens when quotation marks are missing from an item that contains a space. Note that "apple pie" has been split into two separate columns. It is important to use quotation marks around anything with spaces and other special characters.
If you find errors of this sort, you must close both list windows before opening the list in a text editor to make changes. After fixing the problem, you can double-click the list icon and click View Values again to reload in the modified list.
After confirming the list has no problems, note the number of rows by scrolling all the way to the bottom of the list. The number of items is the number of trials your block will have. Set this in the Blocks section below.
Excel Tip: If you have an entire column of fields that have items that contain spaces, use the function (in an adjacent cell) =CONCATENATE("[", A1, "]"), replacing A1 with the appropriate field. You can then copy and paste that in your entire column. When you save the file as text, you can then replace all occurrences of "[" and "]" with """.
It is not necessary that lists be attached to blocks. In fact, most scripts you will find will have lists attached directly to templates. Attaching lists to blocks makes scripts much more modular. Without going into the gory details, attaching lists and using Block Attributes (described below) is the only way you can easily copy and paste templates from one script to another, and it is the only way you can attach one template to multiple blocks if you want to split up your lists into groups in order to counter-balance certain items.
[more details will be provided in an advanced PsyScope guide coming soon!]
Double-click the block icon to change the number of trials, set up block attributes and to control how items are pulled from lists. The number of trials should be set to the number of trials which is also the same number of rows in your list as you observed above. If this number is larger than the number of rows in your list, there will be duplicate trials in your experiment. |
![]() |
PSYSCOPE X NOTE: Unfortunately, this is not functioning yet. In order to randomize your stimuli, it is recommended to pre-randomize your lists. Click the Lists button to set the way the items are pulled from your list. Set Cross to "Within" and set Access to either "Sequential" or "Random". If you want to use score sheets where you know in advance the items will appear on the screen, you must set Access to "Sequential". In this case, you may want to pre-randomize your lists so that the trials appear to be random. Still, even with this method, every subject will see the same items in the same order. |
![]() |
Click the Attributes button to define your block attributes. In most cases, these will be the same as the field names in your list. These attributes are used to control the stimuli displayed by your events.
Double-clicking this will allow you to rearrange the order of the blocks. If you add a block to your script, it will automatically be added to the end of the block list. You will need to grab the new block in the list and move it above BlockE in this example so the last block that runs is the one that says "press a key to exit". This is a quick way to make sure the number of trials is set correctly in all your blocks.
Now you have enough knowledge of how a PsyScope script is put together. It's time to sit down and think about how your experiment will run.
From this point on, you should consult with your local PsyScope scripting genius. It is likely that there is already a script in his or her vast library that, with a few modifications, will do exactly what you want.