Return to the Macworth Clock Vigilance Test page
___________________________________________________________________________________________________________________	

								Mackworth Clock Vigilance Test
___________________________________________________________________________________________________________________

Script Author: Jeffrey Q. Ouyang (qijia.ouyang@gmail.com)
Date: 08-08-2011
last updated:  03-10-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-10-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Mackworth Clock Vigilance TestT; a go/nogo test to measure a persons's ability 
to sustain attention in the face of monotonous stimulation. 

The implemented procedure is based on:

-Ann M.W. et al. 2001. Developing measures of fatigue using an alcohol comparison to validate 
 the effects of fatigue on performance. Accident Analysis and Prevention 33, 313-326.
 
-Mats G. et al. 1994. Relations Between Perfromance and Subjective Ratings of Sleepiness 
 During a Night Awake. Sleep 17, American Sleep Disorders Association and Sleep Research
 Society, 236-241. 
 
-Kenneth L.L. et al. 2000. The Macworth Clock Test: A Computerized Version, The Journal of 
Psychology, 134:2, 153-161

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
Participants watch a red dot jump from one circle position to next position (24) in a clockwise fashion at 
constant speed. Occasionally, the red dot skips a position. Participants are asked to press the Spacebar
whenever they notice such a skipped event (go event).

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 1.5 minutes to complete

___________________________________________________________________________________________________________________	
DATA FILE INFORMATION 
___________________________________________________________________________________________________________________
The default data stored in the data files are:

(1) Raw data file: 'mackworthclock_raw*.iqdat' (a separate file for each participant)

build:							The specific Inquisit version used (the 'build') that was run
computer.platform:				the platform the script was run on (win/mac/ios/android)
date, time, 					date and time script was run 
subject, group, 				with the current subject/groupnumber
script.sessionid:				with the current session id

blockcode, blocknum:			the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 			the name and number of the currently recorded trial (built-in Inquisit variable)
										Note: trialnum is a built-in Inquisit variable; it counts all trials run; even those
										that do not store data to the data file such as feedback trials. Thus, trialnum 
										may not reflect the number of main trials run per block. 
										
values.responseWindow: 			1 = the response Window is active AT THE BEGINNING of the trial
								0 = the response Window is inactive AT THE BEGINNING of the trial

values.hit:						1 = hit (spacebar pressed after skipped event within allowed timeframe); 
								0 = no hit 
									
values.miss:					1 = miss (spacebar not pressed after skipped event within allowed timeframe); 
								0 = no miss
									
values.false_alarm:				1 = False Alarm (spacebar pressed after a non-skipped event); 
								0 = no FA
				
values.total_hits:				counts all hits during test
values.total_misses:			counts all misses during test
values.total_falsealarms:		counts all false alarms during test
values.skip_count:				counts the number of skipped events during test

(2) Summary data file: 'mackworthclock_summary*.iqdat' (a separate file for each participant)

computer.platform:				the platform the script was run on (win/mac/ios/android)
script.startdate:				date script was run
script.starttime:				time script was started
script.subjectid:				assigned subject id number
script.groupid:					assigned group id number
script.sessionid:				assigned session id number
script.elapsedtime:				time it took to run script (in ms); measured from onset to offset of script
script.completed:				0 = script was not completed (prematurely aborted); 
								1 = script was completed (all conditions run)
									
values.total_hits:						counts all hits during test
values.total_misses:					counts all misses during test
values.total_falsealarms:				counts all false alarms during test
values.skip_count:						counts the number of skipped events during test
parameters.response_window_duration: 	the max time in ms that a participant can respond after a signal (skip) event 
expressions.Mean_HitRT:					stores the mean Hit latency (in ms) across test blocks 
expressions.STD_HitRT:        			stores the standard deviation of all Hit latencies (in ms) across test blocks
expressions.Median_HitRT:				stores the median Hit latency (in ms) across test blocks 

_______________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________

Test Procedures: 
1. A circle, with 24 equally spaced "slots" (as represented by the empty space between 
two "+" marks), is presented on the computer screen.
2. A red dot starts from the 12'o clock position and flashes in turn in each "slot". 
2a.The dot stays visible for 0.65 sec and so there is an interval of 0.65 sec between each flash.
3. The signal event is when the dot skips a position. 
3a.Total number of signal events is user-definable.
3b.The signal events are "spread out" evenly around the average event intervals with pseudorandom
     components added in (rand(-10,10)).
3c.The subject identifies this event by hitting the space bar (or other user-definable key).
4. The entire test lasts up to a pre-defined amount of time.

Note: the current script is programmed in such a way that the sequence
(pretest->maintest) can be run multiple times if more than one round should be run.
Go to section EXPERIMENT and update the block section of the expt-element if you wish to
run multiple rounds.
	
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
check under section Editable Instructions

___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are:

User-definable Macworth clock test parameters: 
total_skip_events: 				Total number of signal (skip) events. 
total_runtime:      			Total amount of time in ms the Macworth clock test will run. 
norm_interval:    				Interval between regular dot "flashes".    (in ms, recommended: 500ms - 800ms, default: 650ms)
skip_interval:     				Flash Interval when there's a skip event. (in ms, recommended: 500ms - 800ms, default: 650ms) 
response_window_duration: 		the max time in ms that a participant can respond after a signal (skip) event 

*Note: If possible, skip events will be randomly distributed such that the duration before the next event 
is at least as long as the specified response window. This may not be possible, however, if relative large number of
events are specified for a relative short task time, or if the response window is too long.