Advertisement
LeeB_86

Phono_1234 ver.4million

Sep 9th, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 57.37 KB | None | 0 0
  1. # Generated by OpenSesame 0.27.3 (Frisky Freud)
  2. # Mon Sep 09 16:51:11 2013 (nt)
  3. # <http://www.cogsci.nl/opensesame>
  4.  
  5. set mouse_backend "xpyriment"
  6. set subject_parity "even"
  7. set height "768"
  8. set font_family "sans"
  9. set font_italic "no"
  10. set custom_cursor "yes"
  11. set synth_backend "legacy"
  12. set title "phonological_1234"
  13. set coordinates "relative"
  14. set start "experiment"
  15. set sampler_backend "legacy"
  16. set transparent_variables "no"
  17. set foreground "Black"
  18. set font_bold "no"
  19. set description "Default description"
  20. set background "White"
  21. set font_size "20"
  22. set enable_escape "yes"
  23. set keyboard_backend "legacy"
  24. set canvas_backend "xpyriment"
  25. set compensation "0"
  26. set subject_nr "0"
  27. set width "1366"
  28.  
  29. define loop s3_block_loop
  30.     set repeat "1"
  31.     set description "Repeatedly runs another item"
  32.     set skip "0"
  33.     set item "s3_trial_sequence"
  34.     set column_order "frame_colour;pair_colour;pair_font;correct_cue_response"
  35.     set cycles "50"
  36.     set order "sequential"
  37.     setcycle 0 pair_colour "Black"
  38.     setcycle 0 frame_colour "Black"
  39.     setcycle 0 correct_cue_response ""
  40.     setcycle 0 pair_font "Sans"
  41.     setcycle 1 pair_colour "Black"
  42.     setcycle 1 frame_colour "Black"
  43.     setcycle 1 correct_cue_response ""
  44.     setcycle 1 pair_font "Sans"
  45.     setcycle 2 pair_colour "Black"
  46.     setcycle 2 frame_colour "Black"
  47.     setcycle 2 correct_cue_response ""
  48.     setcycle 2 pair_font "Sans"
  49.     setcycle 3 pair_colour "Black"
  50.     setcycle 3 frame_colour "Black"
  51.     setcycle 3 correct_cue_response ""
  52.     setcycle 3 pair_font "Sans"
  53.     setcycle 4 pair_colour "Red"
  54.     setcycle 4 frame_colour "Black"
  55.     setcycle 4 correct_cue_response "r"
  56.     setcycle 4 pair_font "Sans"
  57.     setcycle 5 pair_colour "Black"
  58.     setcycle 5 frame_colour "Black"
  59.     setcycle 5 correct_cue_response ""
  60.     setcycle 5 pair_font "Sans"
  61.     setcycle 6 pair_colour "Black"
  62.     setcycle 6 frame_colour "Black"
  63.     setcycle 6 correct_cue_response ""
  64.     setcycle 6 pair_font "Sans"
  65.     setcycle 7 pair_colour "Black"
  66.     setcycle 7 frame_colour "Black"
  67.     setcycle 7 correct_cue_response ""
  68.     setcycle 7 pair_font "Sans"
  69.     setcycle 8 pair_colour "Black"
  70.     setcycle 8 frame_colour "Black"
  71.     setcycle 8 correct_cue_response ""
  72.     setcycle 8 pair_font "Sans"
  73.     setcycle 9 pair_colour "Black"
  74.     setcycle 9 frame_colour "Black"
  75.     setcycle 9 correct_cue_response "f"
  76.     setcycle 9 pair_font "Serif"
  77.     setcycle 10 pair_colour "Black"
  78.     setcycle 10 frame_colour "Black"
  79.     setcycle 10 correct_cue_response ""
  80.     setcycle 10 pair_font "Sans"
  81.     setcycle 11 pair_colour "Black"
  82.     setcycle 11 frame_colour "Black"
  83.     setcycle 11 correct_cue_response ""
  84.     setcycle 11 pair_font "Sans"
  85.     setcycle 12 pair_colour "Black"
  86.     setcycle 12 frame_colour "Black"
  87.     setcycle 12 correct_cue_response ""
  88.     setcycle 12 pair_font "Sans"
  89.     setcycle 13 pair_colour "Black"
  90.     setcycle 13 frame_colour "Black"
  91.     setcycle 13 correct_cue_response ""
  92.     setcycle 13 pair_font "Sans"
  93.     setcycle 14 pair_colour "Black"
  94.     setcycle 14 frame_colour "Black"
  95.     setcycle 14 correct_cue_response ""
  96.     setcycle 14 pair_font "Sans"
  97.     setcycle 15 pair_colour "Black"
  98.     setcycle 15 frame_colour "Black"
  99.     setcycle 15 correct_cue_response ""
  100.     setcycle 15 pair_font "Sans"
  101.     setcycle 16 pair_colour "Black"
  102.     setcycle 16 frame_colour "Black"
  103.     setcycle 16 correct_cue_response ""
  104.     setcycle 16 pair_font "Sans"
  105.     setcycle 17 pair_colour "Black"
  106.     setcycle 17 frame_colour "Black"
  107.     setcycle 17 correct_cue_response ""
  108.     setcycle 17 pair_font "Sans"
  109.     setcycle 18 pair_colour "Black"
  110.     setcycle 18 frame_colour "Black"
  111.     setcycle 18 correct_cue_response ""
  112.     setcycle 18 pair_font "Sans"
  113.     setcycle 19 pair_colour "Black"
  114.     setcycle 19 frame_colour "Black"
  115.     setcycle 19 correct_cue_response ""
  116.     setcycle 19 pair_font "Sans"
  117.     setcycle 20 pair_colour "Black"
  118.     setcycle 20 frame_colour "Black"
  119.     setcycle 20 correct_cue_response ""
  120.     setcycle 20 pair_font "Sans"
  121.     setcycle 21 pair_colour "Black"
  122.     setcycle 21 frame_colour "Black"
  123.     setcycle 21 correct_cue_response ""
  124.     setcycle 21 pair_font "Sans"
  125.     setcycle 22 pair_colour "Black"
  126.     setcycle 22 frame_colour "Black"
  127.     setcycle 22 correct_cue_response ""
  128.     setcycle 22 pair_font "Sans"
  129.     setcycle 23 pair_colour "Black"
  130.     setcycle 23 frame_colour "Black"
  131.     setcycle 23 correct_cue_response ""
  132.     setcycle 23 pair_font "Sans"
  133.     setcycle 24 pair_colour "Black"
  134.     setcycle 24 frame_colour "Black"
  135.     setcycle 24 correct_cue_response ""
  136.     setcycle 24 pair_font "Sans"
  137.     setcycle 25 pair_colour "Black"
  138.     setcycle 25 frame_colour "Black"
  139.     setcycle 25 correct_cue_response ""
  140.     setcycle 25 pair_font "Sans"
  141.     setcycle 26 pair_colour "Black"
  142.     setcycle 26 frame_colour "Black"
  143.     setcycle 26 correct_cue_response ""
  144.     setcycle 26 pair_font "Sans"
  145.     setcycle 27 pair_colour "Black"
  146.     setcycle 27 frame_colour "Black"
  147.     setcycle 27 correct_cue_response ""
  148.     setcycle 27 pair_font "Sans"
  149.     setcycle 28 pair_colour "Black"
  150.     setcycle 28 frame_colour "Black"
  151.     setcycle 28 correct_cue_response ""
  152.     setcycle 28 pair_font "Sans"
  153.     setcycle 29 pair_colour "Black"
  154.     setcycle 29 frame_colour "Orange"
  155.     setcycle 29 correct_cue_response "o"
  156.     setcycle 29 pair_font "Sans"
  157.     setcycle 30 pair_colour "Black"
  158.     setcycle 30 frame_colour "Black"
  159.     setcycle 30 correct_cue_response ""
  160.     setcycle 30 pair_font "Sans"
  161.     setcycle 31 pair_colour "Black"
  162.     setcycle 31 frame_colour "Black"
  163.     setcycle 31 correct_cue_response ""
  164.     setcycle 31 pair_font "Sans"
  165.     setcycle 32 pair_colour "Black"
  166.     setcycle 32 frame_colour "Black"
  167.     setcycle 32 correct_cue_response ""
  168.     setcycle 32 pair_font "Sans"
  169.     setcycle 33 pair_colour "Black"
  170.     setcycle 33 frame_colour "Black"
  171.     setcycle 33 correct_cue_response ""
  172.     setcycle 33 pair_font "Sans"
  173.     setcycle 34 pair_colour "Red"
  174.     setcycle 34 frame_colour "Black"
  175.     setcycle 34 correct_cue_response "r"
  176.     setcycle 34 pair_font "Sans"
  177.     setcycle 35 pair_colour "Black"
  178.     setcycle 35 frame_colour "Black"
  179.     setcycle 35 correct_cue_response ""
  180.     setcycle 35 pair_font "Sans"
  181.     setcycle 36 pair_colour "Black"
  182.     setcycle 36 frame_colour "Black"
  183.     setcycle 36 correct_cue_response ""
  184.     setcycle 36 pair_font "Sans"
  185.     setcycle 37 pair_colour "Black"
  186.     setcycle 37 frame_colour "Black"
  187.     setcycle 37 correct_cue_response ""
  188.     setcycle 37 pair_font "Sans"
  189.     setcycle 38 pair_colour "Black"
  190.     setcycle 38 frame_colour "Black"
  191.     setcycle 38 correct_cue_response ""
  192.     setcycle 38 pair_font "Sans"
  193.     setcycle 39 pair_colour "Black"
  194.     setcycle 39 frame_colour "Black"
  195.     setcycle 39 correct_cue_response "f"
  196.     setcycle 39 pair_font "Serif"
  197.     setcycle 40 pair_colour "Black"
  198.     setcycle 40 frame_colour "Black"
  199.     setcycle 40 correct_cue_response ""
  200.     setcycle 40 pair_font "Sans"
  201.     setcycle 41 pair_colour "Black"
  202.     setcycle 41 frame_colour "Black"
  203.     setcycle 41 correct_cue_response ""
  204.     setcycle 41 pair_font "Sans"
  205.     setcycle 42 pair_colour "Black"
  206.     setcycle 42 frame_colour "Black"
  207.     setcycle 42 correct_cue_response ""
  208.     setcycle 42 pair_font "Sans"
  209.     setcycle 43 pair_colour "Black"
  210.     setcycle 43 frame_colour "Black"
  211.     setcycle 43 correct_cue_response ""
  212.     setcycle 43 pair_font "Sans"
  213.     setcycle 44 pair_colour "Black"
  214.     setcycle 44 frame_colour "Orange"
  215.     setcycle 44 correct_cue_response "o"
  216.     setcycle 44 pair_font "Sans"
  217.     setcycle 45 pair_colour "Black"
  218.     setcycle 45 frame_colour "Black"
  219.     setcycle 45 correct_cue_response ""
  220.     setcycle 45 pair_font "Sans"
  221.     setcycle 46 pair_colour "Black"
  222.     setcycle 46 frame_colour "Black"
  223.     setcycle 46 correct_cue_response ""
  224.     setcycle 46 pair_font "Sans"
  225.     setcycle 47 pair_colour "Black"
  226.     setcycle 47 frame_colour "Black"
  227.     setcycle 47 correct_cue_response ""
  228.     setcycle 47 pair_font "Sans"
  229.     setcycle 48 pair_colour "Black"
  230.     setcycle 48 frame_colour "Black"
  231.     setcycle 48 correct_cue_response ""
  232.     setcycle 48 pair_font "Sans"
  233.     setcycle 49 pair_colour "Black"
  234.     setcycle 49 frame_colour "Black"
  235.     setcycle 49 correct_cue_response ""
  236.     setcycle 49 pair_font "Sans"
  237.     run s3_trial_sequence
  238.  
  239. define inline_script s3_keyboard_response
  240.     set _run ""
  241.     ___prepare__
  242.     from openexp.keyboard import keyboard
  243.    
  244.     # The keypress timeout
  245.     timeout = 2000
  246.    
  247.     # We poll for two responses. The first 'keyboard_response_1'
  248.     # waits for a 'z' or an 'm'. The second waits for an 'o', 'r' or 'f'. These
  249.     # responses can be given in arbitrary order, are stored in
  250.     # different variables, and can time out independently of each
  251.     # other.
  252.     exp.set('keyboard_response_1', None)
  253.     exp.set('keyboard_response_time_1', None)
  254.     keylist_1 = ['z', 'm']
  255.     exp.set('keyboard_response_2', None)
  256.     exp.set('keyboard_response_time_2', None)
  257.     keylist_2 = ['o', 'r', 'f']
  258.    
  259.     # Create a keyboard object that doesn't block the
  260.     # experiment, so we can use it to poll for keypresses
  261.     # continuously.
  262.     my_keyboard = keyboard(exp, timeout=0)
  263.    
  264.     # Loop until we timeout
  265.     start_time = self.time()
  266.     while self.time() - timeout < start_time:
  267.         key, key_time = my_keyboard.get_key()
  268.    
  269.         # If a key from keylist 1 is pressed, set keyboard_response_1
  270.         # and keyboard_response_time_1. Also, set key_list_1 to [], so
  271.         # that we do not capture multiple keypresses from this list.
  272.         if key in keylist_1:
  273.             exp.set('keyboard_response_1', key)
  274.             exp.set('keyboard_response_time_1', key_time - start_time)
  275.             keylist_1 = []
  276.    
  277.         # The same principle is applied for keylist 2.
  278.         if key in keylist_2:
  279.             exp.set('keyboard_response_2', key)
  280.             exp.set('keyboard_response_time_2', key_time - start_time)
  281.             keylist_2 = []
  282.    
  283.     # Create a variable to check the key response against the expected response:
  284.     if self.get('keyboard_response_1') == self.get('correct_ongoing_response'):
  285.         correct_1 = '1'
  286.     else:
  287.         correct_1 = '0'
  288.     exp.set("correct_1", correct_1)
  289.    
  290.     # ... Do the same for the second response:
  291.     if self.get('keyboard_response_2') == self.get('correct_cue_response'):
  292.         correct_2 = '1'
  293.     else:
  294.         correct_2 = '0'
  295.     exp.set("correct_2", correct_2)
  296.     __end__
  297.     set description "Executes Python code"
  298.  
  299. define loop s1_block_loop
  300.     set repeat "1"
  301.     set description "Repeatedly runs another item"
  302.     set skip "0"
  303.     set item "s1_trial_sequence"
  304.     set column_order "frame_colour;correct_cue_response"
  305.     set cycles "50"
  306.     set order "sequential"
  307.     setcycle 0 frame_colour "Black"
  308.     setcycle 0 correct_cue_response ""
  309.     setcycle 1 frame_colour "Black"
  310.     setcycle 1 correct_cue_response ""
  311.     setcycle 2 frame_colour "Black"
  312.     setcycle 2 correct_cue_response ""
  313.     setcycle 3 frame_colour "Black"
  314.     setcycle 3 correct_cue_response ""
  315.     setcycle 4 frame_colour "Black"
  316.     setcycle 4 correct_cue_response ""
  317.     setcycle 5 frame_colour "Black"
  318.     setcycle 5 correct_cue_response ""
  319.     setcycle 6 frame_colour "Black"
  320.     setcycle 6 correct_cue_response ""
  321.     setcycle 7 frame_colour "Black"
  322.     setcycle 7 correct_cue_response ""
  323.     setcycle 8 frame_colour "Black"
  324.     setcycle 8 correct_cue_response ""
  325.     setcycle 9 frame_colour "Black"
  326.     setcycle 9 correct_cue_response ""
  327.     setcycle 10 frame_colour "Black"
  328.     setcycle 10 correct_cue_response ""
  329.     setcycle 11 frame_colour "Black"
  330.     setcycle 11 correct_cue_response ""
  331.     setcycle 12 frame_colour "Black"
  332.     setcycle 12 correct_cue_response ""
  333.     setcycle 13 frame_colour "Black"
  334.     setcycle 13 correct_cue_response ""
  335.     setcycle 14 frame_colour "Black"
  336.     setcycle 14 correct_cue_response ""
  337.     setcycle 15 frame_colour "Black"
  338.     setcycle 15 correct_cue_response ""
  339.     setcycle 16 frame_colour "Black"
  340.     setcycle 16 correct_cue_response ""
  341.     setcycle 17 frame_colour "Black"
  342.     setcycle 17 correct_cue_response ""
  343.     setcycle 18 frame_colour "Black"
  344.     setcycle 18 correct_cue_response ""
  345.     setcycle 19 frame_colour "Green"
  346.     setcycle 19 correct_cue_response "1"
  347.     setcycle 20 frame_colour "Black"
  348.     setcycle 20 correct_cue_response ""
  349.     setcycle 21 frame_colour "Black"
  350.     setcycle 21 correct_cue_response ""
  351.     setcycle 22 frame_colour "Black"
  352.     setcycle 22 correct_cue_response ""
  353.     setcycle 23 frame_colour "Black"
  354.     setcycle 23 correct_cue_response ""
  355.     setcycle 24 frame_colour "Black"
  356.     setcycle 24 correct_cue_response ""
  357.     setcycle 25 frame_colour "Black"
  358.     setcycle 25 correct_cue_response ""
  359.     setcycle 26 frame_colour "Black"
  360.     setcycle 26 correct_cue_response ""
  361.     setcycle 27 frame_colour "Black"
  362.     setcycle 27 correct_cue_response ""
  363.     setcycle 28 frame_colour "Black"
  364.     setcycle 28 correct_cue_response ""
  365.     setcycle 29 frame_colour "Black"
  366.     setcycle 29 correct_cue_response ""
  367.     setcycle 30 frame_colour "Black"
  368.     setcycle 30 correct_cue_response ""
  369.     setcycle 31 frame_colour "Black"
  370.     setcycle 31 correct_cue_response ""
  371.     setcycle 32 frame_colour "Black"
  372.     setcycle 32 correct_cue_response ""
  373.     setcycle 33 frame_colour "Black"
  374.     setcycle 33 correct_cue_response ""
  375.     setcycle 34 frame_colour "Black"
  376.     setcycle 34 correct_cue_response ""
  377.     setcycle 35 frame_colour "Black"
  378.     setcycle 35 correct_cue_response ""
  379.     setcycle 36 frame_colour "Black"
  380.     setcycle 36 correct_cue_response ""
  381.     setcycle 37 frame_colour "Black"
  382.     setcycle 37 correct_cue_response ""
  383.     setcycle 38 frame_colour "Black"
  384.     setcycle 38 correct_cue_response ""
  385.     setcycle 39 frame_colour "Green"
  386.     setcycle 39 correct_cue_response "1"
  387.     setcycle 40 frame_colour "Black"
  388.     setcycle 40 correct_cue_response ""
  389.     setcycle 41 frame_colour "Black"
  390.     setcycle 41 correct_cue_response ""
  391.     setcycle 42 frame_colour "Black"
  392.     setcycle 42 correct_cue_response ""
  393.     setcycle 43 frame_colour "Black"
  394.     setcycle 43 correct_cue_response ""
  395.     setcycle 44 frame_colour "Black"
  396.     setcycle 44 correct_cue_response ""
  397.     setcycle 45 frame_colour "Black"
  398.     setcycle 45 correct_cue_response ""
  399.     setcycle 46 frame_colour "Black"
  400.     setcycle 46 correct_cue_response ""
  401.     setcycle 47 frame_colour "Black"
  402.     setcycle 47 correct_cue_response ""
  403.     setcycle 48 frame_colour "Black"
  404.     setcycle 48 correct_cue_response ""
  405.     setcycle 49 frame_colour "Black"
  406.     setcycle 49 correct_cue_response ""
  407.     run s1_trial_sequence
  408.  
  409. define feedback feedback
  410.     set duration "1000"
  411.     set reset_variables "yes"
  412.     set description "Provides countdown distractor to participants"
  413.     draw textline 0 0 "[Countdown]" center=1 color=Black font_family="sans" font_size=50 font_italic=no font_bold=no show_if="always"
  414.  
  415. define sequence sequence
  416.     run ongoing_script "always"
  417.     run s4_response_script "always"
  418.     run s4_trial_display "always"
  419.     run s4_keyboard_response "always"
  420.     run logger "always"
  421.  
  422. define loop p_block_loop
  423.     set repeat "1"
  424.     set description "Repeatedly runs another item"
  425.     set skip "0"
  426.     set item "p_trial_sequence"
  427.     set column_order ""
  428.     set cycles "50"
  429.     set order "sequential"
  430.     run p_trial_sequence
  431.  
  432. define sequence s1_trial_sequence
  433.     set flush_keyboard "yes"
  434.     set description "Runs a number of items in sequence"
  435.     run ongoing_script "always"
  436.     run s1_response_script "always"
  437.     run s1_trial_display "always"
  438.     run s1_keyboard_response "always"
  439.     run logger "always"
  440.  
  441. define text_display end_s1
  442.     set foreground "#000000"
  443.     set font_size "20"
  444.     set description "Presents a display consisting of text"
  445.     set maxchar "200"
  446.     set align "center"
  447.     __content__
  448.     End of Session A.
  449.    
  450.     Press any key to continue.
  451.     __end__
  452.     set background "#ffffff"
  453.     set duration "keypress"
  454.     set font_family "sans"
  455.  
  456. define text_display end_s3
  457.     set foreground "#000000"
  458.     set font_size "20"
  459.     set description "Presents a display consisting of text"
  460.     set maxchar "200"
  461.     set align "center"
  462.     __content__
  463.     End of Session C.
  464.    
  465.     Press any key to continue.
  466.     __end__
  467.     set background "#ffffff"
  468.     set duration "keypress"
  469.     set font_family "sans"
  470.  
  471. define text_display end_s2
  472.     set foreground "#000000"
  473.     set font_size "20"
  474.     set description "Presents a display consisting of text"
  475.     set maxchar "200"
  476.     set align "center"
  477.     __content__
  478.     End of Session B.
  479.    
  480.     Press any key to continue.
  481.     __end__
  482.     set background "#ffffff"
  483.     set duration "keypress"
  484.     set font_family "sans"
  485.  
  486. define text_display experiment_brief
  487.     set foreground "#000000"
  488.     set font_size "20"
  489.     set description "Presents a display consisting of text"
  490.     set maxchar "200"
  491.     set align "center"
  492.     __content__
  493.     Experiment Instructions
  494.    
  495.     Thank you for taking part in this research. Please read and follow ALL instructions carefully.
  496.    
  497.     During this experiment you will be presented with 5 sessions.
  498.    
  499.     Each session will consist of 50 word pairs.
  500.    
  501.     Sessions will begin automatically after 20 seconds of viewing the session instructions, and a 30 second countdown screen.
  502.    
  503.     <i>Your task will be to identify if the pairs of words are rhyming or not rhyming.</i>
  504.    
  505.     <b>For not rhyming pairs (e.g. Phone - Lamp) press the 'Z' key.</b>
  506.    
  507.     <b>For rhyming pairs (e.g. Mind - Behind) press the 'M' key.</b>
  508.    
  509.     There will be a practice session followed by 4 further sessions.
  510.    
  511.     During later sessions you will also be asked to respond to various additional events.
  512.    
  513.     Press any key to proceed
  514.     __end__
  515.     set background "#ffffff"
  516.     set duration "keypress"
  517.     set font_family "sans"
  518.  
  519. define text_display end_experiment
  520.     set foreground "#000000"
  521.     set font_size "20"
  522.     set description "Presents a display consisting of text"
  523.     set maxchar "50"
  524.     set align "center"
  525.     __content__
  526.     This is the end of the experiment.
  527.    
  528.     Thank you once again for taking part.
  529.    
  530.     Necessary ethical information continues....
  531.     __end__
  532.     set background "#ffffff"
  533.     set duration "keypress"
  534.     set font_family "sans"
  535.  
  536. define sketchpad p_trial_display
  537.     set duration "0"
  538.     set description "Displays stimuli"
  539.     draw textline -180 0 "[word1]" center=1 color=black font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  540.     draw textline 180 0 "[word2]" center=1 color=black font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  541.     draw rect -480 -160 960 320 fill=0 penwidth=3 color=black show_if="always"
  542.  
  543. define inline_script s4_response_script
  544.     set _run ""
  545.     ___prepare__
  546.     # For the ongoing task:
  547.    
  548.     # Determine correct ongoing response, depending on whether the words
  549.     # come from the rhyming or the non-rhyming list
  550.     if stim_pair in list_rhymes:
  551.         correct_keyboard_response_1 = 'm'
  552.     if stim_pair in list_non_rhymes:
  553.         correct_keyboard_response_1 = 'z'
  554.    
  555.     # Set the correct response for the ongoing task by giving the variable
  556.     # 'correct_ongoing_response' a value:
  557.     exp.set("correct_ongoing_response", correct_keyboard_response_1)
  558.    
  559.     # For the cues:
  560.    
  561.     # Determine correct response, depending on cues in session
  562.     if self.get('frame_colour') == 'Yellow':
  563.         correct_keyboard_response_2 = 'y'
  564.     if self.get('frame_colour') == 'Black':
  565.         correct_keyboard_response_2 = ''
  566.        
  567.     if self.get('pair_colour') == 'Pink':
  568.         correct_keyboard_response_2 = 'k'
  569.     if self.get('pair_colour') == 'Black':
  570.         correct_keyboard_response_2 = ''
  571.        
  572.     if self.get('pair_font') == 'Mono':
  573.         correct_keyboard_response_2 = 'f'
  574.     if self.get('pair_font') == 'Sans':
  575.         correct_keyboard_response_2 = ''
  576.        
  577.     if self.get('pair_size') == '50':
  578.         correct_keyboard_response_2 = 's'
  579.     if self.get('pair_size') == '40':
  580.         correct_keyboard_response_2 = ''
  581.    
  582.     # Set the correct response by giving the variable 'correct_cue_response'
  583.     # a value: 
  584.     exp.set("correct_cue_response", correct_keyboard_response_2)
  585.     __end__
  586.     set description "Executes Python code"
  587.  
  588. define inline_script p_response_script
  589.     set _run ""
  590.     ___prepare__
  591.     # For the ongoing task:
  592.    
  593.     # Determine correct ongoing response, depending on whether the words
  594.     # come from the rhyming or the non-rhyming list
  595.     if stim_pair in list_rhymes:
  596.         correct_keyboard_response_1 = 'm'
  597.     if stim_pair in list_non_rhymes:
  598.         correct_keyboard_response_1 = 'z'
  599.    
  600.     # Set the correct response for the ongoing task by giving the variable
  601.     # 'correct_ongoing_response' a value:
  602.     exp.set("correct_ongoing_response", correct_keyboard_response_1)
  603.     __end__
  604.     set description "Executes Python code"
  605.  
  606. define text_display instructions_practice
  607.     set foreground "#000000"
  608.     set font_size "20"
  609.     set description "Presents a display consisting of text"
  610.     set maxchar "200"
  611.     set align "center"
  612.     __content__
  613.     Practice Session
  614.    
  615.     The following session will consist of 50 instances of word pairs.
  616.    
  617.     Please remember to press the
  618.     <b>'Z' key for not rhyming pairs</b> and the <b>'M' key for rhyming pairs.</b>
  619.     __end__
  620.     set background "#ffffff"
  621.     set duration "20000"
  622.     set font_family "sans"
  623.  
  624. define inline_script s2_keyboard_response
  625.     set _run ""
  626.     ___prepare__
  627.     from openexp.keyboard import keyboard
  628.    
  629.     # The keypress timeout
  630.     timeout = 2000
  631.    
  632.     # We poll for two responses. The first 'keyboard_response_1'
  633.     # waits for a 'z' or an 'm'. The second waits for a 'b' or 'p'. These
  634.     # responses can be given in arbitrary order, are stored in
  635.     # different variables, and can time out indendently of each
  636.     # other.
  637.     exp.set('keyboard_response_1', None)
  638.     exp.set('keyboard_response_time_1', None)
  639.     keylist_1 = ['z', 'm']
  640.     exp.set('keyboard_response_2', None)
  641.     exp.set('keyboard_response_time_2', None)
  642.     keylist_2 = ['b', 'p']
  643.    
  644.     # Create a keyboard object that doesn't block the
  645.     # experiment, so we can use it to poll for keypresses
  646.     # continuously.
  647.     my_keyboard = keyboard(exp, timeout=0)
  648.    
  649.     # Loop until we timeout
  650.     start_time = self.time()
  651.     while self.time() - timeout < start_time:
  652.         key, key_time = my_keyboard.get_key()
  653.    
  654.         # If a key from keylist 1 is pressed, set keyboard_response_1
  655.         # and keyboard_response_time_1. Also, set key_list_1 to [], so
  656.         # that we do not capture multiple keypresses from this list.
  657.         if key in keylist_1:
  658.             exp.set('keyboard_response_1', key)
  659.             exp.set('keyboard_response_time_1', key_time - start_time)
  660.             keylist_1 = []
  661.    
  662.         # The same principle is applied for keylist 2.
  663.         if key in keylist_2:
  664.             exp.set('keyboard_response_2', key)
  665.             exp.set('keyboard_response_time_2', key_time - start_time)
  666.             keylist_2 = []
  667.    
  668.     # Create a variable to check the key response against the expected response:
  669.     if self.get('keyboard_response_1') == self.get('correct_ongoing_response'):
  670.         correct_1 = '1'
  671.     else:
  672.         correct_1 = '0'
  673.     exp.set("correct_1", correct_1)
  674.    
  675.     # ... Do the same for the second response:
  676.     if self.get('keyboard_response_2') == self.get('correct_cue_response'):
  677.         correct_2 = '1'
  678.     else:
  679.         correct_2 = '0'
  680.     exp.set("correct_2", correct_2)
  681.     __end__
  682.     set description "Executes Python code"
  683.  
  684. define inline_script s3_response_script
  685.     set _run ""
  686.     ___prepare__
  687.     # For the ongoing task:
  688.    
  689.     # Determine correct ongoing response, depending on whether the words
  690.     # come from the rhyming or the non-rhyming list
  691.     if stim_pair in list_rhymes:
  692.         correct_keyboard_response_1 = 'm'
  693.     if stim_pair in list_non_rhymes:
  694.         correct_keyboard_response_1 = 'z'
  695.    
  696.     # Set the correct response for the ongoing task by giving the variable
  697.     # 'correct_ongoing_response' a value:
  698.     exp.set("correct_ongoing_response", correct_keyboard_response_1)
  699.    
  700.     # For the cues:
  701.    
  702.     # Determine correct response, depending on cues in session
  703.     if self.get('frame_colour') == 'Orange':
  704.         correct_keyboard_response_2 = 'o'
  705.     if self.get('frame_colour') == 'Black':
  706.         correct_keyboard_response_2 = ''
  707.    
  708.     if self.get('pair_colour') == 'Red':
  709.         correct_keyboard_response_2 = 'r'
  710.     if self.get('pair_colour') == 'Black':
  711.         correct_keyboard_response_2 = ''
  712.    
  713.     if self.get('pair_font') == 'Serif':
  714.         correct_keyboard_response_2 = 'f'
  715.     if self.get('pair_font') == 'Sans':
  716.         correct_keyboard_response_2 = ''
  717.    
  718.     # Set the correct response by giving the variable 'correct_cue_response'
  719.     # a value: 
  720.     exp.set("correct_cue_response", correct_keyboard_response_2)
  721.     __end__
  722.     set description "Executes Python code"
  723.  
  724. define loop s3
  725.     set repeat "1"
  726.     set description "Repeatedly runs another item"
  727.     set item "s3_sequence"
  728.     set column_order ""
  729.     set cycles "1"
  730.     set order "sequential"
  731.     run s3_sequence
  732.  
  733. define loop s2
  734.     set repeat "1"
  735.     set description "Repeatedly runs another item"
  736.     set skip "0"
  737.     set item "s2_sequence"
  738.     set column_order ""
  739.     set cycles "1"
  740.     set order "sequential"
  741.     run s2_sequence
  742.  
  743. define loop s1
  744.     set repeat "1"
  745.     set description "Repeatedly runs another item"
  746.     set item "s1_sequence"
  747.     set column_order ""
  748.     set cycles "1"
  749.     set order "sequential"
  750.     run s1_sequence
  751.  
  752. define loop s4
  753.     set repeat "1"
  754.     set description "Repeatedly runs another item"
  755.     set item "s4_sequence"
  756.     set column_order ""
  757.     set cycles "1"
  758.     set order "sequential"
  759.     run s4_sequence
  760.  
  761. define loop countdown
  762.     set repeat "1"
  763.     set description "Repeatedly runs another item"
  764.     set skip "0"
  765.     set item "feedback"
  766.     set column_order "Countdown"
  767.     set cycles "30"
  768.     set order "sequential"
  769.     setcycle 0 Countdown "30"
  770.     setcycle 1 Countdown "29"
  771.     setcycle 2 Countdown "28"
  772.     setcycle 3 Countdown "27"
  773.     setcycle 4 Countdown "26"
  774.     setcycle 5 Countdown "25"
  775.     setcycle 6 Countdown "24"
  776.     setcycle 7 Countdown "23"
  777.     setcycle 8 Countdown "22"
  778.     setcycle 9 Countdown "21"
  779.     setcycle 10 Countdown "20"
  780.     setcycle 11 Countdown "19"
  781.     setcycle 12 Countdown "18"
  782.     setcycle 13 Countdown "17"
  783.     setcycle 14 Countdown "16"
  784.     setcycle 15 Countdown "15"
  785.     setcycle 16 Countdown "14"
  786.     setcycle 17 Countdown "13"
  787.     setcycle 18 Countdown "12"
  788.     setcycle 19 Countdown "11"
  789.     setcycle 20 Countdown "10"
  790.     setcycle 21 Countdown "9"
  791.     setcycle 22 Countdown "8"
  792.     setcycle 23 Countdown "7"
  793.     setcycle 24 Countdown "6"
  794.     setcycle 25 Countdown "5"
  795.     setcycle 26 Countdown "4"
  796.     setcycle 27 Countdown "3"
  797.     setcycle 28 Countdown "2"
  798.     setcycle 29 Countdown "1"
  799.     run feedback
  800.  
  801. define sequence experiment
  802.     set flush_keyboard "yes"
  803.     set description "Runs a number of items in sequence"
  804.     run experiment_brief "always"
  805.     run read_tables "always"
  806.     run instructions_practice "always"
  807.     run countdown "always"
  808.     run practice "always"
  809.     run end_practice "always"
  810.     run instructions_s1 "always"
  811.     run countdown "always"
  812.     run s1 "always"
  813.     run end_s1 "always"
  814.     run instructions_s2 "always"
  815.     run countdown "always"
  816.     run s2 "always"
  817.     run end_s2 "always"
  818.     run instructions_s3 "always"
  819.     run countdown "always"
  820.     run s3 "always"
  821.     run end_s3 "always"
  822.     run instructions_s4 "always"
  823.     run countdown "always"
  824.     run s4 "always"
  825.     run end_s4 "always"
  826.     run end_experiment "always"
  827.  
  828. define text_display end_practice
  829.     set foreground "Black"
  830.     set font_size "20"
  831.     set description "Presents a display consisting of text"
  832.     set maxchar "200"
  833.     set align "center"
  834.     __content__
  835.     End of Practice.
  836.    
  837.     Press any key to continue.
  838.     __end__
  839.     set background "White"
  840.     set duration "keypress"
  841.     set font_family "sans"
  842.  
  843. define text_display instructions_s4
  844.     set foreground "#000000"
  845.     set font_size "20"
  846.     set description "Presents a display consisting of text"
  847.     set maxchar "200"
  848.     set align "center"
  849.     __content__
  850.     Session D
  851.    
  852.     The following session will consist of 50 instances of word pairs.
  853.    
  854.     Please remember to press the
  855.     <b>'Z' key for not rhyming pairs</b> and the <b>'M' key for rhyming pairs.</b>
  856.    
  857.     In addition, when the following events occur please press the corresponding key:
  858.    
  859.     'S' key = change in font size
  860.     'F' key = word pair changes font style
  861.     'Y' key = border turns yellow
  862.     'K' key = word pair turns pink
  863.    
  864.     Responses should be carried out as quickly and accurately as possible.
  865.     __end__
  866.     set background "#ffffff"
  867.     set duration "15000"
  868.     set font_family "sans"
  869.  
  870. define logger logger
  871.     set ignore_missing "yes"
  872.     set description "Logs experimental data"
  873.     set auto_log "yes"
  874.     set use_quotes "yes"
  875.     log "response"
  876.     log "response_time"
  877.     log "correct"
  878.     log "average_response_time"
  879.     log "avg_rt"
  880.     log "accuracy"
  881.     log "acc"
  882.     log "count_experiment"
  883.     log "Countdown"
  884.     log "count_s1_sequence"
  885.     log "count_practice_sequence"
  886.     log "count_s4_sequence"
  887.     log "count_s2_sequence"
  888.     log "count_s3_sequence"
  889.     log "count_trial_sequence"
  890.     log "response_keyboard_response"
  891.     log "response_time_keyboard_response"
  892.     log "correct_keyboard_response"
  893.  
  894. define text_display instructions_s1
  895.     set foreground "#000000"
  896.     set font_size "20"
  897.     set description "Presents a display consisting of text"
  898.     set maxchar "200"
  899.     set align "center"
  900.     __content__
  901.     Session A
  902.    
  903.     The following session will consist of 50 instances of word pairs.
  904.    
  905.     Please remember to press the
  906.     <b>'Z' key for not rhyming pairs</b> and the <b>'M' key for rhyming pairs.</b>
  907.    
  908.     In addition, when the following events occur please press the corresponding key:
  909.    
  910.     'G' key = when border turns green
  911.    
  912.     Responses should be carried out as quickly and accurately as possible.
  913.     __end__
  914.     set background "#ffffff"
  915.     set duration "20000"
  916.     set font_family "sans"
  917.  
  918. define text_display instructions_s2
  919.     set foreground "#000000"
  920.     set font_size "20"
  921.     set description "Presents a display consisting of text"
  922.     set maxchar "200"
  923.     set align "center"
  924.     __content__
  925.     Session B
  926.    
  927.     The following session will consist of 50 instances of word pairs.
  928.    
  929.     Please remember to press the
  930.     <b>'Z' key for not rhyming pairs</b> and the <b>'M' key for rhyming pairs.</b>
  931.    
  932.     In addition, when the following events occur please press the corresponding key:
  933.    
  934.     'P' key = word pair turns purple
  935.     'B' key = border turns blue
  936.    
  937.     Responses should be carried out as quickly and accurately as possible.
  938.     __end__
  939.     set background "#ffffff"
  940.     set duration "20000"
  941.     set font_family "sans"
  942.  
  943. define text_display instructions_s3
  944.     set foreground "#000000"
  945.     set font_size "20"
  946.     set description "Presents a display consisting of text"
  947.     set maxchar "200"
  948.     set align "center"
  949.     __content__
  950.     Session C
  951.    
  952.     The following session will consist of 50 instances of word pairs.
  953.    
  954.     Please remember to press the
  955.     <b>'Z' key for not rhyming pairs</b> and the <b>'M' key for rhyming pairs.</b>
  956.    
  957.     In addition, when the following events occur please press the corresponding key:
  958.    
  959.     'O' key = border turns orange
  960.     'R' key = word pair turns red
  961.     'F' key = word pair changes font style
  962.    
  963.     Responses should be carried out as quickly and accurately as possible.
  964.     __end__
  965.     set background "#ffffff"
  966.     set duration "20000"
  967.     set font_family "sans"
  968.  
  969. define sequence p_trial_sequence
  970.     set flush_keyboard "yes"
  971.     set description "Runs a number of items in sequence"
  972.     run ongoing_script "always"
  973.     run p_response_script "always"
  974.     run p_trial_display "always"
  975.     run p_keyboard_response "always"
  976.     run logger "always"
  977.  
  978. define inline_script p_keyboard_response
  979.     set _run ""
  980.     ___prepare__
  981.     from openexp.keyboard import keyboard
  982.    
  983.     # The keypress timeout
  984.     timeout = 2000
  985.    
  986.     # We poll for one response, a 'z' or an 'm'.
  987.     exp.set('keyboard_response_1', None)
  988.     exp.set('keyboard_response_time_1', None)
  989.     keylist_1 = ['z', 'm']
  990.    
  991.     # Create a keyboard object that doesn't block the
  992.     # experiment, so we can use it to poll for keypresses
  993.     # continuously.
  994.     my_keyboard = keyboard(exp, timeout=0)
  995.    
  996.     # Loop until we timeout
  997.     start_time = self.time()
  998.     while self.time() - timeout < start_time:
  999.         key, key_time = my_keyboard.get_key()
  1000.    
  1001.         # If a key from keylist 1 is pressed, set keyboard_response_1
  1002.         # and keyboard_response_time_1. Also, set key_list_1 to [], so
  1003.         # that we do not capture multiple keypresses from this list.
  1004.         if key in keylist_1:
  1005.             exp.set('keyboard_response_1', key)
  1006.             exp.set('keyboard_response_time_1', key_time - start_time)
  1007.             keylist_1 = []
  1008.    
  1009.     # Create a variable to check the response against the expected response:
  1010.     if self.get('keyboard_response_1') == self.get('correct_ongoing_response'):
  1011.         correct_1 = '1'
  1012.     else:
  1013.         correct_1 = '0'
  1014.     exp.set("correct_1", correct_1)
  1015.     __end__
  1016.     set description "Executes Python code"
  1017.  
  1018. define sequence s2_trial_sequence
  1019.     set flush_keyboard "yes"
  1020.     set description "Runs a number of items in sequence"
  1021.     run ongoing_script "always"
  1022.     run s2_response_script "always"
  1023.     run s2_trial_display "always"
  1024.     run s2_keyboard_response "always"
  1025.     run logger "always"
  1026.  
  1027. define sketchpad s3_trial_display
  1028.     set duration "0"
  1029.     set description "Displays stimuli"
  1030.     draw textline -180 0 "[word1]" center=1 color=[pair_colour] font_family="[pair_font]" font_size=40 font_italic=no font_bold=no show_if="always"
  1031.     draw textline 180 0 "[word2]" center=1 color=[pair_colour] font_family="[pair_font]" font_size=40 font_italic=no font_bold=no show_if="always"
  1032.     draw rect -480 -160 960 320 fill=0 penwidth=3 color=[frame_colour] show_if="always"
  1033.  
  1034. define loop practice
  1035.     set repeat "1"
  1036.     set description "Repeatedly runs another item"
  1037.     set item "practice_sequence"
  1038.     set column_order ""
  1039.     set cycles "1"
  1040.     set order "sequential"
  1041.     run practice_sequence
  1042.  
  1043. define sequence s1_sequence
  1044.     set flush_keyboard "yes"
  1045.     set description "Runs a number of items in sequence"
  1046.     run ongoing_task "always"
  1047.     run s1_block_loop "always"
  1048.  
  1049. define sequence s3_trial_sequence
  1050.     set flush_keyboard "yes"
  1051.     set description "Runs a number of items in sequence"
  1052.     run ongoing_script "always"
  1053.     run s3_response_script "always"
  1054.     run s3_trial_display "always"
  1055.     run s3_keyboard_response "always"
  1056.     run logger "always"
  1057.  
  1058. define sketchpad s4_trial_display
  1059.     set duration "0"
  1060.     set description "Displays stimuli"
  1061.     draw textline -180 0 "[word1]" center=1 color=[pair_colour] font_family="[pair_font]" font_size=[pair_size] font_italic=no font_bold=no show_if="always"
  1062.     draw textline 180 0 "[word2]" center=1 color=[pair_colour] font_family="[pair_font]" font_size=[pair_size] font_italic=no font_bold=no show_if="always"
  1063.     draw rect -480 -160 960 320 fill=0 penwidth=3 color=[frame_colour] show_if="always"
  1064.  
  1065. define inline_script s1_response_script
  1066.     set _run ""
  1067.     ___prepare__
  1068.     # For the ongoing task:
  1069.    
  1070.     # Determine correct ongoing response, depending on whether the words
  1071.     # come from the rhyming or the non-rhyming list
  1072.     if stim_pair in list_rhymes:
  1073.         correct_keyboard_response_1 = 'm'
  1074.     if stim_pair in list_non_rhymes:
  1075.         correct_keyboard_response_1 = 'z'
  1076.    
  1077.     # Set the correct response for the ongoing task by giving the variable
  1078.     # 'correct_ongoing_response' a value:
  1079.     exp.set("correct_ongoing_response", correct_keyboard_response_1)
  1080.    
  1081.     # For the cues:
  1082.    
  1083.     # Determine correct response, depending on cues in session
  1084.     if self.get('frame_colour') == 'Green':
  1085.         correct_keyboard_response_2 = 'g'
  1086.     if self.get('frame_colour') == 'Black':
  1087.         correct_keyboard_response_2 = ''
  1088.    
  1089.     # Set the correct response by giving the variable 'correct_cue_response'
  1090.     # a value: 
  1091.     exp.set("correct_cue_response", correct_keyboard_response_2)
  1092.     __end__
  1093.     set description "Executes Python code"
  1094.  
  1095. define sequence practice_sequence
  1096.     set flush_keyboard "yes"
  1097.     set description "Runs a number of items in sequence"
  1098.     run ongoing_task "always"
  1099.     run p_block_loop "always"
  1100.  
  1101. define sequence s4_sequence
  1102.     set flush_keyboard "yes"
  1103.     set description "Runs a number of items in sequence"
  1104.     run ongoing_task "always"
  1105.     run s4_block_loop "always"
  1106.  
  1107. define inline_script ongoing_script
  1108.     set _run ""
  1109.     ___prepare__
  1110.     # Determine the word pair of the current trial by drawing one word pair
  1111.     # from the previously defined block list.
  1112.    
  1113.     # To avoid repeat display of word pairs and non-display of others, draw
  1114.     # pairs without replacement by using the built-in Python function pop() .
  1115.     stim_pair = block_list.pop()
  1116.     print stim_pair
  1117.    
  1118.     # The pair is separated by a comma (they come from a .csv file).
  1119.     # Split them by using the built-in Python function split() :
  1120.     word1, word2 = stim_pair.split(",")
  1121.    
  1122.     # To make the variables word1 and word2 available in the GUI (e.g. a
  1123.     # sketchpad item), use the built-in OpenSesame function exp.set() :
  1124.     exp.set("word1", word1)
  1125.     exp.set("word2", word2)
  1126.     # Now square bracket method can be used to display values
  1127.     # of those two variables in the sketchpad item.
  1128.     __end__
  1129.     set description "Executes Python code"
  1130.  
  1131. define text_display end_s4
  1132.     set foreground "#000000"
  1133.     set font_size "20"
  1134.     set description "Presents a display consisting of text"
  1135.     set maxchar "200"
  1136.     set align "center"
  1137.     __content__
  1138.     End of Session D.
  1139.    
  1140.     Press any key to continue.
  1141.     __end__
  1142.     set background "#ffffff"
  1143.     set duration "keypress"
  1144.     set font_family "sans"
  1145.  
  1146. define sequence s2_sequence
  1147.     set flush_keyboard "yes"
  1148.     set description "Runs a number of items in sequence"
  1149.     run ongoing_task "always"
  1150.     run s2_block_loop "always"
  1151.  
  1152. define loop s4_block_loop
  1153.     set repeat "1"
  1154.     set description "Repeatedly runs another item"
  1155.     set skip "0"
  1156.     set item "sequence"
  1157.     set column_order "frame_colour;pair_colour;pair_font;correct_cue_response;pair_size"
  1158.     set cycles "50"
  1159.     set order "sequential"
  1160.     setcycle 0 pair_colour "Black"
  1161.     setcycle 0 pair_size "40"
  1162.     setcycle 0 frame_colour "Black"
  1163.     setcycle 0 correct_cue_response ""
  1164.     setcycle 0 pair_font "Sans"
  1165.     setcycle 1 pair_colour "Black"
  1166.     setcycle 1 pair_size "40"
  1167.     setcycle 1 frame_colour "Black"
  1168.     setcycle 1 correct_cue_response ""
  1169.     setcycle 1 pair_font "Sans"
  1170.     setcycle 2 pair_colour "Black"
  1171.     setcycle 2 pair_size "40"
  1172.     setcycle 2 frame_colour "Black"
  1173.     setcycle 2 correct_cue_response ""
  1174.     setcycle 2 pair_font "Sans"
  1175.     setcycle 3 pair_colour "Black"
  1176.     setcycle 3 pair_size "40"
  1177.     setcycle 3 frame_colour "Black"
  1178.     setcycle 3 correct_cue_response ""
  1179.     setcycle 3 pair_font "Sans"
  1180.     setcycle 4 pair_colour "Black"
  1181.     setcycle 4 pair_size "40"
  1182.     setcycle 4 frame_colour "Yellow"
  1183.     setcycle 4 correct_cue_response "y"
  1184.     setcycle 4 pair_font "Sans"
  1185.     setcycle 5 pair_colour "Black"
  1186.     setcycle 5 pair_size "40"
  1187.     setcycle 5 frame_colour "Black"
  1188.     setcycle 5 correct_cue_response ""
  1189.     setcycle 5 pair_font "Sans"
  1190.     setcycle 6 pair_colour "Black"
  1191.     setcycle 6 pair_size "40"
  1192.     setcycle 6 frame_colour "Black"
  1193.     setcycle 6 correct_cue_response ""
  1194.     setcycle 6 pair_font "Sans"
  1195.     setcycle 7 pair_colour "Black"
  1196.     setcycle 7 pair_size "40"
  1197.     setcycle 7 frame_colour "Black"
  1198.     setcycle 7 correct_cue_response ""
  1199.     setcycle 7 pair_font "Sans"
  1200.     setcycle 8 pair_colour "Black"
  1201.     setcycle 8 pair_size "40"
  1202.     setcycle 8 frame_colour "Black"
  1203.     setcycle 8 correct_cue_response ""
  1204.     setcycle 8 pair_font "Sans"
  1205.     setcycle 9 pair_colour "Pink"
  1206.     setcycle 9 pair_size "40"
  1207.     setcycle 9 frame_colour "Black"
  1208.     setcycle 9 correct_cue_response "k"
  1209.     setcycle 9 pair_font "Sans"
  1210.     setcycle 10 pair_colour "Black"
  1211.     setcycle 10 pair_size "40"
  1212.     setcycle 10 frame_colour "Black"
  1213.     setcycle 10 correct_cue_response ""
  1214.     setcycle 10 pair_font "Sans"
  1215.     setcycle 11 pair_colour "Black"
  1216.     setcycle 11 pair_size "40"
  1217.     setcycle 11 frame_colour "Black"
  1218.     setcycle 11 correct_cue_response ""
  1219.     setcycle 11 pair_font "Sans"
  1220.     setcycle 12 pair_colour "Black"
  1221.     setcycle 12 pair_size "40"
  1222.     setcycle 12 frame_colour "Black"
  1223.     setcycle 12 correct_cue_response ""
  1224.     setcycle 12 pair_font "Sans"
  1225.     setcycle 13 pair_colour "Black"
  1226.     setcycle 13 pair_size "40"
  1227.     setcycle 13 frame_colour "Black"
  1228.     setcycle 13 correct_cue_response ""
  1229.     setcycle 13 pair_font "Sans"
  1230.     setcycle 14 pair_colour "Black"
  1231.     setcycle 14 pair_size "40"
  1232.     setcycle 14 frame_colour "Black"
  1233.     setcycle 14 correct_cue_response "f"
  1234.     setcycle 14 pair_font "Mono"
  1235.     setcycle 15 pair_colour "Black"
  1236.     setcycle 15 pair_size "40"
  1237.     setcycle 15 frame_colour "Black"
  1238.     setcycle 15 correct_cue_response ""
  1239.     setcycle 15 pair_font "Sans"
  1240.     setcycle 16 pair_colour "Black"
  1241.     setcycle 16 pair_size "40"
  1242.     setcycle 16 frame_colour "Black"
  1243.     setcycle 16 correct_cue_response ""
  1244.     setcycle 16 pair_font "Sans"
  1245.     setcycle 17 pair_colour "Black"
  1246.     setcycle 17 pair_size "40"
  1247.     setcycle 17 frame_colour "Black"
  1248.     setcycle 17 correct_cue_response ""
  1249.     setcycle 17 pair_font "Sans"
  1250.     setcycle 18 pair_colour "Black"
  1251.     setcycle 18 pair_size "40"
  1252.     setcycle 18 frame_colour "Black"
  1253.     setcycle 18 correct_cue_response ""
  1254.     setcycle 18 pair_font "Sans"
  1255.     setcycle 19 pair_colour "Black"
  1256.     setcycle 19 pair_size "50"
  1257.     setcycle 19 frame_colour "Black"
  1258.     setcycle 19 correct_cue_response "s"
  1259.     setcycle 19 pair_font "Sans"
  1260.     setcycle 20 pair_colour "Black"
  1261.     setcycle 20 pair_size "40"
  1262.     setcycle 20 frame_colour "Black"
  1263.     setcycle 20 correct_cue_response ""
  1264.     setcycle 20 pair_font "Sans"
  1265.     setcycle 21 pair_colour "Black"
  1266.     setcycle 21 pair_size "40"
  1267.     setcycle 21 frame_colour "Black"
  1268.     setcycle 21 correct_cue_response ""
  1269.     setcycle 21 pair_font "Sans"
  1270.     setcycle 22 pair_colour "Black"
  1271.     setcycle 22 pair_size "40"
  1272.     setcycle 22 frame_colour "Black"
  1273.     setcycle 22 correct_cue_response ""
  1274.     setcycle 22 pair_font "Sans"
  1275.     setcycle 23 pair_colour "Black"
  1276.     setcycle 23 pair_size "40"
  1277.     setcycle 23 frame_colour "Black"
  1278.     setcycle 23 correct_cue_response ""
  1279.     setcycle 23 pair_font "Sans"
  1280.     setcycle 24 pair_colour "Black"
  1281.     setcycle 24 pair_size "40"
  1282.     setcycle 24 frame_colour "Black"
  1283.     setcycle 24 correct_cue_response "f"
  1284.     setcycle 24 pair_font "Mono"
  1285.     setcycle 25 pair_colour "Black"
  1286.     setcycle 25 pair_size "40"
  1287.     setcycle 25 frame_colour "Black"
  1288.     setcycle 25 correct_cue_response ""
  1289.     setcycle 25 pair_font "Sans"
  1290.     setcycle 26 pair_colour "Black"
  1291.     setcycle 26 pair_size "40"
  1292.     setcycle 26 frame_colour "Black"
  1293.     setcycle 26 correct_cue_response ""
  1294.     setcycle 26 pair_font "Sans"
  1295.     setcycle 27 pair_colour "Black"
  1296.     setcycle 27 pair_size "40"
  1297.     setcycle 27 frame_colour "Black"
  1298.     setcycle 27 correct_cue_response ""
  1299.     setcycle 27 pair_font "Sans"
  1300.     setcycle 28 pair_colour "Black"
  1301.     setcycle 28 pair_size "40"
  1302.     setcycle 28 frame_colour "Black"
  1303.     setcycle 28 correct_cue_response ""
  1304.     setcycle 28 pair_font "Sans"
  1305.     setcycle 29 pair_colour "Black"
  1306.     setcycle 29 pair_size "40"
  1307.     setcycle 29 frame_colour "Black"
  1308.     setcycle 29 correct_cue_response ""
  1309.     setcycle 29 pair_font "Sans"
  1310.     setcycle 30 pair_colour "Black"
  1311.     setcycle 30 pair_size "40"
  1312.     setcycle 30 frame_colour "Black"
  1313.     setcycle 30 correct_cue_response ""
  1314.     setcycle 30 pair_font "Sans"
  1315.     setcycle 31 pair_colour "Black"
  1316.     setcycle 31 pair_size "40"
  1317.     setcycle 31 frame_colour "Black"
  1318.     setcycle 31 correct_cue_response ""
  1319.     setcycle 31 pair_font "Sans"
  1320.     setcycle 32 pair_colour "Black"
  1321.     setcycle 32 pair_size "40"
  1322.     setcycle 32 frame_colour "Black"
  1323.     setcycle 32 correct_cue_response ""
  1324.     setcycle 32 pair_font "Sans"
  1325.     setcycle 33 pair_colour "Black"
  1326.     setcycle 33 pair_size "40"
  1327.     setcycle 33 frame_colour "Black"
  1328.     setcycle 33 correct_cue_response ""
  1329.     setcycle 33 pair_font "Sans"
  1330.     setcycle 34 pair_colour "Pink"
  1331.     setcycle 34 pair_size "40"
  1332.     setcycle 34 frame_colour "Black"
  1333.     setcycle 34 correct_cue_response "k"
  1334.     setcycle 34 pair_font "Sans"
  1335.     setcycle 35 pair_colour "Black"
  1336.     setcycle 35 pair_size "40"
  1337.     setcycle 35 frame_colour "Black"
  1338.     setcycle 35 correct_cue_response ""
  1339.     setcycle 35 pair_font "Sans"
  1340.     setcycle 36 pair_colour "Black"
  1341.     setcycle 36 pair_size "40"
  1342.     setcycle 36 frame_colour "Black"
  1343.     setcycle 36 correct_cue_response ""
  1344.     setcycle 36 pair_font "Sans"
  1345.     setcycle 37 pair_colour "Black"
  1346.     setcycle 37 pair_size "40"
  1347.     setcycle 37 frame_colour "Black"
  1348.     setcycle 37 correct_cue_response ""
  1349.     setcycle 37 pair_font "Sans"
  1350.     setcycle 38 pair_colour "Black"
  1351.     setcycle 38 pair_size "40"
  1352.     setcycle 38 frame_colour "Black"
  1353.     setcycle 38 correct_cue_response ""
  1354.     setcycle 38 pair_font "Sans"
  1355.     setcycle 39 pair_colour "Black"
  1356.     setcycle 39 pair_size "40"
  1357.     setcycle 39 frame_colour "Black"
  1358.     setcycle 39 correct_cue_response ""
  1359.     setcycle 39 pair_font "Sans"
  1360.     setcycle 40 pair_colour "Black"
  1361.     setcycle 40 pair_size "40"
  1362.     setcycle 40 frame_colour "Black"
  1363.     setcycle 40 correct_cue_response ""
  1364.     setcycle 40 pair_font "Sans"
  1365.     setcycle 41 pair_colour "Black"
  1366.     setcycle 41 pair_size "40"
  1367.     setcycle 41 frame_colour "Black"
  1368.     setcycle 41 correct_cue_response ""
  1369.     setcycle 41 pair_font "Sans"
  1370.     setcycle 42 pair_colour "Black"
  1371.     setcycle 42 pair_size "40"
  1372.     setcycle 42 frame_colour "Black"
  1373.     setcycle 42 correct_cue_response ""
  1374.     setcycle 42 pair_font "Sans"
  1375.     setcycle 43 pair_colour "Black"
  1376.     setcycle 43 pair_size "40"
  1377.     setcycle 43 frame_colour "Black"
  1378.     setcycle 43 correct_cue_response ""
  1379.     setcycle 43 pair_font "Sans"
  1380.     setcycle 44 pair_colour "Black"
  1381.     setcycle 44 pair_size "40"
  1382.     setcycle 44 frame_colour "Yellow"
  1383.     setcycle 44 correct_cue_response "y"
  1384.     setcycle 44 pair_font "Sans"
  1385.     setcycle 45 pair_colour "Black"
  1386.     setcycle 45 pair_size "40"
  1387.     setcycle 45 frame_colour "Black"
  1388.     setcycle 45 correct_cue_response ""
  1389.     setcycle 45 pair_font "Sans"
  1390.     setcycle 46 pair_colour "Black"
  1391.     setcycle 46 pair_size "40"
  1392.     setcycle 46 frame_colour "Black"
  1393.     setcycle 46 correct_cue_response ""
  1394.     setcycle 46 pair_font "Sans"
  1395.     setcycle 47 pair_colour "Black"
  1396.     setcycle 47 pair_size "40"
  1397.     setcycle 47 frame_colour "Black"
  1398.     setcycle 47 correct_cue_response ""
  1399.     setcycle 47 pair_font "Sans"
  1400.     setcycle 48 pair_colour "Black"
  1401.     setcycle 48 pair_size "40"
  1402.     setcycle 48 frame_colour "Black"
  1403.     setcycle 48 correct_cue_response ""
  1404.     setcycle 48 pair_font "Sans"
  1405.     setcycle 49 pair_colour "Black"
  1406.     setcycle 49 pair_size "50"
  1407.     setcycle 49 frame_colour "Black"
  1408.     setcycle 49 correct_cue_response "s"
  1409.     setcycle 49 pair_font "Sans"
  1410.     run sequence
  1411.  
  1412. define sketchpad s1_trial_display
  1413.     set duration "0"
  1414.     set description "Displays stimuli"
  1415.     draw textline -180 0 "[word1]" center=1 color=black font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  1416.     draw textline 180 0 "[word2]" center=1 color=black font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  1417.     draw rect -480 -160 960 320 fill=0 penwidth=3 color=[frame_colour] show_if="always"
  1418.  
  1419. define sequence s3_sequence
  1420.     set flush_keyboard "yes"
  1421.     set description "Runs a number of items in sequence"
  1422.     run ongoing_task "always"
  1423.     run s3_block_loop "always"
  1424.  
  1425. define sketchpad s2_trial_display
  1426.     set duration "0"
  1427.     set description "Displays stimuli"
  1428.     draw textline -180 0 "[word1]" center=1 color=[pair_colour] font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  1429.     draw textline 180 0 "[word2]" center=1 color=[pair_colour] font_family="sans" font_size=40 font_italic=no font_bold=no show_if="always"
  1430.     draw rect -480 -160 960 320 fill=0 penwidth=3 color=[frame_colour] show_if="always"
  1431.  
  1432. define inline_script read_tables
  1433.     set _run ""
  1434.     ___prepare__
  1435.     # Read the lists of the 50 rhyming pairs and the 50
  1436.     # non-rhyming pairs from the two seperate .csv files.
  1437.    
  1438.     # Specify the paths to the files containing the pairs
  1439.     # by using the built-in OpenSesame function exp.get_file.
  1440.     path_rhymes = exp.get_file("rhyming_pairs.csv")
  1441.     path_non_rhymes = exp.get_file("non_rhyme_pairs.csv")
  1442.    
  1443.     # Use the built-in Python module numpy to read the .csv file:
  1444.     # Import the module
  1445.     import numpy as np
  1446.    
  1447.     # And load the text file.
  1448.     list_rhymes = np.loadtxt(path_rhymes, dtype = str)
  1449.     list_non_rhymes = np.loadtxt(path_non_rhymes, dtype = str)
  1450.    
  1451.     # Make the two lists global for future use:
  1452.     global list_rhymes, list_non_rhymes
  1453.     __end__
  1454.     set description "Executes Python code"
  1455.  
  1456. define loop s2_block_loop
  1457.     set repeat "1"
  1458.     set description "Repeatedly runs another item"
  1459.     set skip "0"
  1460.     set item "s2_trial_sequence"
  1461.     set column_order "frame_colour;pair_colour;correct_cue_response"
  1462.     set cycles "50"
  1463.     set order "sequential"
  1464.     setcycle 0 pair_colour "Black"
  1465.     setcycle 0 frame_colour "Black"
  1466.     setcycle 0 correct_cue_response ""
  1467.     setcycle 1 pair_colour "Black"
  1468.     setcycle 1 frame_colour "Black"
  1469.     setcycle 1 correct_cue_response ""
  1470.     setcycle 2 pair_colour "Black"
  1471.     setcycle 2 frame_colour "Black"
  1472.     setcycle 2 correct_cue_response ""
  1473.     setcycle 3 pair_colour "Black"
  1474.     setcycle 3 frame_colour "Black"
  1475.     setcycle 3 correct_cue_response ""
  1476.     setcycle 4 pair_colour "Black"
  1477.     setcycle 4 frame_colour "Black"
  1478.     setcycle 4 correct_cue_response ""
  1479.     setcycle 5 pair_colour "Black"
  1480.     setcycle 5 frame_colour "Black"
  1481.     setcycle 5 correct_cue_response ""
  1482.     setcycle 6 pair_colour "Black"
  1483.     setcycle 6 frame_colour "Black"
  1484.     setcycle 6 correct_cue_response ""
  1485.     setcycle 7 pair_colour "Black"
  1486.     setcycle 7 frame_colour "Black"
  1487.     setcycle 7 correct_cue_response ""
  1488.     setcycle 8 pair_colour "Black"
  1489.     setcycle 8 frame_colour "Black"
  1490.     setcycle 8 correct_cue_response ""
  1491.     setcycle 9 pair_colour "Purple"
  1492.     setcycle 9 frame_colour "Black"
  1493.     setcycle 9 correct_cue_response "p"
  1494.     setcycle 10 pair_colour "Black"
  1495.     setcycle 10 frame_colour "Black"
  1496.     setcycle 10 correct_cue_response ""
  1497.     setcycle 11 pair_colour "Black"
  1498.     setcycle 11 frame_colour "Black"
  1499.     setcycle 11 correct_cue_response ""
  1500.     setcycle 12 pair_colour "Black"
  1501.     setcycle 12 frame_colour "Black"
  1502.     setcycle 12 correct_cue_response ""
  1503.     setcycle 13 pair_colour "Black"
  1504.     setcycle 13 frame_colour "Black"
  1505.     setcycle 13 correct_cue_response ""
  1506.     setcycle 14 pair_colour "Black"
  1507.     setcycle 14 frame_colour "Black"
  1508.     setcycle 14 correct_cue_response ""
  1509.     setcycle 15 pair_colour "Black"
  1510.     setcycle 15 frame_colour "Black"
  1511.     setcycle 15 correct_cue_response ""
  1512.     setcycle 16 pair_colour "Black"
  1513.     setcycle 16 frame_colour "Black"
  1514.     setcycle 16 correct_cue_response ""
  1515.     setcycle 17 pair_colour "Black"
  1516.     setcycle 17 frame_colour "Black"
  1517.     setcycle 17 correct_cue_response ""
  1518.     setcycle 18 pair_colour "Black"
  1519.     setcycle 18 frame_colour "Black"
  1520.     setcycle 18 correct_cue_response ""
  1521.     setcycle 19 pair_colour "Black"
  1522.     setcycle 19 frame_colour "Black"
  1523.     setcycle 19 correct_cue_response ""
  1524.     setcycle 20 pair_colour "Black"
  1525.     setcycle 20 frame_colour "Black"
  1526.     setcycle 20 correct_cue_response ""
  1527.     setcycle 21 pair_colour "Black"
  1528.     setcycle 21 frame_colour "Black"
  1529.     setcycle 21 correct_cue_response ""
  1530.     setcycle 22 pair_colour "Black"
  1531.     setcycle 22 frame_colour "Black"
  1532.     setcycle 22 correct_cue_response ""
  1533.     setcycle 23 pair_colour "Black"
  1534.     setcycle 23 frame_colour "Black"
  1535.     setcycle 23 correct_cue_response ""
  1536.     setcycle 24 pair_colour "Black"
  1537.     setcycle 24 frame_colour "Blue"
  1538.     setcycle 24 correct_cue_response "b"
  1539.     setcycle 25 pair_colour "Black"
  1540.     setcycle 25 frame_colour "Black"
  1541.     setcycle 25 correct_cue_response ""
  1542.     setcycle 26 pair_colour "Black"
  1543.     setcycle 26 frame_colour "Black"
  1544.     setcycle 26 correct_cue_response ""
  1545.     setcycle 27 pair_colour "Black"
  1546.     setcycle 27 frame_colour "Black"
  1547.     setcycle 27 correct_cue_response ""
  1548.     setcycle 28 pair_colour "Black"
  1549.     setcycle 28 frame_colour "Black"
  1550.     setcycle 28 correct_cue_response ""
  1551.     setcycle 29 pair_colour "Black"
  1552.     setcycle 29 frame_colour "Black"
  1553.     setcycle 29 correct_cue_response ""
  1554.     setcycle 30 pair_colour "Black"
  1555.     setcycle 30 frame_colour "Black"
  1556.     setcycle 30 correct_cue_response ""
  1557.     setcycle 31 pair_colour "Black"
  1558.     setcycle 31 frame_colour "Black"
  1559.     setcycle 31 correct_cue_response ""
  1560.     setcycle 32 pair_colour "Black"
  1561.     setcycle 32 frame_colour "Black"
  1562.     setcycle 32 correct_cue_response ""
  1563.     setcycle 33 pair_colour "Black"
  1564.     setcycle 33 frame_colour "Black"
  1565.     setcycle 33 correct_cue_response ""
  1566.     setcycle 34 pair_colour "Black"
  1567.     setcycle 34 frame_colour "Black"
  1568.     setcycle 34 correct_cue_response ""
  1569.     setcycle 35 pair_colour "Black"
  1570.     setcycle 35 frame_colour "Black"
  1571.     setcycle 35 correct_cue_response ""
  1572.     setcycle 36 pair_colour "Black"
  1573.     setcycle 36 frame_colour "Black"
  1574.     setcycle 36 correct_cue_response ""
  1575.     setcycle 37 pair_colour "Black"
  1576.     setcycle 37 frame_colour "Black"
  1577.     setcycle 37 correct_cue_response ""
  1578.     setcycle 38 pair_colour "Black"
  1579.     setcycle 38 frame_colour "Black"
  1580.     setcycle 38 correct_cue_response ""
  1581.     setcycle 39 pair_colour "Black"
  1582.     setcycle 39 frame_colour "Blue"
  1583.     setcycle 39 correct_cue_response "b"
  1584.     setcycle 40 pair_colour "Black"
  1585.     setcycle 40 frame_colour "Black"
  1586.     setcycle 40 correct_cue_response ""
  1587.     setcycle 41 pair_colour "Black"
  1588.     setcycle 41 frame_colour "Black"
  1589.     setcycle 41 correct_cue_response ""
  1590.     setcycle 42 pair_colour "Black"
  1591.     setcycle 42 frame_colour "Black"
  1592.     setcycle 42 correct_cue_response ""
  1593.     setcycle 43 pair_colour "Black"
  1594.     setcycle 43 frame_colour "Black"
  1595.     setcycle 43 correct_cue_response ""
  1596.     setcycle 44 pair_colour "Black"
  1597.     setcycle 44 frame_colour "Black"
  1598.     setcycle 44 correct_cue_response ""
  1599.     setcycle 45 pair_colour "Black"
  1600.     setcycle 45 frame_colour "Black"
  1601.     setcycle 45 correct_cue_response ""
  1602.     setcycle 46 pair_colour "Black"
  1603.     setcycle 46 frame_colour "Black"
  1604.     setcycle 46 correct_cue_response ""
  1605.     setcycle 47 pair_colour "Black"
  1606.     setcycle 47 frame_colour "Black"
  1607.     setcycle 47 correct_cue_response ""
  1608.     setcycle 48 pair_colour "Black"
  1609.     setcycle 48 frame_colour "Black"
  1610.     setcycle 48 correct_cue_response ""
  1611.     setcycle 49 pair_colour "Purple"
  1612.     setcycle 49 frame_colour "Black"
  1613.     setcycle 49 correct_cue_response "p"
  1614.     run s2_trial_sequence
  1615.  
  1616. define inline_script ongoing_task
  1617.     set _run ""
  1618.     ___prepare__
  1619.     # Randomise the from-the-csv-files-read lists
  1620.     # and draw two samples containing the necessary numbers of rhymes and non-rhymes, respectively.
  1621.    
  1622.     # First, randomise the lists using the function random.shuffle() from
  1623.     # the built-in Python module random:
  1624.     import random
  1625.     random.shuffle(list_rhymes)
  1626.     random.shuffle(list_non_rhymes)
  1627.    
  1628.     # Use the function random.sample() to obtain two lists containing the
  1629.     # desired number of rhyme pairs and non-rhyme pairs.
  1630.    
  1631.     # The number of pairs per list is equal to half of the number of pairs in the
  1632.     # original list (i.e. 25 rhyme pairs and 25 non-rhyme pairs).
  1633.     samples_rhymes = random.sample(list_rhymes,len(list_rhymes)/2)
  1634.     samples_non_rhymes = random.sample(list_non_rhymes, len(list_non_rhymes)/2)
  1635.    
  1636.     # The two lists are merged to create one block list:
  1637.     block_list = samples_rhymes + samples_non_rhymes
  1638.    
  1639.     # The block list is then shuffled:
  1640.     random.shuffle(block_list)
  1641.    
  1642.     # Block list made global for future use:
  1643.     global block_list
  1644.     __end__
  1645.     set description "Executes Python code"
  1646.  
  1647. define parallel parallel
  1648.     run s1_keyboard_response "always"
  1649.  
  1650. define inline_script s4_keyboard_response
  1651.     set _run ""
  1652.     ___prepare__
  1653.     from openexp.keyboard import keyboard
  1654.    
  1655.     # The keypress timeout
  1656.     timeout = 2000
  1657.    
  1658.     # We poll for two responses. The first 'keyboard_response_1'
  1659.     # waits for a 'z' or an 'm'. The second waits for a 'y', 'k', 'f' or 's'. These
  1660.     # responses can be given in arbitrary order, are stored in
  1661.     # different variables, and can time out indendently of each
  1662.     # other.
  1663.     exp.set('keyboard_response_1', None)
  1664.     exp.set('keyboard_response_time_1', None)
  1665.     keylist_1 = ['z', 'm']
  1666.     exp.set('keyboard_response_2', None)
  1667.     exp.set('keyboard_response_time_2', None)
  1668.     keylist_2 = ['y', 'k', 'f', 's']
  1669.    
  1670.     # Create a keyboard object that doesn't block the
  1671.     # experiment, so we can use it to poll for keypresses
  1672.     # continuously.
  1673.     my_keyboard = keyboard(exp, timeout=0)
  1674.    
  1675.     # Loop until we timeout
  1676.     start_time = self.time()
  1677.     while self.time() - timeout < start_time:
  1678.         key, key_time = my_keyboard.get_key()
  1679.    
  1680.         # If a key from keylist 1 is pressed, set keyboard_response_1
  1681.         # and keyboard_response_time_1. Also, set key_list_1 to [], so
  1682.         # that we do not capture multiple keypresses from this list.
  1683.         if key in keylist_1:
  1684.             exp.set('keyboard_response_1', key)
  1685.             exp.set('keyboard_response_time_1', key_time - start_time)
  1686.             keylist_1 = []
  1687.    
  1688.         # The same principle is applied for keylist 2.
  1689.         if key in keylist_2:
  1690.             exp.set('keyboard_response_2', key)
  1691.             exp.set('keyboard_response_time_2', key_time - start_time)
  1692.             keylist_2 = []
  1693.    
  1694.     # Create a variable to check the key response against the expected response:
  1695.     if self.get('keyboard_response_1') == self.get('correct_ongoing_response'):
  1696.         correct_1 = '1'
  1697.     else:
  1698.         correct_1 = '0'
  1699.     exp.set("correct_1", correct_1)
  1700.    
  1701.     # ... Do the same for the second response:
  1702.     if self.get('keyboard_response_2') == self.get('correct_cue_response'):
  1703.         correct_2 = '1'
  1704.     else:
  1705.         correct_2 = '0'
  1706.     exp.set("correct_2", correct_2)
  1707.     __end__
  1708.     set description "Executes Python code"
  1709.  
  1710. define inline_script s1_keyboard_response
  1711.     set _run ""
  1712.     ___prepare__
  1713.     from openexp.keyboard import keyboard
  1714.    
  1715.     # The keypress timeout
  1716.     timeout = 2000
  1717.    
  1718.     # We poll for two responses. The first 'keyboard_response_1'
  1719.     # waits for a 'z' or an 'm'. The second waits for a 'g'. These
  1720.     # responses can be given in arbitrary order, are stored in
  1721.     # different variables, and can time out indendently of each
  1722.     # other.
  1723.     exp.set('keyboard_response_1', None)
  1724.     exp.set('keyboard_response_time_1', None)
  1725.     keylist_1 = ['z', 'm']
  1726.     exp.set('keyboard_response_2', None)
  1727.     exp.set('keyboard_response_time_2', None)
  1728.     keylist_2 = ['g']
  1729.    
  1730.     # Create a keyboard object that doesn't block the
  1731.     # experiment, so we can use it to poll for keypresses
  1732.     # continuously.
  1733.     my_keyboard = keyboard(exp, timeout=0)
  1734.    
  1735.     # Loop until we timeout
  1736.     start_time = self.time()
  1737.     while self.time() - timeout < start_time:
  1738.         key, key_time = my_keyboard.get_key()
  1739.    
  1740.         # If a key from keylist 1 is pressed, set keyboard_response_1
  1741.         # and keyboard_response_time_1. Also, set key_list_1 to [], so
  1742.         # that we do not capture multiple keypresses from this list.
  1743.         if key in keylist_1:
  1744.             exp.set('keyboard_response_1', key)
  1745.             exp.set('keyboard_response_time_1', key_time - start_time)
  1746.             keylist_1 = []
  1747.    
  1748.         # The same principle is applied for keylist 2.
  1749.         if key in keylist_2:
  1750.             exp.set('keyboard_response_2', key)
  1751.             exp.set('keyboard_response_time_2', key_time - start_time)
  1752.             keylist_2 = []
  1753.    
  1754.     # Create a variable to check the key response against the expected response:
  1755.     if self.get('keyboard_response_1') == self.get('correct_ongoing_response'):
  1756.         correct_1 = '1'
  1757.     else:
  1758.         correct_1 = '0'
  1759.     exp.set("correct_1", correct_1)
  1760.    
  1761.     # ... Do the same for the second response:
  1762.     if self.get('keyboard_response_2') == self.get('correct_cue_response'):
  1763.         correct_2 = '1'
  1764.     else:
  1765.         correct_2 = '0'
  1766.     exp.set("correct_2", correct_2)
  1767.     __end__
  1768.     set description "Executes Python code"
  1769.  
  1770. define inline_script s2_response_script
  1771.     set _run ""
  1772.     ___prepare__
  1773.     # For the ongoing task:
  1774.    
  1775.     # Determine correct ongoing response, depending on whether the words
  1776.     # come from the rhyming or the non-rhyming list
  1777.     if stim_pair in list_rhymes:
  1778.         correct_keyboard_response_1 = 'm'
  1779.     if stim_pair in list_non_rhymes:
  1780.         correct_keyboard_response_1 = 'z'
  1781.    
  1782.     # Set the correct response for the ongoing task by giving the variable
  1783.     # 'correct_ongoing_response' a value:
  1784.     exp.set("correct_ongoing_response", correct_keyboard_response_1)
  1785.    
  1786.     # For the cues:
  1787.    
  1788.     # Determine correct response, depending on cues in session
  1789.     if self.get('frame_colour') == 'Blue':
  1790.         correct_keyboard_response_2 = 'b'
  1791.     if self.get('frame_colour') == 'Black':
  1792.         correct_keyboard_response_2 = ''
  1793.    
  1794.     if self.get('pair_colour') == 'Purple':
  1795.         correct_keyboard_response_2 = 'p'
  1796.     if self.get('pair_colour') == 'Black':
  1797.         correct_keyboard_response_2 = ''
  1798.    
  1799.     # Set the correct response by giving the variable 'correct_cue_response'
  1800.     # a value: 
  1801.     exp.set("correct_cue_response", correct_keyboard_response_2)
  1802.     __end__
  1803.     set description "Executes Python code"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement