···11+import * as path from 'path';
22+const rootFolder = __dirname;
33+const assetsDirectory = path.join(rootFolder, 'assets', 'labjs', 'multitasking');
44+15// Define study
26const studyObject = {
37 "title": "root",
···610 "plugins": [
711 {
812 "type": "lab.plugins.Metadata"
99- },
1010- {
1111- "type": "lab.plugins.Download",
1212- "filePrefix": "study"
1313 }
1414 ],
1515 "metadata": {
1616- "title": "",
1616+ "title": "Multitasking",
1717 "description": "",
1818 "repository": "",
1919 "contributors": ""
···4343 {
4444 "type": "lab.html.Screen",
4545 "files": {
4646- "diamond_2.png": "./utils/labjs/scripts/multitasking/diamond_2.png",
4747- "diamond_3.png": "./utils/labjs/scripts/multitasking/diamond_3.png",
4848- "rectangle_2.png": "./utils/labjs/scripts/multitasking/rectangle_2.png",
4949- "rectangle_3.png": "./utils/labjs/scripts/multitasking/rectangle_3.png",
5050- "filling.png": "./utils/labjs/scripts/multitasking/filling.png",
5151- "shape.png": "./utils/labjs/scripts/multitasking/shape.png",
5252- "example_1.png": "./utils/labjs/scripts/multitasking/example_1.png",
5353- "example_2.png": "./utils/labjs/scripts/multitasking/example_2.png",
5454- "example_3.png": "./utils/labjs/scripts/multitasking/example_3.png",
5555- "example_4.png": "./utils/labjs/scripts/multitasking/example_4.png",
5656- "all_conditions.png": "./utils/labjs/scripts/multitasking/all_conditions.png"
4646+ "diamond_2.png": `${assetsDirectory}/diamond_2.png`,
4747+ "diamond_3.png": `${assetsDirectory}/diamond_3.png`,
4848+ "rectangle_2.png": `${assetsDirectory}/rectangle_2.png`,
4949+ "rectangle_3.png": `${assetsDirectory}/rectangle_3.png`,
5050+ "filling.png": `${assetsDirectory}/filling.png`,
5151+ "shape.png": `${assetsDirectory}/shape.png`,
5252+ "example_1.png": `${assetsDirectory}/example_1.png`,
5353+ "example_2.png": `${assetsDirectory}/example_2.png`,
5454+ "example_3.png": `${assetsDirectory}/example_3.png`,
5555+ "example_4.png": `${assetsDirectory}/example_4.png`,
5656+ "all_conditions.png": `${assetsDirectory}/all_conditions.png`
5757 },
5858 "parameters": {},
5959 "responses": {
6060- "keypress(q)": "continue"
6060+ "keypress(p)": "continue"
6161 },
6262 "messageHandlers": {
6363 "before:prepare": function anonymous(
6464) {
6565this.options.events['keydown'] = (e) => {
6666- if(e.code === 'ArrowLeft' || e.code === 'ArrowRight'){
6666+6767+ if (e.code === 'KeyT') {
6868+ this.data.skipTraining = true
6969+ this.end()
7070+ }
7171+7272+ if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {
67736874 let instructions = document.querySelectorAll('div.instruction')
6975 let notFound = true
···94100}
95101 },
96102 "title": "Instructions",
9797- "content": "\u003Cmain\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_1' style=\"display:block\"\u003E\n \u003Cp\u003E\n In the following, you will respond to various figures. These are the figures that you will see: diamonds and rectangles with a filling of 2 or 3 dots:\n \u003C\u002Fp\u003E\n \u003Ctable\u003E\n \u003Cthead\u003E\n \u003Ctr\u003E\n \u003Cth\u003EDiamond with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003EDiamond with filling of 2 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 2 dots\u003C\u002Fth\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Fthead\u003E\n \u003Ctbody\u003E\n \u003Ctr\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Ftbody\u003E\n \u003C\u002Ftable\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_2' style=\"display:none\"\u003E\n\n \u003Cp\u003E\n You will be shown these figures in sequences of trials.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Each time you will need to respond with a button press.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n How exactly will be explained in the next screens.\n \u003C\u002Fp\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_3' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the shape task, a diamond requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, a rectangle requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this task, ignore the filling (dots) of the shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['shape.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_4' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the filling task, a filling of two dots requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, a filling with three dots requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, ignore the outer shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['filling.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_5' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 1. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a diamond, which requires a button press of the keyboard key \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling dots!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_1.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_6' style=\"display:none\" style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 2. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 3 dots, and thus press the keyboard key \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_2.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_7' style=\"display:none\"\u003E\n \u003Cimg src=${this.files['example_3.png']} style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 3. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a rectangle, which requires the \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling (here 2 dots)!!!\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_8' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 4. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 2 dots, and thus press \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_4.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\n\u003Cdiv class=\"instruction\" id='screen_9' style=\"display:none\"\u003E\n \u003Cp\u003E\n Here, you can see how to respond in all conditions...\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Just look at shape in the shape task, and at the dots in the filling task...\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['all_conditions.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_10' style=\"display:none\"\u003E\n \u003Cp\u003E\n Are you ready? Press the \"q\" button on your keyboard to quit the instructions and start doing the task.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Or you can browse back to the previous screens until you understand what you need to do in the two tasks (use the arrow keys).\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003C\u002Fmain\u003E\n\n\n\u003Cfooter\u003E\n Use left\u002Fright arrow keys to go further or back.\n\u003C\u002Ffooter\u003E"
103103+ "content": "\u003Cmain\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_1' style=\"display:block\"\u003E\n \u003Cp\u003E\n In the following, you will respond to various figures. These are the figures that you will see: diamonds and rectangles with a filling of 2 or 3 dots:\n \u003C\u002Fp\u003E\n \u003Ctable\u003E\n \u003Cthead\u003E\n \u003Ctr\u003E\n \u003Cth\u003EDiamond with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003EDiamond with filling of 2 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 3 dots\u003C\u002Fth\u003E\n \u003Cth\u003ERectangle with filling of 2 dots\u003C\u002Fth\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Fthead\u003E\n \u003Ctbody\u003E\n \u003Ctr\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['diamond_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_3.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003Ctd\u003E\u003Cimg src=${this.files['rectangle_2.png']} style=\"width:100px\"\u003E\u003C\u002Ftd\u003E\n \u003C\u002Ftr\u003E\n \u003C\u002Ftbody\u003E\n \u003C\u002Ftable\u003E\n \u003Cp\u003E\n Use the right arrow key to move to the next instruction.\n \u003C\u002Fp\u003E\n\n \u003Cp\u003E\n If you want to skip the instruction with practice trials and go directly to the task, press the \"t\" button on your keyboard.\n \u003C\u002Fp\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_2' style=\"display:none\"\u003E\n\n \u003Cp\u003E\n You will be shown these figures in sequences of trials.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Each time you will need to respond with a button press.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n How exactly will be explained in the next screens.\n \u003C\u002Fp\u003E\n\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_3' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the shape task, a diamond requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, a rectangle requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this task, ignore the filling (dots) of the shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['shape.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_4' style=\"display:none\"\u003E\n \u003Cp\u003E\n In the filling task, a filling of two dots requires a b button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, a filling with three dots requires a n button press. \n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, ignore the outer shape!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['filling.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_5' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 1. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a diamond, which requires a button press of the keyboard key \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling dots!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_1.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_6' style=\"display:none\" style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 2. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 3 dots, and thus press the keyboard key \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_2.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_7' style=\"display:none\"\u003E\n \u003Cimg src=${this.files['example_3.png']} style=\"width:400px\"\u003E\n \u003Cp\u003E\n Example 3. If you see a figure in the upper part of the frame, you know you need to do the shape task, that is easy, because the word shape is at the top. Here you see a rectangle, which requires the \u003Cstrong\u003E\u003Cem\u003En\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the shape task, entirely ignore the filling (here 2 dots)!!!\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_8' style=\"display:none\"\u003E\n \u003Cp\u003E\n Example 4. If you see a figure in the lower part of the frame, you know you need to do the filling task, that is easy, because the word filling is at the bottom. This diamond is filled with 2 dots, and thus press \u003Cstrong\u003E\u003Cem\u003Eb\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E key.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In the filling task, entirely ignore the outer shape (here a diamond)!!!\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['example_4.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\n\u003Cdiv class=\"instruction\" id='screen_9' style=\"display:none\"\u003E\n \u003Cp\u003E\n Here, you can see how to respond in all conditions...\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Just look at shape in the shape task, and at the dots in the filling task...\n \u003C\u002Fp\u003E\n \u003Cimg src=${this.files['all_conditions.png']} style=\"width:400px\"\u003E\n\u003C\u002Fdiv\u003E\n\n\u003Cdiv class=\"instruction\" id='screen_10' style=\"display:none\"\u003E\n \u003Cp\u003E\n Are you ready? Press the \"p\" button on your keyboard to quit the instructions and start doing the practice trials.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n Or you can browse back to the previous screens until you understand what you need to do in the two tasks (use the arrow keys).\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n If you want to skip practice trials and go directly to the task, press the \"t\" button on your keyboard.\n \u003C\u002Fp\u003E\n\u003C\u002Fdiv\u003E\n\n\u003C\u002Fmain\u003E\n\n\n\u003Cfooter\u003E\n Use left\u002Fright arrow keys to go further or back.\n\u003C\u002Ffooter\u003E"
98104 },
99105 {
100106 "type": "lab.flow.Loop",
···104110 {
105111 "block": "shape",
106112 "task": "training",
107107- "num_trials": "5"
113113+ "num_trials": "5",
114114+ "cond": "No switching"
108115 },
109116 {
110117 "block": "filling",
111118 "task": "training",
112112- "num_trials": "5"
119119+ "num_trials": "5",
120120+ "cond": "No switching"
113121 },
114122 {
115123 "block": "mixed",
116124 "task": "training",
117117- "num_trials": "10"
125125+ "num_trials": "10",
126126+ "cond": "Switching"
118127 },
119128 {
120129 "block": "shape",
121130 "task": "main",
122122- "num_trials": "15"
131131+ "num_trials": "15",
132132+ "cond": "No switching"
123133 },
124134 {
125135 "block": "filling",
126136 "task": "main",
127127- "num_trials": "15"
137137+ "num_trials": "15",
138138+ "cond": "No switching"
128139 },
129140 {
130141 "block": "mixed",
131142 "task": "main",
132132- "num_trials": "30"
143143+ "num_trials": "30",
144144+ "cond": "Switching"
133145 }
134146 ],
135147 "sample": {
···139151 "responses": {},
140152 "messageHandlers": {},
141153 "title": "Block loop",
154154+ "tardy": true,
142155 "shuffleGroups": [],
143156 "template": {
144157 "type": "lab.flow.Sequence",
···147160 "responses": {},
148161 "messageHandlers": {},
149162 "title": "Block sequence",
163163+ "skip": "${this.parameters.task === 'training' && this.state.skipTraining === true}",
150164 "content": [
151165 {
152166 "type": "lab.canvas.Screen",
···19041918 "messageHandlers": {
19051919 "before:prepare": function anonymous(
19061920) {
19071907-19081921this.data.trial_number = 1 + parseInt(this.options.id.split('_')[this.options.id.split('_').length-2]);
19091909-this.data.condition = this.parameters.type.charAt(0).toUpperCase() + this.parameters.type.slice(1);
19221922+this.data.condition = this.parameters.cond;
19101923this.data.reaction_time = this.state.duration;
1911192419121925if(this.state.response === this.parameters.cor_response){
···19151928 this.data.correct_response = false;
19161929}
1917193019181918-this.data.response_given = this.state.correct === 'empty' ? 'no' : 'yes';
19191919-19201920-19211921-19311931+if(this.parameters.task === 'main'){
19321932+ this.data.response_given = this.state.correct === 'empty' ? 'no' : 'yes';
19331933+} else {
19341934+ this.data.response_given = 'practice';
19351935+}
192219361923193719241938}
+23-26
app/utils/labjs/scripts/stroop.js
···66 "plugins": [
77 {
88 "type": "lab.plugins.Metadata"
99- },
1010- {
1111- "type": "lab.plugins.Download",
1212- "filePrefix": "stroop-task"
139 }
1410 ],
1511 "metadata": {
···2925 "keypress(Space)": "continue"
3026 },
3127 "title": "Instruction",
3232- "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EStroop Task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n Welcome to the \u003Cstrong\u003EStroop experiment\u003C\u002Fstrong\u003E!\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this experiment, your task will be to \n \u003Cstrong\u003Eidentify the color of the word shown \n on the screen\u003C\u002Fstrong\u003E.\u003Cbr\u003E\n The word itself is immaterial — \n you can safely ignore it.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n To indicate the color of the word, \n please use the keys \u003Cstrong\u003Er\u003C\u002Fstrong\u003E, \n \u003Cstrong\u003Eg\u003C\u002Fstrong\u003E, \u003Cstrong\u003Eb\u003C\u002Fstrong\u003E and \n \u003Cstrong\u003Eo\u003C\u002Fstrong\u003E for \n \u003Cspan style=\"color: red;\"\u003Ered\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: green;\"\u003Egreen\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: blue;\"\u003Eblue\u003C\u002Fspan\u003E and \n \u003Cspan style=\"color: orange;\"\u003Eorange\u003C\u002Fspan\u003E, \n respectively.\u003Cbr\u003E\n Please answer quickly, and as \n accurately as you can.\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n Please press the space bar when you're ready.\n\u003C\u002Ffooter\u003E\n",
2828+ "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EStroop Task\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n Welcome to the \u003Cstrong\u003EStroop experiment\u003C\u002Fstrong\u003E!\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n In this experiment, your task will be to \n \u003Cstrong\u003Eidentify the color of the word shown \n on the screen\u003C\u002Fstrong\u003E.\u003Cbr\u003E\n The word itself is immaterial — \n you can safely ignore it.\n \u003C\u002Fp\u003E\n \u003Cp\u003E\n To indicate the color of the word, \n please use the keys \u003Cstrong\u003Er\u003C\u002Fstrong\u003E, \n \u003Cstrong\u003Eg\u003C\u002Fstrong\u003E, \u003Cstrong\u003Eb\u003C\u002Fstrong\u003E and \n \u003Cstrong\u003Ey\u003C\u002Fstrong\u003E for \n \u003Cspan style=\"color: red;\"\u003Ered\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: green;\"\u003Egreen\u003C\u002Fspan\u003E, \n \u003Cspan style=\"color: blue;\"\u003Eblue\u003C\u002Fspan\u003E and \n \u003Cspan style=\"color: #ffe32a;\"\u003Eyellow\u003C\u002Fspan\u003E, \n respectively.\u003Cbr\u003E\n Please answer quickly, and as \n accurately as you can.\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n Please press the space bar when you're ready.\n\u003C\u002Ffooter\u003E\n",
3329 "parameters": {},
3430 "files": {}
3531 },
3632 {
3733 "type": "lab.canvas.Frame",
3838- "context": "\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ccanvas \u002F\u003E\n\u003C\u002Fmain\u003E\n\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n What's the \u003Cem\u003Ecolor\u003C\u002Fem\u003E of \n the word shown above? \u003Cbr\u003E\n Please press \u003Ckbd\u003Er\u003C\u002Fkbd\u003E for red,\n \u003Ckbd\u003Eg\u003C\u002Fkbd\u003E for green,\n \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E for blue and \u003Ckbd\u003Eo\u003C\u002Fkbd\u003E for orange.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n",
3434+ "context": "\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ccanvas \u002F\u003E\n\u003C\u002Fmain\u003E\n\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n What's the \u003Cem\u003Ecolor\u003C\u002Fem\u003E of \n the word shown above? \u003Cbr\u003E\n Please press \u003Ckbd\u003Er\u003C\u002Fkbd\u003E for red,\n \u003Ckbd\u003Eg\u003C\u002Fkbd\u003E for green,\n \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E for blue and \u003Ckbd\u003Ey\u003C\u002Fkbd\u003E for yellow.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n",
3935 "contextSelector": "canvas",
4036 "files": {},
4137 "parameters": {},
···6359 "phase": "practice"
6460 },
6561 {
6666- "color": "orange",
6767- "word": "orange",
6262+ "color": "#ffe32a",
6363+ "word": "yellow",
6864 "phase": "practice"
6965 }
7066 ],
···209205 "keydown(r)": "red",
210206 "keydown(g)": "green",
211207 "keydown(b)": "blue",
212212- "keydown(o)": "orange"
208208+ "keydown(y)": "#ffe32a"
213209 },
214210 "messageHandlers": {},
215211 "viewport": [
···260256 },
261257 {
262258 "type": "lab.canvas.Frame",
263263- "context": "\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ccanvas \u002F\u003E\n\u003C\u002Fmain\u003E\n\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n What's the \u003Cem\u003Ecolor\u003C\u002Fem\u003E of \n the word shown above? \u003Cbr\u003E\n Please press \u003Ckbd\u003Er\u003C\u002Fkbd\u003E for red,\n \u003Ckbd\u003Eg\u003C\u002Fkbd\u003E for green,\n \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E for blue and \u003Ckbd\u003Eo\u003C\u002Fkbd\u003E for orange.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n",
259259+ "context": "\u003Cmain class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ccanvas \u002F\u003E\n\u003C\u002Fmain\u003E\n\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n What's the \u003Cem\u003Ecolor\u003C\u002Fem\u003E of \n the word shown above? \u003Cbr\u003E\n Please press \u003Ckbd\u003Er\u003C\u002Fkbd\u003E for red,\n \u003Ckbd\u003Eg\u003C\u002Fkbd\u003E for green,\n \u003Ckbd\u003Eb\u003C\u002Fkbd\u003E for blue and \u003Ckbd\u003Ey\u003C\u002Fkbd\u003E for yellow.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n",
264260 "contextSelector": "canvas",
265261 "files": {},
266262 "parameters": {},
···304300 },
305301 {
306302 "color": "red",
307307- "word": "orange",
303303+ "word": "yellow",
308304 "phase": "task",
309305 "congruent": "no"
310306 },
···340336 },
341337 {
342338 "color": "green",
343343- "word": "orange",
339339+ "word": "yellow",
344340 "phase": "task",
345341 "congruent": "no"
346342 },
···376372 },
377373 {
378374 "color": "blue",
379379- "word": "orange",
375375+ "word": "yellow",
380376 "phase": "task",
381377 "congruent": "no"
382378 },
383379 {
384384- "color": "orange",
380380+ "color": "#ffe32a",
385381 "word": "red",
386382 "phase": "task",
387383 "congruent": "no"
388384 },
389385 {
390390- "color": "orange",
386386+ "color": "#ffe32a",
391387 "word": "green",
392388 "phase": "task",
393389 "congruent": "no"
394390 },
395391 {
396396- "color": "orange",
392392+ "color": "#ffe32a",
397393 "word": "blue",
398394 "phase": "task",
399395 "congruent": "no"
400396 },
401397 {
402402- "color": "orange",
403403- "word": "orange",
398398+ "color": "#ffe32a",
399399+ "word": "yellow",
404400 "phase": "task",
405401 "congruent": "yes"
406402 },
407403 {
408408- "color": "orange",
409409- "word": "orange",
404404+ "color": "#ffe32a",
405405+ "word": "yellow",
410406 "phase": "task",
411407 "congruent": "yes"
412408 },
413409 {
414414- "color": "orange",
415415- "word": "orange",
410410+ "color": "#ffe32a",
411411+ "word": "yellow",
416412 "phase": "task",
417413 "congruent": "yes"
418414 }
···421417 "parameters": {},
422418 "files": {},
423419 "sample": {
424424- "mode": "draw-shuffle"
420420+ "mode": "draw-shuffle",
421421+ "n": "96"
425422 },
426423 "shuffleGroups": [],
427424 "template": {
···558555 "keydown(r)": "red",
559556 "keydown(g)": "green",
560557 "keydown(b)": "blue",
561561- "keydown(o)": "orange"
558558+ "keydown(y)": "#ffe32a"
562559 },
563560 "messageHandlers": {},
564561 "viewport": [
···612609 "type": "lab.html.Screen",
613610 "responses": {},
614611 "title": "Thanks",
615615- "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EThank you!\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\u003Cmain\u003E\n \u003Cp\u003E\n You did a great job, thanks for taking the time!\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\u003Cfooter class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Cp\u003E\n If you have any questions or comments about this \n experiment,\u003Cbr\u003E please be invited to contact\n \u003Ca href=\"http:\u002F\u002Ffelixhenninger.com\"\u003E\n Felix Henninger\u003C\u002Fa\u003E.\n \u003C\u002Fp\u003E\n\u003C\u002Ffooter\u003E\n",
616616- "timeout": "10",
612612+ "content": "\u003Cheader class=\"content-vertical-center content-horizontal-center\"\u003E\n \u003Ch1\u003EThank you!\u003C\u002Fh1\u003E\n\u003C\u002Fheader\u003E\n\n\u003Cmain\u003E\n \u003Cp\u003E\n You did a great job, thanks for taking the time!\n \u003C\u002Fp\u003E\n\u003C\u002Fmain\u003E\n\n",
613613+ "timeout": "1000",
617614 "parameters": {},
618615 "files": {}
619616 }