Advertisement
peapodpeapod

click test + keyboard response

Feb 20th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.97 KB | None | 0 0
  1. ---
  2. API: 2
  3. OpenSesame: 3.0.7b1
  4. Platform: posix
  5. ---
  6. set width 1024
  7. set uniform_coordinates yes
  8. set title "New experiment"
  9. set subject_parity even
  10. set subject_nr 0
  11. set start experiment
  12. set height 768
  13. set foreground white
  14. set experiment_path "/media/leapadmin/SERAPHINA/Tamil Eng Exp"
  15. set description "Default description"
  16. set coordinates uniform
  17. set compensation 0
  18. set canvas_backend xpyriment
  19. set background black
  20.  
  21. define inline_script click_paradigm
  22. set description "Executes Python code"
  23. set _run ""
  24. ___prepare__
  25. current_idx = var.get('count_nonword_sequence')
  26.  
  27. if current_idx in click_indices:
  28. print("Indices: {} - current_idx: {}".format(click_indices, current_idx))
  29. click_sound.play()
  30. __end__
  31.  
  32. define inline_script define_nonwords
  33. set description "Executes Python code"
  34. set _run ""
  35. ___prepare__
  36. import random
  37.  
  38. # This to expose variables to other Python inline block
  39. global placeholders, nonwords, wordmap
  40.  
  41.  
  42. placeholders = ['a0', 'a1', 'a2', 'a3', 'b0', 'b1', 'b2', 'b3']
  43. nonwords = ['machant', 'knovy', 'gonper', 'rafic', 'bockel', 'howest', 'pelly', 'sovate']
  44.  
  45. random.shuffle(nonwords)
  46.  
  47. # To create a map between placeholders and nonwords
  48. wordmap = {x: y for x, y in zip(placeholders, nonwords)}
  49. __end__
  50.  
  51. define sequence experiment
  52. set flush_keyboard yes
  53. set description "Runs a number of items in sequence"
  54. run new_sketchpad always
  55. run define_nonwords always
  56. run setup_random_clicks always
  57. run nonword_loop always
  58.  
  59. define inline_script keyboard_resp_script
  60. set description "Executes Python code"
  61. set _run ""
  62. ___prepare__
  63. my_keyboard = keyboard(keylist=['SPACE'], timeout=450)
  64.  
  65. start_time = clock.time()
  66.  
  67. current_idx = var.get('count_nonword_sequence')
  68. #if current_idx in click_indices:
  69.  
  70. var.set('my_subj_should_click', current_idx in click_indices)
  71.  
  72. key, end_time = my_keyboard.get_key()
  73. if key is not None:
  74. var.set('my_subj_click_rt', end_time - start_time)
  75. else:
  76. var.set('my_subj_click_rt', 0)
  77. __end__
  78.  
  79. define logger logger
  80. set description "Logs experimental data"
  81. set auto_log yes
  82.  
  83. define loop new_loop
  84. set skip 0
  85. set repeat 1
  86. set order random
  87. set offset no
  88. set item ""
  89. set description "Repeatedly runs another item"
  90. set cycles 1
  91. set column_order timeout
  92. set break_if never
  93. setcycle 0 timeout "=900 + randint(0,600)"
  94. run
  95.  
  96. define sketchpad new_sketchpad
  97. set duration keypress
  98. set description "Displays stimuli"
  99. draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=18 html=yes show_if=always text=Aloha x=0 y=0 z_index=0
  100.  
  101. define sketchpad nonword
  102. set duration 240
  103. set description "Displays stimuli"
  104. draw textline center=1 color=white font_bold=no font_family=mono font_italic=no font_size=31 html=yes show_if=always text="[nonword]" x=0 y=0 z_index=0
  105.  
  106. define loop nonword_loop
  107. set skip 0
  108. set repeat 1
  109. set order sequential
  110. set offset no
  111. set item nonword_sequence
  112. set description "Repeatedly runs another item"
  113. set cycles 40
  114. set column_order wordorder
  115. set break_if never
  116. setcycle 0 wordorder "a0"
  117. setcycle 1 wordorder "a1"
  118. setcycle 2 wordorder "b0"
  119. setcycle 3 wordorder "b1"
  120. setcycle 4 wordorder "a0"
  121. setcycle 5 wordorder "a2"
  122. setcycle 6 wordorder "b0"
  123. setcycle 7 wordorder "b3"
  124. setcycle 8 wordorder "a0"
  125. setcycle 9 wordorder "a3"
  126. setcycle 10 wordorder "b0"
  127. setcycle 11 wordorder "b1"
  128. setcycle 12 wordorder "a0"
  129. setcycle 13 wordorder "a2"
  130. setcycle 14 wordorder "b0"
  131. setcycle 15 wordorder "b2"
  132. setcycle 16 wordorder "a0"
  133. setcycle 17 wordorder "a1"
  134. setcycle 18 wordorder "b0"
  135. setcycle 19 wordorder "b3"
  136. setcycle 20 wordorder "a0"
  137. setcycle 21 wordorder "a3"
  138. setcycle 22 wordorder "b0"
  139. setcycle 23 wordorder "b2"
  140. setcycle 24 wordorder "a0"
  141. setcycle 25 wordorder "a1"
  142. setcycle 26 wordorder "b0"
  143. setcycle 27 wordorder "b1"
  144. setcycle 28 wordorder "a0"
  145. setcycle 29 wordorder "a3"
  146. setcycle 30 wordorder "b0"
  147. setcycle 31 wordorder "b2"
  148. setcycle 32 wordorder "a0"
  149. setcycle 33 wordorder "a2"
  150. setcycle 34 wordorder "b0"
  151. setcycle 35 wordorder "b1"
  152. setcycle 36 wordorder "a0"
  153. setcycle 37 wordorder "a3"
  154. setcycle 38 wordorder "b0"
  155. setcycle 39 wordorder "b3"
  156. run nonword_sequence
  157.  
  158. define inline_script nonword_mapping
  159. set description "Executes Python code"
  160. set _run ""
  161. ___prepare__
  162. var.set('nonword', wordmap[var.get('wordorder')])
  163. __end__
  164.  
  165. define sequence nonword_sequence
  166. set flush_keyboard yes
  167. set description "Runs a number of items in sequence"
  168. run nonword_mapping always
  169. run nonword always
  170. run click_paradigm always
  171. run keyboard_resp_script always
  172. run logger always
  173.  
  174. define inline_script setup_random_clicks
  175. set description "Executes Python code"
  176. set _run ""
  177. ___prepare__
  178. import random
  179.  
  180. #setup sampler
  181. sound = pool['click.wav']
  182. click_sound = sampler(sound, duration=0, volume=1)
  183.  
  184. #40 words in word loop
  185. population = list(range(40))
  186.  
  187. #select 5 random positions
  188. click_indices = random.sample(population, k=5)
  189. __end__
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement