Return to the Auditory Oddball Task (no markers) 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. 
There are no markers set in this script.

___________________________________________________________________________________________________________________
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