Return to the Auditory Oddball Task page
___________________________________________________________________________________________________________________	

									AUDITORY ODDBALL TASK
___________________________________________________________________________________________________________________	


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 Auditory Oddball Task, an auditory go/nogo task to measure
attention and cognitive control.

The implemented procedure is based on:

Williams, L.M., Simms, E., Clark, C.R., & Paul, R. H. (2005). The test-retest reliability of a 
standardized neurocognitive and neurophysiological test battery: "neuromarker". 
International Journal of Neuroscience, 115, 1605-30.


The script uses baseline tones of 500hz and oddball tones of 1000hz. 
TTL Marker signals indicating stimulus onset, type of stimulus, and response times are sent to the 
parallel port for purposes of synchronizing with EEG/ERP measures. 

Marker Values:
1 = onset of oddball signal
2 = onset of baseline signal
3 = onset of response (if any)

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants listen to a random sequence of 2 different beeps. They are asked to press
the Spacebar whenever they hear the high tone (go trial) and refrain from doing anything
if they hear the low tone (nogo trial).

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

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

(1) Raw data file: 'auditoryoddballtask_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.lasttrial:					the name of the trial										
stimulustitem.1:					the presented sound file

response:							the participant's response: scancode of key response
										57 = spacebar
										0 = no response
									
values.responseCategory:			hit: pressing spacebar for oddball sounds (targets)
									omission error: not pressing spacebar for oddball sounds (targets)
									corrReject: not pressing spacebar for baseline sounds (nontargets)
									commission error: pressing spacebar for baseline sounds (nontargets)
								
correct:							the correctness of the response (1 = correct; 0 = incorrect)
latency: 							the response latency (in ms); measured from onset of sound file
									=> for no responses, the latency is the max response timeout = 900ms
									
list.FAs.mean:						proportion of commission errors (pressing spacebar for a non oddball event)									

									
(2) Summary data file: 'auditoryoddballtask_nomarkers_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)
									
									
list.ACC.mean:						the overall proportion correct 									
									
expressions.numberGoTrials:			number of Go trials ('oddball') in the test block
expressions.numberNogoTrials:		number of Nogo trials ('baseline') in the test block

list.hitRTs.mean:					mean hit latency (in ms)

*Adjustments to z-scores as recommended by:
Gregg, A. & Sedikides, C. (2010). Narcissistic Fragility:
Rethinking Its Links to Explicit and Implicit Self-esteem, Self and Identity, 9:2, 142-161 (p.148)

expressions.hitrate:				calculates the hitrate (proportion of correctly hitting the spacebar for oddball-trials)
expressions.FArate:					calculates the commission error rate (proportion of incorrectly hitting the spacebar for baseline-trials)
										
expressions.z_hitrate*:				calculates the z-score for the hitrate. Adjustments are made if the hitrate = 0 (increased to 0.005) or 1 (decreased to 0.995)*
expressions.z_FArate*:				calculates the z-score for the false alarm rate. Adjustments are made if the  FArate = 0 (increased to 0.005) or 1 (decreased to 0.995)*

expressions.dprime:					Computes d' (parametric measure of discriminability btw. signals and noise)
										=> Range (in this script): 
										-5.1516586840152740479 <= dprime <= 5.1516586840152740479 (=perfect performance)
										=> The higher the value, the better signals (oddballs) were overall distinguished from noise (baseline)
										(d' = 0: chance performance; negative d-primes: participant treated nontargets as targets and targets as nontargets)
									

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
1 Testblock of 200 trials: 24 oddball signals (go trials), 176 baseline (nogo trials)
-> order is randomized (constraint: no consecutive oddball trials, if at all possible)
-> trials last 1000ms (default, editable value) with 100ms of that time dedicated to trialCleanUp (default, editable value)
(thus the effective response timeout is: 1000ms-100ms = 900ms)

___________________________________________________________________________________________________________________
STIMULI
___________________________________________________________________________________________________________________
oddball signal: 1000Hz sound
baseline signal: 500Hz sound
sound files can be edited under section Editable Stimuli

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
can be edited 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:
/trialduration:				the trial duration in ms (default: 1000ms) => every 1s, a new sound file is started

/trialCleanupTime			the duration at the end of the trial duration (in ms) explicitly allocated 
							to stimulus clean-up etc. (default: 100ms)
							=> the effective response timeout is = trialduration - trialCleanupTime = 1000ms - 100ms = 900ms