Tachistoscopic Character Displays

The icon program has been developed to run iconic memory experiments. It has, however, evolved into a rather general program for tachistoscopic character displays. The program shows a set of characters on the screen for a short time, typically less than 200 milliseconds. With one exception the displayed set of characters contains at least two subsets which are specified by different characteristics of the display:

With a certain delay after the display has been switched off there is a cue that tells the subject which one of the subsets in the display has to be reported. The cue may either be an optical signal in the display or an acoustic signal that has been assigned to one of the display subsets in the instruction. Immediately after the cue the subject has to report the requested subset by typing in the respective characters. In order to control visible persistence of the character display there may also be an optical mask immediately after the character display or with a certain delay.

The original iconic memory experiment by Sperling (1960) uses a 50 millisecond display of a matrix of at most 12 characters arranged in up to 4 rows and up to 7 columns. With an ISI between 0 and 1000 ms there is an acoustic cue whose pitch tells the subject which one of the rows to report. This is called the partial report procedure. The baseline of a subject's ability is provided by the whole report procedure, where there is no acoustic signal and the subject has to report the complete display. An important modification is used by Sperling (1963). In this experiment there is a mask presented with a certain delay after the character display is erased. The mask is a random pattern that immediately destroys the visual image.

Several experiments have varied the type of partial report that is required. Sperling (1960) used single rows as subsets to be reported. Averbach (1960) used a single character marked by an optical cue. Von Wright (1972) used different properties of characters to define subsets for a partial report. Besides Sperling's method to report single rows he used colors as a visual cue and a letter vs digit classification as a semantic cue.

Program Features

The icon program may be used to replicate any of the above mentioned experiments. The special properties of each type of task are controlled by experimental parameters. Here is an overview of icon's features and the parameters that control them.

The Display Matrix

The character matrix has several parameters that control how it looks like. targetset is a string that contains the character set to be used. The actual character matrix is a random sample from the characters in targetset. distractorset is the set of distractor characters that may be used for a letter vs digit selection experiment. In this case letters are drawn from targetset and digits from distractorset only. The selection process from the given character sets is random such that for each position each character in the set has the same probability to be drawn. The font used to write the characters is textfont and the character size is given by textsize. The number of rows in the display matrix is rows, the number of columns is columns. The distance of the baselines for different character lines in the display is rowdist and the horizontal character distance is coldist. If the flag C is set, then there may only be one row which is displayed at circular positions. The radius of the circle is given by radius. targetcolx, targetcoly, and targetlum define the color and luminance of the target characters and distcolx, distcoly, and distlum define the color and luminance of the distractor set characters. bgcolx, bgcoly, and bglum are the color and luminance of the background.

Fixation Marks and Message Text

There are two different types of fixation marks available. One is a cross at each character position of the matrix, the other is a single mark at the center of the matrix. The first type is requested by setting the flag F, the second one by clearing the flag to f. The fixation mark size is given by fixmarksize, its luminance is fixmarklum, and its color is bgcolx and bgcoly. Message text is written in the same font as the character display matrix. Message text size is msgsize and the color is bgcolx and bgcoly. The message text luminance is msglum.

The Visual Mask

The visual mask that may be used to destroy the icon is displayed if the flag M is set. If the flag is cleared to m no mask is used. The mask is composed of all characters in the string maskset written to the same position on the screen. Its color and luminance is given by maskcolx, maskcoly, and masklum. The delay time between character display offset and mask onset is maskdelay. The size and font of the masking characters are equal to those of the target characters. The mask is shown for masktime milliseconds.

The Cue

The selection cue may either be an acoustic signal whose pitch in Hz is given in the variable soundsigs or an optic spot that marks a single character. Note that soundsigs has to be range valued since there has to be at least one pitch value for each selection subset. The optical cue consists of a solid circular spot with radius cuesize, color cuecolx, cuecoly, and luminance cuelum. The distance of the cue from the character which is marked is cuedist. This may be negative in circular displays such that the mark is inside the character circle. The optic mark is used if the flag V is on. It may only be used with single character selection or with the whole report procedure. In this case there is a optic mark for each character.

The delay between character display offset and cue onset is given by cuedelay. This may also be a negative number if the cue should be switched on before the display is switched off. The cue signal duration is cuetime.


Each trial is started by the subject. This is done by first pressing and then releasing one of the response keys. The time between the subject's release of the response key and the appearance of the character matrix or the start of the cue, whatever comes first, is sigwait. The characters are visible for dsptime milliseconds. cuedelay is the time between the character matrix offset and the cue onset. The cue duration is cuetime. The time between the character matrix offset and the visual mask onset is maskdelay. There is an empty pause intervall of responsedelay milliseconds between the display and the response collection, indicated by the appearance of the graphic cursor. Note that there is one special thing to take care of in specifying the timing parameters. All displays of icon have to be synchronized to the video display system. This means that all times effectively are integer multiples of the video frame time. The time for a single video frame is measured by icon and stored in the variable frametime. Thus the data file may be consulted to figure out the actual frame duration. Critical time values like dsptime, cuedelay and maskdelay are rounded by icon to the nearest available integer multiple of frametime.

Response Collection

After the display the subject has to type in the response into a response matrix which has the same appearance as the display matrix. The cursor keys may be used to move the cursor in the matrix and the space bar may be used to clear a character position. For experiments that request the subject to only report a single row or column of the display only a single row or column is available. Cursor movements wrap around the end of the input matrix horizontally and vertically.

The subject's response is returned in the string array answer and the display matrix is put into the string matrix. In the case of single line selection, colored stimulus subsets, and single character targets, the non-target set is indicated in the data protocol by having its character case inverted compared to the original case in the targetset and distractorset string. The variable eval codes the number of correct responses. A response is correct only if character andposition are correct.

Some experiments may want to use strange characters for target and distractor sets such that it is too difficult to type them in on the keyboard. For this reason the exists chartrans. This is a string of translation character mappings. It makes it possible that the subject types in some standard characters on the keyboard which then are translated and echoed as different characters which are not available on the keyboard. It also may be used to map lower case input to upper case echo.

What Type of Task

The type of experiment is defined by the variable task. Table icontask contains the possible task type values.

Insert Table icontask here.

Experimental Parameters

answer (string)
The response string of the subject. Its size is equal to the display matrix but unrequested character positions contain blanks.

bgcolx , bgcoly , bglum (float)
Screen background color.

textfont (string)
Test character font name.

textsize (int)
Test character size.

chartrans (string)
Keyboard input character translation string. The string contains a sequence of character pairs. During the subject's keyboard input the first character of a pair represents a key typed in by the subject and the second character in the pair is the character echoed on the screen. Thus the assignment
   chartrans = "aAbBcCdDeEfFgGhHiIjJ"
leads to a translation of lower to upper case for the first ten letters of the alphabet (note that conversion to upper case is more easily handled by the flag U).

choiceposx , choiceposy (int)
Position of the choice string in case there is a choice string display.

choiceset (string)
This string is displayed as a choice set for the subject to chose her response from.

coldist (int)
The horizontal distance of characters in the display matrix.

columns (int)
The number of columns in the display matrix.

cuecolx , cuecoly , cuelum (float)
Optic cue color and luminance.

cuedelay (int)
Time between the display offset and the cue onset.

cuedist (int)
Distance of cue spot from the marked character position. May be negative in circular displays.

cuesize (int)
Radius of the dot that makes the visual cue.

cuetime (int)
Duration of the cue signal.

distcolx , distcoly , distlum (float)
The CIE xyL-coordinates of the distractor character set.

distractorset (string)
The available digits.

dsptime (int)
Display duration of the character matrix.

eval (int)
Number of correct responses in the response string.

feedbackmsg (string)
Feedback format string. This string is printed below the character matrix during feedback. If it contains the substring %d the these two characters are replaced by the number of correctly reported characters.

feedbacktime (int)
Duration of feedback of the character matrix.

fixmarklum (float)
Fixation mark luminance.

fixmarksize (int)
Length of the lines in fixation marks.

flags (string)
These flags are available.

Give an acoustic cue.

Indicates that the correct display is shown after the response as a feedback in case of binary responses. Clearing the flag tells icon to omit the feedback.

Use a circular display of characters instead of horizontal rows. Note that rows has to be 1 in this case. columns gives the number of characters in the circle.

Use F to get a fixation mark at each character position and f to get a single fixation mark at the display's center.

(Hidden feature: each character may have its own color).

Accept only completely filled character matrices as response. If this flag is set then the subject must not leave empty positions in the response matrix. If the flag is clear there may be blanks in the response matrix.

Use M to get a visual mask after the character display and m to prevent the mask display.

Only present stimuli, do not ask for a response.

Get the display character string from the parameter file. If the flag is set then the trials should contain the string matrix withe then actual characters to be displayed. If the flag is clear than the display set is sampled from targetset.

Randomize character positions.

Requests randomized values for target. If R is set then icon selects target values at random and enters them into the data file. If R is not set then the parameter file should contain the target values.

Expect a single character response. If this flag is set then the rsponse is expected to be a single character. In this case the subject does not have to finish the response with the RETURN-key.

(Hidden feature: double character response on single character selection).

Use upper case screen echo for the subject's response input even if the target set contains lower case characters.

Use an optical cue instead of an acoustic cue. This is only possible in a single character report procedure or a whole report procedure. In the latter case each character gets a mark.

Character matrix persits until there is a response.

(Hidden feature: no fixation marks, mask on page 0).
frametime (float)
Duration of a single video frame.

keyboarddelay (int)
A technical timing parameter which should be set as small as possible but at least as long as the initial keyboard repeat character delay interval. The standard value is 600 ms. Keyboards with a long time interval between keyboard press and the start of the repeat function may need a longer value. icon needs this time in order to detect whether a key has been released or not.

maskcolx , maskcoly , masklum (float)
Luminance of the visual mask.

maskdelay (int)
Delay time between character display offset and visual mask onset.

maskset (string)
The set of characters that are printed on top of each other for forming the mask.

masktime (int)
Duration of mask.

matrix (string)
Actual display matrix in a trial.

msgfont (string)

msgsize (int)
Character font number and character size of text messages between displays.

msglum (float)
Message text luminance.

multiple (int)
Present each character in matrix a multiple number of times. This is useful for matrices which consist of repeated character areas like they are used in texture diskrimination tasks. Note that the actual number of character positions in each display is rows*columns*multiple. The default value of multiple is 1.

radius (int)
Radius of circular character displays that are created by setting the flag C.

responsedelay (int)
Time interval between the display and the appearance of the cursor for response input.

rowdist (int)
Distance between the baselines of the character display matrix.

rows (int)
Number of rows in the display. Must be 1 if circular displays are used.

selection (string)
This string may be used to define the selection set on a character by character basis. A 1-character indicates that the corresponding character in matrix belongs to the selection set while 0-character indicates the opposite. The length of the selection string must be equal to rows*columns.

sigwait (int)
Waiting time between a the subject's release of the initialization key and the display or cue onset, whatever comes first.

soundsigs (float)
Frequency values of the sound signals that make up the acoustic cues.

target (int)
Target subset number. The target subsets are numbered starting from 0.

targetcolx , targetcoly , targetlum (float)
The xyL-coordinates of the target character set.

targetset (string)
The target character set.

task (int)
Type of the task. Possible values for task are given in Table icontask on page \pagereftab:icontask.

Example Experiments

The first parameter file reproduces one of the experiments by Sperling (1960). It uses a whole report procedure. See page \pagerefsperlingExample for a partial report procedure example.

Parameter file tbzeile.x from directory \pxl\app\icon

The next example is a replication of the experiments by Reicher (1969) and Wheeler (1970) which demonstrate the word superiority effect.

Parameter file wort.x from directory \pxl\app\icon

Back to table of contents

Author: Hans Irtel