---
API: 2.1
OpenSesame: 3.2.6
Platform: posix
---
set width 1024
set uniform_coordinates yes
set title "Attentional Blink Experiment "
set subject_parity even
set subject_nr 0
set start experiment
set sound_sample_size -16
set sound_freq 48000
set sound_channels 2
set sound_buf_size 1024
set sampler_backend legacy
set round_decimals 2
set mouse_backend xpyriment
set keyboard_backend legacy
set height 768
set fullscreen no
set form_clicks no
set foreground black
set font_underline no
set font_size 32
set font_italic no
set font_family mono
set font_bold no
set experiment_path "/Users/stacie/Desktop"
set disable_garbage_collection yes
set description "A template containing a practice and an experimental phase"
set coordinates uniform
set compensation 0
set color_backend legacy
set clock_backend legacy
set canvas_backend xpyriment
set bidi yes
set background gray
define sketchpad AskT1
set duration 0
set description "Displays stimuli"
draw textline center=1 color=White font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="Please Type The First Number That You Saw
Respond with the number pad on the keyboard" x=0 y=0 z_index=0
define sketchpad AskT2
set duration 0
set description "Displays stimuli"
draw textline center=1 color=White font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="Please Type The Second Number That You Saw
Respond with the number pad on the keyboard" x=0 y=0 z_index=0
define inline_script Counterbalance
set description "Executes Python code"
___run__
if var.subject_parity =='even' :
var.condition1 = 'experimental'
var.condition2 = 'control'
else:
var.condition1 = 'control'
var.condition2 = 'experiment'
__end__
set _prepare ""
define sketchpad Fixation
set start_response_interval no
set duration 995
set description "Displays stimuli"
draw fixdot color=Black show_if=always style=default x=0 y=0 z_index=0
draw textline center=1 color=Black font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="" x=-128 y=-128 z_index=0
define sketchpad Instructions_1
set duration keypress
set description "Displays stimuli"
draw textline center=1 color=black font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="
Any key to start" x=0 y=0 z_index=0
draw textline center=1 color=black font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="" x=32 y=-32 z_index=0
define inline_script RSVP
set description "Executes Python code"
___run__
for letter_canvas in letter_canvas_list:
letter_canvas.show()
clock.sleep(var.letter_dur)
blank_canvas.show()
clock.sleep(var.isi)
__end__
___prepare__
import random
import string
# The color of T1
var.T1_color = 'white'
#The presentation time of each stimulus
# (rounded up to the nearest value compatible with refresh rate)
var.T1_Size == 'T1_Size'
var.T2_Size == 'T2_Size'
var.letter_dur = 15
# The inter-stimulus interval
# (rounded to nearest value compatible with refresh rate)
var.isi = 75
#The position of T1 is random between 7 and 15. Note that the
# first position is 0, so the position indicated the number of preceding stimuli
var.T1_pos = random.randint(7,15)
#The maximum lag, i.e. the number of letter that follow T1
var.max_lag = 8
#The length of the stream is the position if T1 + the maximum lag + 1.
#We need to add 1, because we count starting at 0, so the length of a list i
#s alwats 1 larger than its maximum index.
var.stream_len = var.T1_pos + var.max_lag + 1
#We take all uppercase letters, which have been predefined in the 'string'
#module. Converting to a 'list; created a lost of characters.
letters = list(string.ascii_uppercase)
#Randomly sample a 'stream_len' number of letters
stim_list = random.sample(letters, var.stream_len)
if var.T2_Present == 'y':
var.T2_pos = var.T1_pos + var.lag
stim_list[var.T2_pos] = random.randint(1,9)
if var.T1_Present == 'y':
stim_list[var.T1_pos] = random.randint(1,9)
#Create an empty list for the canvas objects
letter_canvas_list = []
#Loop through all letters in 'stim_list'. 'enumerate()' is a conveneint
#function that automatically returns (index, item) tuples. In our case, the
#index ('i) reflects the position in the RSVP stream. This Python trick, in
#which you assign a single value to two variables, is called tuple unpacking.
for i, stim in enumerate(stim_list):
#create a 'canvas; object
letter_canvas = canvas()
#Draw the letter!
letter_canvas.text(stim)
#And add the canvas to the list.
letter_canvas_list.append(letter_canvas)
#create a blank canvas to show during the inter-stimulus interval
blank_canvas = canvas()
#Extract T1 from the list
var.T1 = stim_list[var.T1_pos]
var.T2 = stim_list[var.T2_pos]
__end__
define keyboard_response ResponseT1
set timeout infinite
set flush yes
set event_type keypress
set duration keypress
set description "Collects keyboard responses"
set correct_response "[T1]"
set allowed_responses "0,1,2,3,4,5,6,7,8,9"
define keyboard_response ResponseT2
set timeout infinite
set flush yes
set event_type keypress
set duration keypress
set description "Collects keyboard responses"
set correct_response "[T2]"
set allowed_responses "0,1,2,3,4,5,6,7,8,9"
define sketchpad T1
set duration keypress
set description "Displays stimuli"
draw textline center=1 color=black font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="[T1]" x=0 y=0 z_index=0
define notepad about_this_template
__note__
This template already contains the basic structure of a typical experiment.
It consists of a practice phase, followed by an experimental phase. For more
information, please visit
Have fun with OpenSesame!
__end__
set description "Some pointers to help you gest started!"
define loop block_loop
set source_file ""
set source table
set skip 0
set repeat 3
set order random
set offset no
set item trial_sequence
set description "A single block of trials"
set cycles 32
set continuous no
set column_order ""
set break_if_on_first yes
set break_if never
setcycle 0 Condition 2a
setcycle 0 T1_Present y
setcycle 0 T1_Size 32
setcycle 0 T2_Present y
setcycle 0 T2_Size 48
setcycle 0 lag 1
setcycle 1 Condition 2a
setcycle 1 T1_Present y
setcycle 1 T1_Size 32
setcycle 1 T2_Present y
setcycle 1 T2_Size 48
setcycle 1 lag 2
setcycle 2 Condition 2a
setcycle 2 T1_Present y
setcycle 2 T1_Size 32
setcycle 2 T2_Present y
setcycle 2 T2_Size 48
setcycle 2 lag 3
setcycle 3 Condition 2a
setcycle 3 T1_Present y
setcycle 3 T1_Size 32
setcycle 3 T2_Present y
setcycle 3 T2_Size 48
setcycle 3 lag 4
setcycle 4 Condition 2a
setcycle 4 T1_Present y
setcycle 4 T1_Size 32
setcycle 4 T2_Present y
setcycle 4 T2_Size 48
setcycle 4 lag 5
setcycle 5 Condition 2a
setcycle 5 T1_Present y
setcycle 5 T1_Size 32
setcycle 5 T2_Present y
setcycle 5 T2_Size 48
setcycle 5 lag 6
setcycle 6 Condition 2a
setcycle 6 T1_Present y
setcycle 6 T1_Size 32
setcycle 6 T2_Present y
setcycle 6 T2_Size 48
setcycle 6 lag 7
setcycle 7 Condition 2a
setcycle 7 T1_Present y
setcycle 7 T1_Size 32
setcycle 7 T2_Present y
setcycle 7 T2_Size 48
setcycle 7 lag 8
setcycle 8 Condition 2b
setcycle 8 T1_Present y
setcycle 8 T1_Size 32
setcycle 8 T2_Present y
setcycle 8 T2_Size 64
setcycle 8 lag 1
setcycle 9 Condition 2b
setcycle 9 T1_Present y
setcycle 9 T1_Size 32
setcycle 9 T2_Present y
setcycle 9 T2_Size 64
setcycle 9 lag 2
setcycle 10 Condition 2b
setcycle 10 T1_Present y
setcycle 10 T1_Size 32
setcycle 10 T2_Present y
setcycle 10 T2_Size 64
setcycle 10 lag 3
setcycle 11 Condition 2b
setcycle 11 T1_Present y
setcycle 11 T1_Size 32
setcycle 11 T2_Present y
setcycle 11 T2_Size 64
setcycle 11 lag 4
setcycle 12 Condition 2b
setcycle 12 T1_Present y
setcycle 12 T1_Size 32
setcycle 12 T2_Present y
setcycle 12 T2_Size 64
setcycle 12 lag 5
setcycle 13 Condition 2b
setcycle 13 T1_Present y
setcycle 13 T1_Size 32
setcycle 13 T2_Present y
setcycle 13 T2_Size 64
setcycle 13 lag 6
setcycle 14 Condition 2b
setcycle 14 T1_Present y
setcycle 14 T1_Size 32
setcycle 14 T2_Present y
setcycle 14 T2_Size 64
setcycle 14 lag 7
setcycle 15 Condition 2b
setcycle 15 T1_Present y
setcycle 15 T1_Size 32
setcycle 15 T2_Present y
setcycle 15 T2_Size 64
setcycle 15 lag 8
setcycle 16 Condition 1a
setcycle 16 T1_Present y
setcycle 16 T1_Size 48
setcycle 16 T2_Present y
setcycle 16 T2_Size 32
setcycle 16 lag 1
setcycle 17 Condition 1a
setcycle 17 T1_Present y
setcycle 17 T1_Size 48
setcycle 17 T2_Present y
setcycle 17 T2_Size 32
setcycle 17 lag 2
setcycle 18 Condition 1a
setcycle 18 T1_Present y
setcycle 18 T1_Size 48
setcycle 18 T2_Present y
setcycle 18 T2_Size 32
setcycle 18 lag 3
setcycle 19 Condition 1a
setcycle 19 T1_Present y
setcycle 19 T1_Size 48
setcycle 19 T2_Present y
setcycle 19 T2_Size 32
setcycle 19 lag 4
setcycle 20 Condition 1a
setcycle 20 T1_Present y
setcycle 20 T1_Size 48
setcycle 20 T2_Present y
setcycle 20 T2_Size 32
setcycle 20 lag 5
setcycle 21 Condition 1a
setcycle 21 T1_Present y
setcycle 21 T1_Size 48
setcycle 21 T2_Present y
setcycle 21 T2_Size 32
setcycle 21 lag 6
setcycle 22 Condition 1a
setcycle 22 T1_Present y
setcycle 22 T1_Size 48
setcycle 22 T2_Present y
setcycle 22 T2_Size 32
setcycle 22 lag 7
setcycle 23 Condition 1a
setcycle 23 T1_Present y
setcycle 23 T1_Size 48
setcycle 23 T2_Present y
setcycle 23 T2_Size 32
setcycle 23 lag 8
setcycle 24 Condition 1b
setcycle 24 T1_Present y
setcycle 24 T1_Size 64
setcycle 24 T2_Present y
setcycle 24 T2_Size 32
setcycle 24 lag 1
setcycle 25 Condition 1b
setcycle 25 T1_Present y
setcycle 25 T1_Size 64
setcycle 25 T2_Present y
setcycle 25 T2_Size 32
setcycle 25 lag 2
setcycle 26 Condition 1b
setcycle 26 T1_Present y
setcycle 26 T1_Size 64
setcycle 26 T2_Present y
setcycle 26 T2_Size 32
setcycle 26 lag 3
setcycle 27 Condition 1b
setcycle 27 T1_Present y
setcycle 27 T1_Size 64
setcycle 27 T2_Present y
setcycle 27 T2_Size 32
setcycle 27 lag 4
setcycle 28 Condition 1b
setcycle 28 T1_Present y
setcycle 28 T1_Size 64
setcycle 28 T2_Present y
setcycle 28 T2_Size 32
setcycle 28 lag 5
setcycle 29 Condition 1b
setcycle 29 T1_Present y
setcycle 29 T1_Size 64
setcycle 29 T2_Present y
setcycle 29 T2_Size 32
setcycle 29 lag 6
setcycle 30 Condition 1b
setcycle 30 T1_Present y
setcycle 30 T1_Size 64
setcycle 30 T2_Present y
setcycle 30 T2_Size 32
setcycle 30 lag 7
setcycle 31 Condition 1b
setcycle 31 T1_Present y
setcycle 31 T1_Size 64
setcycle 31 T2_Present y
setcycle 31 T2_Size 32
setcycle 31 lag 8
run trial_sequence
define sequence block_sequence
set flush_keyboard yes
set description "A sequence containing a single block of trials followed by feedback to the participant"
run Instructions_1 always
run block_loop always
define sketchpad end_of_experiment
set start_response_interval no
set duration keypress
set description "A sketchpad notifying the participant that the experiment is finished"
draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text="Press any key to exit" x=0 y=0 z_index=0
define sketchpad end_of_practice
set start_response_interval no
set duration keypress
set description "A sketchpad notifying the participant that the practice phase is finished"
draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text="Press any key to continue" x=0 y=0 z_index=0
draw textline center=1 color=black font_bold=no font_family=mono font_italic=no font_size=32 html=yes show_if=always text="Practice Complete" x=-32 y=-160 z_index=0
define sequence experiment
set flush_keyboard yes
set description "The main sequence of the experiment"
run instructions always
run practice_loop always
run experimental_loop always
run end_of_experiment always
define loop experimental_loop
set source_file ""
set source table
set skip 0
set repeat 1
set order sequential
set offset no
set item block_sequence
set description "A loop containing one or more experimental blocks"
set cycles 1
set continuous no
set column_order practice
set break_if_on_first yes
set break_if never
setcycle 0 practice no
run block_sequence
define feedback feedback
set reset_variables yes
set duration keypress
set description "Provides feedback to the participant"
draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text="Your average response time was [avg_rt]ms
Your accuracy was [acc]%
Press any key to continue" x=0 y=0 z_index=0
define sketchpad instructions
set start_response_interval no
set duration keypress
set description "A sketchpad containing the instructions for the participant"
draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text="Press any key to begin!" x=0 y=0 z_index=0
define logger logger
set description "Logs experimental data"
set auto_log yes
define loop practice_loop
set source_file ""
set source table
set skip 0
set repeat 1
set order sequential
set offset no
set item block_sequence
set description "A loop containing one or more practice blocks"
set cycles 1
set continuous no
set column_order practice
set break_if_on_first yes
set break_if never
setcycle 0 practice yes
run block_sequence
define reset_feedback reset_feedback
set description "Resets the feedback variables, such as 'avg_rt' and 'acc'"
define sequence trial_sequence
set flush_keyboard yes
set description "A single trial"
run Fixation always
run RSVP always
run AskT1 always
run ResponseT1 always
run AskT2 always
run ResponseT2 always
run logger always
run end_of_practice always