Introduction
The Psychological Refractory Period (PRP) is a fascinating and intensively studied phenomenon which goes at least back to the work by Welford (1952) and is strongly associated by the extensive body of work on this topic by famous psychologist Harold Pashler (1994).
The wikipedia link does a good job explaining the phenomenon.
In short, you do two tasks shortly after each other (task 1 and task 2). It turns out that the shorter the time interval between stimulus one and two (the SOA, see figure below, inspired by Pashler’s 1994 paper, p. 222, figure 1), the longer response time in task 2. One of the explanations for this is that the central processing of stimulus 2 has to wait (i.e., the refractory period) until the participant is done processing stimulus 1. The idea is that people can only handle the central processing of one task at the time. This is the central bottleneck.

The PRP paradigm has been used to distinguish between a single bottleneck model (e.g., McCann & Johnston, 1992) of information processing and a resource model. A good critical approach against the bottleneck model is the paper by Navon & Miller (2002).
All sort of smart methods have been used to prove that there is a single central bottleneck, although the debate continues until this day. One of the interesting manipulations is the difficulty level of task 1 (as is provided in the implementation here).
This topic is related to multitasking. As explained in the experiment library entry under multitasking, there are different ways to measure multitasking, and this is one of them. In this case, the multitasking really focuses on the simultaneous processing of information.
Some researchers have studied the effects of practice on PRP and whether or not the effect can be eliminated through practise Van Selst, 1999.
About this implementation
PRP paradigms come in all shapes and forms. Pashler’s 1994 paper gives a good overview of it. The implementation here is inspired by Pashler’s paper, but some of the parameters have been chosen by me.
The difficulty of task 1 is manipulated by having sounds that are easy to classify as low or high or difficult to classify as low and high.
In this example, you need speakers or headphone, because sound stimuli are used. Sounds have been created with the popular completely free-of-cost sound editor audacity. |
Here is how you can generate your own tones using audacity. From the menu, select "generate". Then select "tone". You can select any waveform. The sounds selected for this experiment are probably not as nice as sine waves. Then you can play the sound, and if happy, from the "file" menu option, select "export audio". I selected the mp3 file format, because this creates very small audio files, which means that the experiment will start up faster. |
Each square wave sound stimulus is 200 ms long, and the following frequencies have been used: 220, 440, 660, 880 Hz.
Make sure that sounds are audible on all computers. Some lower sine waves might not be audible on some hardware, because they are simply too low for the hardware. For example, on my laptop, I can hear a 220 Hz square wave, but not a 220 Hz sine wave. |
Run the demo
There are 20 training trials and 100 real trials — hopefully you do not find this too long! The sound discrimination can be considered difficult in the beginning, because you need to be able to call 440 Hz as low and 660 Hz as high. Are you up to it? Anyway, that is the difficulty manipulation of this experiment! |
Data output file
In PsyToolkit, the data output file is simply a textfile. The save line of the PsyToolkit experiment script determines what is being saved in the data output file. Typically, for each experimental trial, you would have exactly one line in your text file, and each number/word on that line gives you the information you need for your data analysis, such as the condition, response speed, and whether an error was made. |
Meaning of the columns in the output datafile. You need this information for your data analysis.
Colum | Meaning |
---|---|
1 |
blocktype (1=training, 2=realdata) |
2 |
s1: tone (lo or hi) |
3 |
s2: color (yellow or blue) |
4 |
task 1 difficulty (easy or difficult) |
5 |
low/high tone as number (1=low, 2=high) |
6 |
yellow/blue as number (1=yellow, 2=blue) |
7 |
soa (75,150,300,600) |
8 |
response time 1 |
9 |
response time 2 |
10 |
status of response 1 (1=correct, 2=wrong, 3=timeout) |
11 |
status of response 2 (1=correct, 2=wrong, 3=timeout) |
PsyToolkit code
Click to expand the PsyToolkit script code (part of zip file below)
options
bitmapdir stimuli
sounddir stimuli
sounds
lo1 square220hz_200ms.mp3
lo2 square440hz_200ms.mp3
hi1 square660hz_200ms.mp3
hi2 square880hz_200ms.mp3
bitmaps
instruction1
instruction2
instruction3
instruction4
readyreal
readypractise
fixpoint1
fixpoint2
errorfeedback
listen
thankyou
fonts
courier 18
table prptable
lo1 1 3 1 "lo yellow easy"
lo2 1 3 2 "lo yellow diff"
hi1 2 3 2 "hi yellow diff"
hi2 2 3 1 "hi yellow easy"
lo1 1 4 1 "lo blue easy"
lo2 1 4 2 "lo blue diff"
hi1 2 4 2 "hi blue diff"
hi2 2 4 1 "hi blue easy"
task prptask
table prptable
keys z x comma period
## first set some more variables to values
set $prpsoa random from 75 150 300 600
## create yellow rectangle colors
if @3 == 3
set $redchannel 255
set $greenchannel 255
set $bluechannel 0
fi
## create blue rectangle colors
if @3 == 4
set $redchannel 100
set $greenchannel 100
set $bluechannel 255
fi
############################################
## start events, start with nice fixpoint
delay 500
show bitmap fixpoint1
delay 100
show bitmap fixpoint2
delay 100
clear 1 2
show bitmap fixpoint1
delay 100
clear -1
############################################
## now the task relevant events
sound @1
readkey @2 $prpsoa
set $rt1 RT
set $status1 STATUS
show rectangle 0 0 200 100 $redchannel $greenchannel $bluechannel
## the following if is true if people responsed quicker than the PRP SOA
if $status1 != TIMEOUT
set $realrt1 RT
readkey @3 3000
set $realrt2 RT
set $status2 STATUS
fi
if $status1 == TIMEOUT
readkey @2 3000
set $rt1 RT
set $status1 STATUS
set $realrt1 expression $prpsoa + $rt1
readkey @3 3000
set $realrt2 RT
set $status2 STATUS
fi
############################################
## check if values were correct
if $status1 != CORRECT || $status2 != CORRECT
show bitmap errorfeedback
delay 3000
clear -1
fi
save &blocktype @5 @2 @3 $prpsoa $realrt1 $realrt2 $status1 $status2
block prp_training
set &blocktype 1 # training
pager instruction1 instruction2 instruction3 instruction4
message listen
sound lo1
delay 300
sound lo2
delay 600
sound hi1
delay 300
sound hi2
delay 600
sound lo1
delay 300
sound lo2
delay 600
sound hi1
delay 300
sound hi2
delay 600
message readypractise
tasklist
prptask 20
end
block prp_real
set &blocktype 2 # real
message readyreal
tasklist
prptask 100
end
feedback
text align left
set &soa1_rt1 mean c8 ; select c7 == 75 && c1 == 2 && c9 == 1 && c10 == 1
set &soa2_rt1 mean c8 ; select c7 == 150 && c1 == 2 && c9 == 1 && c10 == 1
set &soa3_rt1 mean c8 ; select c7 == 300 && c1 == 2 && c9 == 1 && c10 == 1
set &soa4_rt1 mean c8 ; select c7 == 600 && c1 == 2 && c9 == 1 && c10 == 1
set &soa1_rt2 mean c12 ; select c7 == 75 && c1 == 2 && c9 == 1 && c10 == 1
set &soa2_rt2 mean c12 ; select c7 == 150 && c1 == 2 && c9 == 1 && c10 == 1
set &soa3_rt2 mean c12 ; select c7 == 300 && c1 == 2 && c9 == 1 && c10 == 1
set &soa4_rt2 mean c12 ; select c7 == 600 && c1 == 2 && c9 == 1 && c10 == 1
text -350 -200 &soa1_rt1 ; prefix "RT1 SOA=50 " ; postfix " ms"
text -350 -150 &soa2_rt1 ; prefix "RT1 SOA=200 " ; postfix " ms"
text -350 -100 &soa3_rt1 ; prefix "RT1 SOA=400 " ; postfix " ms"
text -350 -50 &soa4_rt1 ; prefix "RT1 SOA=800 " ; postfix " ms"
text -350 0 &soa1_rt2 ; prefix "RT2 SOA=50 " ; postfix " ms"
text -350 50 &soa2_rt2 ; prefix "RT2 SOA=200 " ; postfix " ms"
text -350 100 &soa3_rt2 ; prefix "RT2 SOA=400 " ; postfix " ms"
text -350 150 &soa4_rt2 ; prefix "RT2 SOA=800 " ; postfix " ms"
text -350 200 "Write down numbers. Press space bar to continue."
end
message thankyou
Download
If you have a PsyToolkit account, you can upload the zipfile directly to your PsyToolkit account. Watch a video on how to do that. If you want to upload the zipfile into your PsyToolkit account, make sure the file is not automatically uncompressed (some browsers, especially Mac Safari, by default uncompress zip files). Read here how to easily deal with this. |
Further reading
-
Pashler, H. (1994). Dual-task interference in simple tasks: Data and theory. Psychological Bulletin, 116, 220-244.
-
McCann, R. S. & Johnston, J. C. (1992). Locus of the single-chanel botleneck in dual-task interference. Journal of experimental psychology-human perception and performance, 18, 471-484.
-
Welford, A. T. (1952). The "psychological refractory period" and the timing of high speed performance - A review and a theory. British Journal of Psychology, 43, 2-19.
-
Navon, D. & Miller, J. (2002). Queuing or sharing? A critical evaluation of the single-botleneck notion. Cognitive psychology, 44, 193-251.
-
Pashler, H. (1989). Dissociation’s and dependencies between sped and accuracy - evidence for a 2-component theory of divided attention in simple tasks. Cognitive psychology, 21, 469-514.
-
Van Selst, M., S., Ruthruff, E., & Johnston, J. C. (1999). Can practice eliminate the psychological refractory period effect? Journal of experimental psychology-human perception and performance, 25, 1268-1283.