Return to the Short Term Memory Binding Test (STMB) page
___________________________________________________________________________________________________________________	

									*SHORT TERM MEMORY BINDING TEST (STMB)*
___________________________________________________________________________________________________________________	

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 10-17-2016
last updated:  07-22-2020 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 07-22-2020 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements the Short Term Memory Binding Test (STMB);
a task to assesses feature binding (here: color and shape of objects) in visual short-term memory.

The implemented procedure is based on:

Brockmole, JR, Parra, MA, Della Sala, S, Logie RH (2008). Do binding deficits account for age-related decline 
in visual working memory?
Psychon Bull Rev.;5:543–547 (Experiment 2).

___________________________________________________________________________________________________________________
TASK DESCRIPTION
___________________________________________________________________________________________________________________	
Participants view 2 displays of 2-4 objects (default: 4) distributed over 9 possible screen locations, 
one after the other. 
These displays consist of the same objects (arranged differently in each display), or they differ by two items.
The task is to decide whether the second display presents the same objects as the first display - 
despite different object locations.
If the same objects are presented in display2, participants are asked to press a 'same' response key (default: E-key); 
if the object array is altered in display2, participants are asked to press a 'different' response key (default: I-key).

There are 3 different feature conditions: color, shape, and binding condition, tested in blocked format.

Color Condition: the presented objects are the same shape but differ in color 
(for 'different' trials: 2 of the objects get assigned new colors)

Shape Condition: the presented objects are different shapes but of the same color 
(for 'different' trials: 2 of the objects get assigned new shapes)

Binding Condition: the presented objects are different shapes, presented in different colors 
(for 'different' trials: 2 of the objects swap colors)
 
___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 10 minutes to complete

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

(1) Raw data file: 'shorttermmemorybindingtest_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.phase:						"practice" vs. "test"										
										
									
values.array:						1 (display1) vs. 2 (display2)
values.congruency:					'same' vs. 'different'
values.image1-values.image4:		store the current image files used for object1-object4

response:							the participant's response (scancode of response button)- built-in Inquisit variable
										18 = E => same
										23 = I => different
									
values.responseCat:					the interpreted key response: "same", "different" (custom variable)

correct:							the correctness of the response (1 = correct; 0 = incorrect)
latency: 							the response latency (in ms)

values.shape1:						stores the shape number (1-8) for object #1
values.color1:						stores the color (1-8) for object #1
values.location1:					stores the location (1-9) for object #1
values.location1x:					stores the x-coordinate for object #1 (corresponds to location assignment)
values.location1y:					stores the y-coordinate for object #1 (corresponds to location assignment)
(same for objects 2-4)

values.change1:						helper variable: stores the object number of the first object that will change in different trials
values.change2:						helper variable: stores the object number of the second object that will change in different trials
values.countDiffs:					counts the differences in the presented images (helper variable) -> 'different'=> 2; 'same' => 0



(2) Summary data file: 'shorttermmemorybindingtest_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)
									
expressions.propCorrect_binding_same:			proportion correct responses in 'same' binding trials
expressions.meanRT_binding_same:				mean latency (in ms) of correct responses in 'same' binding trials
expressions.SD_binding_same:					Standard Deviation (in ms) of latencies to correct responses in 'same' binding trials

expressions.propCorrect_binding_different:		proportion correct responses in 'different' binding trials
expressions.meanRT_binding_different:			mean latency (in ms) of correct responses in 'different' binding trials
expressions.SD_binding_different:				Standard Deviation (in ms) of latencies to correct responses in 'different' binding trials

expressions.propCorrect_shape_same:				proportion correct responses of 'same' shape trials
expressions.meanRT_shape_same:					mean latency (in ms) of correct responses in 'same' shape trials
expressions.SD_shape_same:						Standard Deviation (in ms) of latencies to correct responses in 'same' shape trials

expressions.propCorrect_shape_different:		proportion correct responses of 'different' shape trials
expressions.meanRT_shape_different:				mean latency (in ms) of correct responses in 'different' shape trials
expressions.SD_shape_different:					Standard Deviation (in ms) of latencies to correct responses in 'different' shape trials

expressions.propCorrect_color_same:				proportion correct responses of 'same' color trials
expressions.meanRT_color_same:					mean latency (in ms) of correct responses in 'same' color trials
expressions.SD_color_same:						Standard Deviation (in ms) of latencies to correct responses in 'same' color trials

expressions.propCorrect_color_different:		proportion correct responses of 'different' color trials
expressions.meanRT_color_different:				mean latency (in ms) of correct responses in 'different' color trials
expressions.SD_color_different:					Standard Deviation (in ms) of latencies to correct responses in 'different' color trials


* separate data files: to change to one data file for all participants (on Inquisit Lab only), go to section
"DATA" and follow further instructions

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________

Blocks:
- 3 blocks (color, shape, binding) - order of blocks is counterbalanced across participants by groupnumber
=> 6 different groupnumbers (1-6) run all possible orders of the three blocks

groupnumber1: binding -> color -> shape
groupnumber2: binding -> shape -> color
groupnumber3: color -> binding -> shape
groupnumber4: color -> shape -> binding
groupnumber5: shape -> binding -> color
groupnumber6: shape -> color -> binding

- each block runs 16 same and 16 different trials (total: 32) - order is randomly determined
- each block is preceded by 10 practice trials 
(if parameters.allowPracticeRepeat == true => practice can be repeated if requested)


Trials: all blocks
- Display1 (1000ms) -> Blank (900ms) -> Display2 (until response) -> ITI (1000ms) 
- Timings can be edited under section Editable Parameters
- arraysize is 4 (default - can be changed to 2-3 under section Editable Parameters)
- objects can appear in 9 different screen locations (the active screen canvas is squared in this script)
- display 1 object positions: randomly determined (without replacement)
- display 2 object positions: position of objects in display2 are randomly determined 
(with the constraint that all objects appear in positions not used in display1)
- objects can be presented in 8 different shapes and 8 different colors

Color: 
- Display1: randomly selects one shape and presents the shape in (4) randomly selected colors (no color repeats)
- Display2 different: 2 randomly selected objects get new colors (colors were not previously used)

Shape: 
- Display1: randomly selects one color and presents (4) randomly selected shapes (no shape repeats) in that color
- Display2 different: 2 randomly selected items get new shapes (shapes were not previously used)

Binding: 
- Display1: randomly selects shapes and colors (no shape and color repeats)
- Display2 different: 2 randomly selected objects swap colors

___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________	
Stimuli are not original to Brockmole et al (2008)
All stimuli are hexagonal shapes provided by Millisecond Software - the shapes can 
be edited under section Editable Stimuli.
The colors used in this script are: red, green, blue, purple, pink, turquoise, black, yellow and orange
Size can be edited under section Editable Parameters

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________
Instructions are not original to the task. They are provided by Millisecond Software
as htm/html pages and can be edited by changing the provided htm/html files.
To edit htm/html-files: open the respective documents in simple Text Editors such as TextEdit (Mac)
or Notepad (Windows).

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

/allowPracticeRepeat:						true = practice trials can be repeated if requested by participant (default)
											false = participants only get to run practice trials once for each condition
											
/arraySize:									the number of objects presented, available for 2-4 objects (default: 4)
/arrayPresentationTime:						the duration (in ms) that the array of objects is on screen (default: 1000ms)
/blankPresentationTime:						the duration of the blank screen (in ms) between displays (default: 900ms)
/ITI:										intertrial interval (in ms) (default: 1000ms)
/picSize:									the size of object images in proportion to canvas size (default: 0%)

Keyassignment:

/leftKey:									the left key (here: "E")
/rightKey:									the right key (here: "I")
Note: by changing the above values of the keys, you can use different response keys

/sameKey:									stores the label of the 'same' key (default: it's the left response button "E")
/sameKey_locaton:							stores the location of the 'same' key (default: it's the left one)
/differentKey:								stores the label of the 'different' key (default: it's the right response button "I")
/differentKey_location:						stores the location of the 'different' key (default: it's the right one)
Note: by changing the above values, you can control the left/right assignment of the 'same' and 'different' response buttons