--- API: 2.1 OpenSesame: 3.2.8 Platform: nt --- set width 1280 set uniform_coordinates yes set title "Practice 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 720 set fullscreen no set form_clicks no set foreground "#bcbcbc" set font_underline no set font_size 26 set font_italic no set font_family "Times New Roman" set font_bold no set experiment_path "C:\\Users\\phono\\Downloads" set disable_garbage_collection yes set description "The main experiment item" set coordinates uniform set compensation 0 set color_backend legacy set clock_backend legacy set canvas_backend xpyriment set background "#4f4f4f" define loop char_lp set source table set repeat 1 set order sequential set description "Repeatedly runs another item" set cycles 35 set continuous no set break_if_on_first yes set break_if "[response_t1] = enter" setcycle 0 num 1 setcycle 1 num 2 setcycle 2 num 3 setcycle 3 num 4 setcycle 4 num 5 setcycle 5 num 6 setcycle 6 num 7 setcycle 7 num 8 setcycle 8 num 9 setcycle 9 num 10 setcycle 10 num 11 setcycle 11 num 12 setcycle 12 num 13 setcycle 13 num 14 setcycle 14 num 15 setcycle 15 num 16 setcycle 16 num 17 setcycle 17 num 18 setcycle 18 num 19 setcycle 19 num 20 setcycle 20 num 21 setcycle 21 num 22 setcycle 22 num 23 setcycle 23 num 24 setcycle 24 num 25 setcycle 25 num 26 setcycle 26 num 27 setcycle 27 num 28 setcycle 28 num 29 setcycle 29 num 30 setcycle 30 num 31 setcycle 31 num 32 setcycle 32 num 33 setcycle 33 num 34 setcycle 34 num 35 run char_seq define sequence char_seq set flush_keyboard yes set description "Runs a number of items in sequence" run t1 always run text_js_1 always run t_feed_1 always define sequence experiment set flush_keyboard yes set description "Runs a number of items in sequence" run multichar_lp always define logger log_2 set description "Logs experimental data" set auto_log no log f_name log num_9 define loop multichar_lp set source_file "" set source table set repeat 1 set order random set description "Repeatedly runs another item" set cycles 1 set continuous no set break_if_on_first yes set break_if never setcycle 0 f_name " <<" setcycle 0 num_9 "_" setcycle 0 response_t1 x setcycle 0 response_t3 x run multichar_seq define sequence multichar_seq set flush_keyboard yes set description "Runs a number of items in sequence" run t_feed_1 always run char_lp always run num_lp always run log_2 always define loop num_lp set source table set repeat 1 set order sequential set description "Repeatedly runs another item" set cycles 35 set continuous no set break_if_on_first yes set break_if "[response_t3] = enter" setcycle 0 num 1 setcycle 1 num 2 setcycle 2 num 3 setcycle 3 num 4 setcycle 4 num 5 setcycle 5 num 6 setcycle 6 num 7 setcycle 7 num 8 setcycle 8 num 9 setcycle 9 num 10 setcycle 10 num 11 setcycle 11 num 12 setcycle 12 num 13 setcycle 13 num 14 setcycle 14 num 15 setcycle 15 num 16 setcycle 16 num 17 setcycle 17 num 18 setcycle 18 num 19 setcycle 19 num 20 setcycle 20 num 21 setcycle 21 num 22 setcycle 22 num 23 setcycle 23 num 24 setcycle 24 num 25 setcycle 25 num 26 setcycle 26 num 27 setcycle 27 num 28 setcycle 28 num 29 setcycle 29 num 30 setcycle 30 num 31 setcycle 31 num 32 setcycle 32 num 33 setcycle 33 num 34 setcycle 34 num 35 run num_seq define sequence num_seq set flush_keyboard yes set description "Runs a number of items in sequence" run t3 always run text_js_3 always run t_feed_1 always define keyboard_response t1 set timeout infinite set flush yes set event_type keypress set duration keypress set description "Collects keyboard responses" set allowed_responses "a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;backspace;enter" define keyboard_response t3 set timeout infinite set flush yes set event_type keypress set duration keypress set description "Collects keyboard responses" set allowed_responses "0;1;2;3;4;5;6;7;8;9;backspace;enter" define feedback t_feed_1 set reset_variables yes set duration 0 set description "Provides feedback to the participant" draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=30 html=yes show_if=always text="Multicharacter Response for OSWeb" x=-224 y=-320 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="First Name: [f_name]" x=-475 y=-28 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="9 Digit Number Input: [num_9]" x=-475 y=102 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="Press enter to continue to the next input. " x=39 y=37 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="WARNING: There are no spaces or capital letters available. And, once you hit enter you cannot" x=-475 y=-110 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="go back to change your response. The mouse, the num-pad, and TAB do not function." x=-475 y=-85 z_index=0 draw textline center=0 color="#bcbcbc" font_bold=no font_family="Times New Roman" font_italic=no font_size=22 html=yes show_if=always text="Press enter when finished." x=-107 y=250 z_index=0 draw rect color="#bcbcbc" fill=0 h=32 penwidth=1 show_if=always w=484 x=-480 y=-28 z_index=0 draw rect color="#bcbcbc" fill=0 h=32 penwidth=1 show_if=always w=484 x=-480 y=102 z_index=0 define inline_javascript text_js_1 set description "Executes JavaScript code (ECMA 5.1)" ___run__ vars.f_name = vars.f_name.slice(0, -3); //Slice the arrow off //BACKSPACE FUNCTION if (vars.response_t1 != 'backspace') { //keypress is not backspace if (vars.f_name == '0') { //When empty, add the keypress and the arrow vars.f_name = vars.response_t1 + ' <<'; } else{ vars.f_name = vars.f_name + vars.response_t1 + ' <<'; //otherwise continue the string } } else{ //If the keypress is backspace if (vars.f_name == '0') { //and the string is empty vars.f_name = ' <<'; //just add an arrow } else{ vars.f_name = vars.f_name.slice(0, -1); //otherwise slice the last character off if (vars.f_name == '0') { //if the string is empty after the backspace vars.f_name = ' <<'; //add a happy lil arrow } else{ vars.f_name = vars.f_name + ' <<'; //when it's not empty, just backspace } } } //ENTER FUNCTION if (vars.response_t1 == 'enter') { //When the participant presses enter vars.f_name = vars.f_name.slice(0, -8); //you have to slice the word 'enter' plus ' <<' vars.num_9 = ' <<' //Move onto the next input if (vars.f_name == '0') { vars.f_name = 'NO RESPONSE'; //Log a 'NO RESPONSE' if enter is pressed and the string is empty } } //NO MORE KEYPRESSES FUNCTION //The number of keypresses is set in the char_lp if (vars.num == 35 && vars.response_t1 != 'enter') { //If you've keypressed 35 times (this is changeable) vars.f_name = vars.f_name.slice(0, -3); //Get rid of the arrow vars.num_9 = ' <<' //And move onto the next item if (vars.f_name == '0') { //Log a 'NO RESPONSE' if empty vars.f_name = 'NO RESPONSE'; } } __end__ set _prepare "" define inline_javascript text_js_3 set description "Executes JavaScript code (ECMA 5.1)" ___run__ //Things are different with numbers, because they don't operate as strings //This is a numeric only input //Although most things are analogous to the char_seq //BACKSPACE FUNCTION if (vars.response_t3 != 'backspace') { if (vars.num_9.length > 11 && vars.response_t3.toString() != 'enter'){ //Cap input at 11 chars + change number to a string vars.num_9 = vars.num_9.slice(0, -1); } vars.num_9 = vars.num_9.slice(0, -3); //Take off arrows if (vars.num_9 == '0') { //If empty, add the keypress vars.num_9 = vars.response_t3.toString() + ' <<'; } else{ //Otherwise add the numbers as a string vars.num_9 = vars.num_9 + vars.response_t3.toString() + ' <<'; } } else{ //If the keypress is backspace, remove one character vars.num_9 = vars.num_9.toString().slice(0, -3); if (vars.num_9 == '0') { vars.num_9 = ' <<'; } else{ vars.num_9 = vars.num_9.toString().slice(0, -1); if (vars.num_9 == '0') { vars.num_9 = ' <<'; } else{ vars.num_9 = vars.num_9 + ' <<'; } } } //ENTER FUNCTION if (vars.response_t3 == 'enter') { vars.num_9 = vars.num_9.toString().slice(0, -8); if (vars.num_9 == '0') { vars.num_9 = 'NO RESPONSE'; //No need to add arrows because there is no third input } } //NO MORE KEYPRESSES FUNCTION //The number of keypresses is set in the num_lp if (vars.num == 35 && vars.response_t3 != 'enter') { vars.num_9 = vars.num_9.toString().slice(0, -3); if (vars.num_9 == '0') { vars.num_9 = 'NO RESPONSE'; } } __end__ set _prepare ""