Return to the Flicker Paradigm for Change Blindness page
___________________________________________________________________________________________________________________	

									FLICKER PARADIGM FOR CHANGEBLINDNESS
___________________________________________________________________________________________________________________

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 02-11-2014
last updated:  03-09-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-09-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements a Flicker Paradigm to investigate the role of attention in Change Blindness based on:

Rensink, R.A., O'Regan, J.K. & Clark, J.J. (1997). TO SEE OR NOT TO SEE:
The Need for Attention to Perceive Changes in Scenes. Psychological Science, 8, 368-373.


NOTES: 
* This script runs with 6 example stimuli (ONLY intended for demonstration purposes). The original study ran with
48.
* the variable "interest level of change" (central vs. marginal) is not included in this script as the example
stimuli contain "marginal interest" changes only.
* this script runs 2 cue conditions (cue vs. no cue) either in a mixed design (default) or in a blocked
design. The script does not include an unreliable cue condition as tested by Rensink et al.


Millisecond Software thanks Dr. Rensink for sharing his example stimuli for this script!

___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________	
Participants are presented "flickering" presentations of original and altered pictures for a maximum cycle of 1 min (default).
The task is to find the one difference between the two pictures. 
If participants find the difference they are instructed to press the Responsekey (original: Spacebar) and 
are asked to describe the change in detail in a textbox.

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

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

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

Note: by default, trial.savedata is the only trial that saves data to the raw data file

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. 
									
parameters.flicker_same:			the duration of the blank screen/flicker in between the 2 presentations of the original pictures (or altered pictures) (original: 80ms)
										Note: if set to 0 the presentation of the pictures appears continuous
										
values.changetype:					"location" (1), "presence/absence" (2), "color" changes (3) in the pictures
values.cuecondition:				1 = a cue is given; 2 = no cue is given
values.cue:							the currently presented cue
values.counttrials:					counts the number of trials 
values.count_cycles: 				counts the number of cycles started until a response occurs
values.currentpic:					the itemnumber of the currently presented (original/altered) pic
values.stimulus:					the image presented (StimA)


values.responsepoint:				determines the image in the response cycle (the cycle that participant made a positive response)
									that was presented when participant made response: 
										"StimA1", "flicker_AA", "StimA2", "flicker_AB", "StimB1",
										"flicker_BB", "StimB2", "flicker_BA" or "N/A" (if no response was given)
										
values.alternations:				determines the number of alternations between original and altered pictures until response occurs
										Note: each switch between originals and altered pictures as well as each switch between
											altered pictures and original pictures is counted as an alternation.
											=> for each completed cycle, participant go through 2 alternations;
											if the response occurs AFTER the change from original to altered pic in the last
											cycle, one more alternation is added to the count.
											
values.cycle_rt:					stores the combined trial latencies across the entire cycle until response occurs (in ms)
values.selectedChangeType:			the selected observed change type ('location', 'presence/absence', 'color', or empty)

values.ACC_changeType:				1 = the correct Change Type was selected
									0 = in any other case

values.currentChange:				contains the correct description of the change
values.changeDescription:			stores the openended textbox response in regard to the observed change

values.ACC_changeDescription:		"needs to be evaluated"
										Note: script does NOT evaluate the correctness of the entered response automatically.
										Each openended response needs to be evaluated manually.
									
values.changeReport_RT:				stores the time it took participant to work on the openended response until pressing the button (in ms)

values.repeatPractice:				0 = the practice round should not be repeated
									1 = the practice round should be repeated	

(2) Summary data file: 'FlickerParadigm_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)

runcuecondition:					by default, the cuecondition (cue vs. no cue) is run in a "mixed" design; to run the
									cuecondition in a blocked design, set value.runcuecondition = "blocked"
								
values.countPracticeRuns:			counts how often the practice round was repeated

values.countresponses:				  			counts how often participants pressed the Spacebar to report the change

expressions.propCorrect_changeTypeSelections:	proportion correct selection of Change Type (across all trials)
expressions.RT_corrSelections:					the mean latency (in ms) of cycles when participant selected the correct change
expressions.RT_all:								the mean latency (in ms) of all cycles (regardless of responses)

expressions.propCorrect_changeTypeSelections_L:	proportion correct selection of Change Type in LOCATION trials
expressions.RT_corrSelections_L:				the mean latency (in ms) of cycles when participant selected the correct change in LOCATION trials

expressions.propCorrect_changeTypeSelections_P:	proportion correct selection of Change Type in PRESENCE trials
expressions.RT_corrSelections_P:				the mean latency (in ms) of cycles when participant selected the correct change in PRESENCE trials

expressions.propCorrect_changeTypeSelections_C:	proportion correct selection of Change Type in COCATION trials
expressions.RT_corrSelections_C:				the mean latency (in ms) of cycles when participant selected the correct change in COCATION trials

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	
3 (change types: location, color, presence/absence) x  2 (cue conditions: no cue, cue); tested within
Change types are tested by default in a mixed design. To run them in a blocked design: change parameters.runcuecondition (editable parameter).
If the conditions are run in a blocked design, the order of the cue conditions is determined randomly in this script.

Cues in this script alert participants to the type of change: color, location or the addition/removal of an object

(a) Blocks:
1. Practice: by default, the script runs as many practice trials as specified under parameters.max_numberoftrials_practice (default: 1)
and selects the stimuli randomly from item.practice_StimA.
		NOTE: Rensink et al ran 6 (=3 changetypes x 2 interest levels; interest levels are not tested in this script by default)
2. Flicker_MixedCue: by default, the script runs 6 trials
3. Flicker_Cue/Flicker_NoCue: by default, the script runs 3 trials per block (stimuli are randomly assigned to either one of them)

(b) Trial Sequences: 
1. cue-field screen: 3000ms
	-> the cue condition is selected at random
2. blank screen: 1000ms

3. Cycle: the selection of the individual pictures is random

original (240ms) -> flicker (80ms) -> original (240ms)-> flicker (80ms) -> altered (240ms) -> flicker (80ms) -> altered (240ms) -> repeat of cycle if noresponse
(maximum cycle duration: ~1 min)

Note: all durations are editable parameter. They can be changed under EDITABLE CODE -> Editable Values

4. Change Description: if a change was reported (by pressing Responsekey): 
	a) a forced-choice question with 3 answer choices asks participants to select the type of change observed 
	b) a textbox asks participants to describe the observed change in detail

___________________________________________________________________________________________________________________
STIMULI
___________________________________________________________________________________________________________________
The provided stimuli are example stimuli generously shared by Dr. Rensink under 
http://www2.psych.ubc.ca/~rensink/flicker/download/index.html

They are only intended for demonstration purposes. 
Substitute your own stimuli under EDITABLE CODE -> Editable Stimuli and follow instructions

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
The instructions used in this script are not original. They are provided by Millisecond Software in html-format.
To change the instructions, simply change the html files in a simple Text Editor (e.g. in 'Notepad' in Win or 'textEdit' in Mac)

___________________________________________________________________________________________________________________	
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:

/responsekey:							the response key (default: " " -> spacebar)

/cueboxheight:							height of the cuebox in percentage of canvas height (original: 10%)
/cueboxwidth:							width of the cuebox in percentage of canvas width (original: 30%)
/cuetextheight:							the height of the cue text in percentage of canvas height (original: 5%)

/picheight:								the height of the pictures in percentage of canvas height (original: 70%)

/cueduration:							the duration of the cue in ms (original: 3000ms)
/startscreenduration:					the duration of the start screen in ms (original: 1000ms)

/StimA_Duration:						the duration of the original picture in ms (original: 240ms)
											Note: the original picture is presented twice. If parameters.flicker_same = 0; 
											the presentation of the 2 original pictures appears continuous
/StimB_Duration:							the duration of the altered picture in ms (original: 240ms)
											Note: the altered picture is presented twice. If parameters.flicker_same = 0; 
											the presentation of the 2 altered pictures appears continuous

/flicker_same:							the duration of the blank screen/flicker in between the 2 presentations of the original pictures in ms (or altered pictures) (original: 80ms)
											Note: if set to 0 the presentation of the pictures appears continuous
											
/flicker_different:						the duration of the blank screen/the flicker in between original and altered pictures in ms (original: 80ms)

/max_cycleduration:						the ~maximum duration of the cycling through original and altered pictures if no response occurs in ms (defaul: 60000ms)

/max_numberoftrials:					the number of test stimuli (default: 6).
											NOTES:
											a) In the mixed design all stimuli are presented within one block. In the blocked design, half
											the stimuli are presented in the cue, the other half in the nocue block (random sampling).
											b) The original study (Rensink et al used 48 stimuli)-> change images under EDITABLE CODE -> Editable Stimuli

/max_numberoftrials_practice:			the number of practice stimuli tested (default: 1)
											
/runcuecondition:						by default, the cuecondition (cue vs. no cue) is run in a "mixed" design; to run the
										cuecondition in a blocked design, set value.runcuecondition = "blocked"
										
										
/allowPracticeRepeats:					1 (true): the practice round can be repeated if so indicated (default)
										0 (false): the practice round cannot be repeated