psychopy 2024.2.4__py3-none-any.whl → 2025.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of psychopy might be problematic. Click here for more details.

Files changed (903) hide show
  1. psychopy/CHANGELOG.txt +208 -4
  2. psychopy/LICENSE.txt +1 -1
  3. psychopy/VERSION +1 -1
  4. psychopy/__init__.py +10 -7
  5. psychopy/alerts/__init__.py +1 -1
  6. psychopy/alerts/_alerts.py +53 -17
  7. psychopy/alerts/_errorHandler.py +3 -4
  8. psychopy/alerts/alertsCatalogue/3210.yaml +27 -0
  9. psychopy/alerts/alertsCatalogue/3610.yaml +19 -0
  10. psychopy/alerts/alertsCatalogue/4130.yaml +19 -0
  11. psychopy/alerts/alertsCatalogue/alertCategories.yaml +8 -1
  12. psychopy/alerts/alertsCatalogue/alertmsg.py +1 -1
  13. psychopy/alerts/alerttools.py +0 -16
  14. psychopy/app/Resources/betasplash.png +0 -0
  15. psychopy/app/Resources/betasplash@2x.png +0 -0
  16. psychopy/app/Resources/classic/case.png +0 -0
  17. psychopy/app/Resources/classic/case@2x.png +0 -0
  18. psychopy/app/Resources/classic/fileaudio.png +0 -0
  19. psychopy/app/Resources/classic/fileaudio@2x.png +0 -0
  20. psychopy/app/Resources/classic/filecss.png +0 -0
  21. psychopy/app/Resources/classic/filecss@2x.png +0 -0
  22. psychopy/app/Resources/classic/filecsv.png +0 -0
  23. psychopy/app/Resources/classic/filecsv@2x.png +0 -0
  24. psychopy/app/Resources/classic/filedesign.png +0 -0
  25. psychopy/app/Resources/classic/filedesign@2x.png +0 -0
  26. psychopy/app/Resources/classic/filefont.png +0 -0
  27. psychopy/app/Resources/classic/filefont@2x.png +0 -0
  28. psychopy/app/Resources/classic/filegit.png +0 -0
  29. psychopy/app/Resources/classic/filegit@2x.png +0 -0
  30. psychopy/app/Resources/classic/filehtml.png +0 -0
  31. psychopy/app/Resources/classic/filehtml@2x.png +0 -0
  32. psychopy/app/Resources/classic/fileimage.png +0 -0
  33. psychopy/app/Resources/classic/fileimage@2x.png +0 -0
  34. psychopy/app/Resources/classic/fileinfo.png +0 -0
  35. psychopy/app/Resources/classic/fileinfo@2x.png +0 -0
  36. psychopy/app/Resources/classic/filejs.png +0 -0
  37. psychopy/app/Resources/classic/filejs@2x.png +0 -0
  38. psychopy/app/Resources/classic/filejson.png +0 -0
  39. psychopy/app/Resources/classic/filejson@2x.png +0 -0
  40. psychopy/app/Resources/classic/filepkg.png +0 -0
  41. psychopy/app/Resources/classic/filepkg@2x.png +0 -0
  42. psychopy/app/Resources/classic/filepsyexp.png +0 -0
  43. psychopy/app/Resources/classic/filepsyexp@2x.png +0 -0
  44. psychopy/app/Resources/classic/filepy.png +0 -0
  45. psychopy/app/Resources/classic/filepy@2x.png +0 -0
  46. psychopy/app/Resources/classic/filetxt.png +0 -0
  47. psychopy/app/Resources/classic/filetxt@2x.png +0 -0
  48. psychopy/app/Resources/classic/fileunknown.png +0 -0
  49. psychopy/app/Resources/classic/fileunknown@2x.png +0 -0
  50. psychopy/app/Resources/classic/filevideo.png +0 -0
  51. psychopy/app/Resources/classic/filevideo@2x.png +0 -0
  52. psychopy/app/Resources/classic/find.png +0 -0
  53. psychopy/app/Resources/classic/find@2x.png +0 -0
  54. psychopy/app/Resources/classic/loop.png +0 -0
  55. psychopy/app/Resources/classic/loop@2x.png +0 -0
  56. psychopy/app/Resources/classic/regex.png +0 -0
  57. psychopy/app/Resources/classic/regex@2x.png +0 -0
  58. psychopy/app/Resources/dark/case.png +0 -0
  59. psychopy/app/Resources/dark/case@2x.png +0 -0
  60. psychopy/app/Resources/dark/fileaudio.png +0 -0
  61. psychopy/app/Resources/dark/fileaudio@2x.png +0 -0
  62. psychopy/app/Resources/dark/filecss.png +0 -0
  63. psychopy/app/Resources/dark/filecss@2x.png +0 -0
  64. psychopy/app/Resources/dark/filecsv.png +0 -0
  65. psychopy/app/Resources/dark/filecsv@2x.png +0 -0
  66. psychopy/app/Resources/dark/filedesign.png +0 -0
  67. psychopy/app/Resources/dark/filedesign@2x.png +0 -0
  68. psychopy/app/Resources/dark/filefont.png +0 -0
  69. psychopy/app/Resources/dark/filefont@2x.png +0 -0
  70. psychopy/app/Resources/dark/filegit.png +0 -0
  71. psychopy/app/Resources/dark/filegit@2x.png +0 -0
  72. psychopy/app/Resources/dark/filehtml.png +0 -0
  73. psychopy/app/Resources/dark/filehtml@2x.png +0 -0
  74. psychopy/app/Resources/dark/fileimage.png +0 -0
  75. psychopy/app/Resources/dark/fileimage@2x.png +0 -0
  76. psychopy/app/Resources/dark/fileinfo.png +0 -0
  77. psychopy/app/Resources/dark/fileinfo@2x.png +0 -0
  78. psychopy/app/Resources/dark/filejs.png +0 -0
  79. psychopy/app/Resources/dark/filejs@2x.png +0 -0
  80. psychopy/app/Resources/dark/filejson.png +0 -0
  81. psychopy/app/Resources/dark/filejson@2x.png +0 -0
  82. psychopy/app/Resources/dark/filepkg.png +0 -0
  83. psychopy/app/Resources/dark/filepkg@2x.png +0 -0
  84. psychopy/app/Resources/dark/filepsyexp.png +0 -0
  85. psychopy/app/Resources/dark/filepsyexp@2x.png +0 -0
  86. psychopy/app/Resources/dark/filepy.png +0 -0
  87. psychopy/app/Resources/dark/filepy@2x.png +0 -0
  88. psychopy/app/Resources/dark/filetxt.png +0 -0
  89. psychopy/app/Resources/dark/filetxt@2x.png +0 -0
  90. psychopy/app/Resources/dark/fileunknown.png +0 -0
  91. psychopy/app/Resources/dark/fileunknown@2x.png +0 -0
  92. psychopy/app/Resources/dark/filevideo.png +0 -0
  93. psychopy/app/Resources/dark/filevideo@2x.png +0 -0
  94. psychopy/app/Resources/dark/find.png +0 -0
  95. psychopy/app/Resources/dark/find@2x.png +0 -0
  96. psychopy/app/Resources/dark/loop.png +0 -0
  97. psychopy/app/Resources/dark/loop@2x.png +0 -0
  98. psychopy/app/Resources/dark/regex.png +0 -0
  99. psychopy/app/Resources/dark/regex@2x.png +0 -0
  100. psychopy/app/Resources/light/case.png +0 -0
  101. psychopy/app/Resources/light/case@2x.png +0 -0
  102. psychopy/app/Resources/light/fileaudio.png +0 -0
  103. psychopy/app/Resources/light/fileaudio@2x.png +0 -0
  104. psychopy/app/Resources/light/filecss.png +0 -0
  105. psychopy/app/Resources/light/filecss@2x.png +0 -0
  106. psychopy/app/Resources/light/filecsv.png +0 -0
  107. psychopy/app/Resources/light/filecsv@2x.png +0 -0
  108. psychopy/app/Resources/light/filedesign.png +0 -0
  109. psychopy/app/Resources/light/filedesign@2x.png +0 -0
  110. psychopy/app/Resources/light/filefont.png +0 -0
  111. psychopy/app/Resources/light/filefont@2x.png +0 -0
  112. psychopy/app/Resources/light/filegit.png +0 -0
  113. psychopy/app/Resources/light/filegit@2x.png +0 -0
  114. psychopy/app/Resources/light/filehtml.png +0 -0
  115. psychopy/app/Resources/light/filehtml@2x.png +0 -0
  116. psychopy/app/Resources/light/fileimage.png +0 -0
  117. psychopy/app/Resources/light/fileimage@2x.png +0 -0
  118. psychopy/app/Resources/light/fileinfo.png +0 -0
  119. psychopy/app/Resources/light/fileinfo@2x.png +0 -0
  120. psychopy/app/Resources/light/filejs.png +0 -0
  121. psychopy/app/Resources/light/filejs@2x.png +0 -0
  122. psychopy/app/Resources/light/filejson.png +0 -0
  123. psychopy/app/Resources/light/filejson@2x.png +0 -0
  124. psychopy/app/Resources/light/filepkg.png +0 -0
  125. psychopy/app/Resources/light/filepkg@2x.png +0 -0
  126. psychopy/app/Resources/light/filepsyexp.png +0 -0
  127. psychopy/app/Resources/light/filepsyexp@2x.png +0 -0
  128. psychopy/app/Resources/light/filepy.png +0 -0
  129. psychopy/app/Resources/light/filepy@2x.png +0 -0
  130. psychopy/app/Resources/light/filetxt.png +0 -0
  131. psychopy/app/Resources/light/filetxt@2x.png +0 -0
  132. psychopy/app/Resources/light/fileunknown.png +0 -0
  133. psychopy/app/Resources/light/fileunknown@2x.png +0 -0
  134. psychopy/app/Resources/light/filevideo.png +0 -0
  135. psychopy/app/Resources/light/filevideo@2x.png +0 -0
  136. psychopy/app/Resources/light/find.png +0 -0
  137. psychopy/app/Resources/light/find@2x.png +0 -0
  138. psychopy/app/Resources/light/loop.png +0 -0
  139. psychopy/app/Resources/light/loop@2x.png +0 -0
  140. psychopy/app/Resources/light/regex.png +0 -0
  141. psychopy/app/Resources/light/regex@2x.png +0 -0
  142. psychopy/app/Resources/routine_templates/Basic.psyexp +0 -1
  143. psychopy/app/Resources/routine_templates/Misc.psyexp +0 -1
  144. psychopy/app/Resources/routine_templates/Online.psyexp +0 -2
  145. psychopy/app/Resources/routine_templates/Trials.psyexp +0 -1
  146. psychopy/app/Resources/splash.png +0 -0
  147. psychopy/app/Resources/splash@2x.png +0 -0
  148. psychopy/app/__init__.py +49 -8
  149. psychopy/app/__main__.py +3 -0
  150. psychopy/app/_psychopyApp.py +134 -125
  151. psychopy/app/builder/builder.py +42 -22
  152. psychopy/app/builder/dialogs/__init__.py +44 -11
  153. psychopy/app/builder/dialogs/dlgsCode.py +1 -1
  154. psychopy/app/builder/dialogs/dlgsConditions.py +1 -1
  155. psychopy/app/builder/dialogs/findDlg.py +106 -20
  156. psychopy/app/builder/dialogs/paramCtrls.py +42 -1
  157. psychopy/app/builder/validators.py +1 -1
  158. psychopy/app/coder/codeEditorBase.py +8 -8
  159. psychopy/app/coder/coder.py +32 -29
  160. psychopy/app/coder/fileBrowser.py +68 -22
  161. psychopy/app/coder/folding.py +1 -1
  162. psychopy/app/coder/psychoParser.py +1 -1
  163. psychopy/app/coder/repl.py +1 -1
  164. psychopy/app/coder/sourceTree.py +1 -1
  165. psychopy/app/connections/__init__.py +1 -1
  166. psychopy/app/connections/news.py +1 -1
  167. psychopy/app/connections/sendusage.py +1 -1
  168. psychopy/app/connections/updates.py +1 -1
  169. psychopy/app/console.py +1 -1
  170. psychopy/app/errorDlg.py +1 -1
  171. psychopy/app/frametracker.py +1 -1
  172. psychopy/app/idle.py +1 -1
  173. psychopy/app/jobs.py +5 -2
  174. psychopy/app/linuxconfig/__init__.py +1 -1
  175. psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
  176. psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +1514 -3259
  177. psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
  178. psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
  179. psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
  180. psychopy/app/locale/de_DE/LC_MESSAGE/messages.po +3 -3
  181. psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
  182. psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
  183. psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
  184. psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
  185. psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +4 -4
  186. psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
  187. psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +4 -4
  188. psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
  189. psychopy/app/locale/es_US/LC_MESSAGE/messages.po +4 -4
  190. psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
  191. psychopy/app/locale/et_EE/LC_MESSAGE/messages.po +2 -2
  192. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
  193. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.po +1 -1
  194. psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
  195. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
  196. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.po +2 -2
  197. psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
  198. psychopy/app/locale/he_IL/LC_MESSAGE/messages.po +2 -2
  199. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
  200. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.po +2 -2
  201. psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
  202. psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
  203. psychopy/app/locale/it_IT/LC_MESSAGE/messages.po +2 -2
  204. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
  205. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +3421 -2396
  206. psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
  207. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
  208. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.po +2 -2
  209. psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
  210. psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
  211. psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
  212. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
  213. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +4 -4
  214. psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
  215. psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
  216. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
  217. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.po +2 -2
  218. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
  219. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.po +2 -2
  220. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
  221. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.po +3 -3
  222. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
  223. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.po +2 -2
  224. psychopy/app/{builder/localizedStrings.py → localizedStrings.py} +173 -26
  225. psychopy/app/pavlovia_ui/__init__.py +1 -1
  226. psychopy/app/pavlovia_ui/_base.py +1 -1
  227. psychopy/app/pavlovia_ui/functions.py +1 -1
  228. psychopy/app/pavlovia_ui/menu.py +1 -1
  229. psychopy/app/pavlovia_ui/project.py +1 -1
  230. psychopy/app/pavlovia_ui/search.py +1 -1
  231. psychopy/app/pavlovia_ui/sync.py +1 -1
  232. psychopy/app/pavlovia_ui/user.py +1 -1
  233. psychopy/app/plugin_manager/dialog.py +34 -96
  234. psychopy/app/plugin_manager/packages.py +10 -14
  235. psychopy/app/plugin_manager/plugins.py +64 -4
  236. psychopy/app/preferencesDlg.py +12 -37
  237. psychopy/app/psychopyApp.py +130 -44
  238. psychopy/app/ribbon.py +1 -0
  239. psychopy/app/runner/runner.py +37 -15
  240. psychopy/app/runner/scriptProcess.py +11 -6
  241. psychopy/app/stdout/stdOutRich.py +9 -2
  242. psychopy/app/themes/fonts.py +1 -1
  243. psychopy/app/themes/icons.py +2 -38
  244. psychopy/app/ui/__init__.py +1 -1
  245. psychopy/app/utils.py +3 -3
  246. psychopy/assets/default.mp3 +0 -0
  247. psychopy/assets/fonts/NotoSans-Bold.ttf +0 -0
  248. psychopy/assets/fonts/NotoSans-BoldItalic.ttf +0 -0
  249. psychopy/assets/fonts/NotoSans-Italic.ttf +0 -0
  250. psychopy/assets/fonts/NotoSans-Regular.ttf +0 -0
  251. psychopy/assets/voicekeyThresholdStim.wav +0 -0
  252. psychopy/clock.py +4 -1
  253. psychopy/colors.py +2 -0
  254. psychopy/core.py +1 -1
  255. psychopy/data/base.py +1 -1
  256. psychopy/data/experiment.py +151 -46
  257. psychopy/data/routine.py +27 -1
  258. psychopy/data/staircase.py +2 -1
  259. psychopy/data/trial.py +62 -14
  260. psychopy/data/utils.py +1 -1
  261. psychopy/demos/builder/Design Templates/branchedExperiment/branchedExperiment.psyexp +333 -218
  262. psychopy/demos/builder/Design Templates/psychophysicsStaircase/psychophysicsStaircase.psyexp +261 -239
  263. psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/psychophysicsStaircaseInterleaved.psyexp +319 -180
  264. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.psyexp +204 -116
  265. psychopy/demos/builder/Experiments/BART/assets/background.jpg +0 -0
  266. psychopy/demos/builder/Experiments/BART/assets/blueBalloon.png +0 -0
  267. psychopy/demos/builder/Experiments/BART/assets/greenBalloon.png +0 -0
  268. psychopy/demos/builder/Experiments/BART/assets/redBalloon.png +0 -0
  269. psychopy/demos/builder/Experiments/BART/bart.psyexp +779 -866
  270. psychopy/demos/builder/Experiments/BigFiveInventory/BFI.psyexp +242 -180
  271. psychopy/demos/builder/Experiments/GoNoGo/gng.psyexp +419 -406
  272. psychopy/demos/builder/Experiments/dragAndDrop/README.md +2 -37
  273. psychopy/demos/builder/Experiments/dragAndDrop/drag_and_drop.psyexp +460 -1204
  274. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/blank_grid.png +0 -0
  275. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/make_shapes.psyexp +221 -0
  276. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/readme.md +4 -0
  277. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_1.png +0 -0
  278. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_10.png +0 -0
  279. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_2.png +0 -0
  280. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_3.png +0 -0
  281. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_4.png +0 -0
  282. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_5.png +0 -0
  283. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_6.png +0 -0
  284. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_7.png +0 -0
  285. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_8.png +0 -0
  286. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_9.png +0 -0
  287. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solutions.xlsx +0 -0
  288. psychopy/demos/builder/Experiments/mentalRotation/MentalRotation.psyexp +583 -542
  289. psychopy/demos/builder/Experiments/navon/NavonTask.psyexp +458 -427
  290. psychopy/demos/builder/Experiments/sternberg/sternberg.psyexp +588 -550
  291. psychopy/demos/builder/Experiments/stroop/stroop.psyexp +303 -207
  292. psychopy/demos/builder/Experiments/stroopExtended/stroop.psyexp +390 -215
  293. psychopy/demos/builder/Experiments/stroopExtended/stroopReverse.psyexp +390 -215
  294. psychopy/demos/builder/Experiments/stroopVoice/stroopVoice.psyexp +357 -331
  295. psychopy/demos/builder/Feature Demos/buttonBox/buttonBoxDemo.psyexp +3 -2
  296. psychopy/demos/builder/Feature Demos/counterbalance/counterbalance.psyexp +287 -277
  297. psychopy/demos/builder/Feature Demos/gratings/gratings.psyexp +370 -320
  298. psychopy/demos/builder/Feature Demos/noise/noise.psyexp +452 -399
  299. psychopy/demos/builder/Feature Demos/panorama/panorama.psyexp +168 -133
  300. psychopy/demos/builder/Feature Demos/pilotMode/pilotMode.psyexp +4 -3
  301. psychopy/demos/builder/Feature Demos/progress/progressBar.psyexp +420 -392
  302. psychopy/demos/builder/Feature Demos/sliders/sliders.psyexp +917 -871
  303. psychopy/demos/builder/Feature Demos/visualValidator/readme.md +7 -0
  304. psychopy/demos/builder/Feature Demos/visualValidator/visualValidator.psyexp +200 -0
  305. psychopy/demos/builder/Hardware/EEG_parallel_component/EEG_triggers_parallel_comp.psyexp +25 -9
  306. psychopy/demos/builder/Hardware/EEG_serial_code/EEG_triggers_serial_code.psyexp +372 -361
  307. psychopy/demos/builder/Hardware/EEG_serial_component/EEG_triggers_serial_comp.psyexp +25 -9
  308. psychopy/demos/builder/Hardware/EGI_netstation/stroop.psyexp +320 -235
  309. psychopy/demos/builder/Hardware/Eyetracking_visual_search/visualSearch.psyexp +790 -651
  310. psychopy/demos/builder/Hardware/camera/camera.psyexp +326 -246
  311. psychopy/demos/builder/Hardware/eyetracking/eyetracking.psyexp +432 -327
  312. psychopy/demos/builder/Hardware/eyetracking_custom_cal/eyetracking_custom_cal.psyexp +440 -321
  313. psychopy/demos/builder/Hardware/fMRI/fMRI_demo.psyexp +190 -181
  314. psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo.psyexp +323 -312
  315. psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo_legacy.psyexp +360 -0
  316. psychopy/demos/builder/{Feature Demos/eyetracking/eyetracking.xml → Hardware/lab_streaming_layer/lsl_triggers_demo_legacy_legacy.psyexp} +154 -140
  317. psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy.psyexp +329 -273
  318. psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy.psyexp +360 -0
  319. psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy_legacy.psyexp +312 -0
  320. psychopy/demos/builder/Hardware/microphone/microphone.psyexp +450 -404
  321. psychopy/demos/builder/Hardware/pump/pump.psyexp +593 -329
  322. psychopy/demos/builder/Helper Tools/achorVSalignment/FlowCircular-Regular.ttf +0 -0
  323. psychopy/demos/builder/Helper Tools/achorVSalignment/anchorAlignment.psyexp +336 -274
  324. psychopy/demos/builder/Helper Tools/clockFace/clockFace.psyexp +200 -149
  325. psychopy/demos/builder/Helper Tools/colors/colors.psyexp +300 -279
  326. psychopy/demos/builder/Helper Tools/drawPolygon/drawPolygon.psyexp +677 -564
  327. psychopy/demos/builder/Helper Tools/keyNameFinder/keyNameFinder.psyexp +214 -158
  328. psychopy/demos/builder/Helper Tools/spatialUnits/unitDemo.psyexp +195 -146
  329. psychopy/demos/coder/experiment control/runtimeInfo.py +1 -1
  330. psychopy/devices/__init__.py +1 -1
  331. psychopy/event.py +1 -1
  332. psychopy/exceptions.py +1 -1
  333. psychopy/experiment/__init__.py +1 -1
  334. psychopy/experiment/_experiment.py +62 -16
  335. psychopy/experiment/components/__init__.py +1 -6
  336. psychopy/experiment/components/_base.py +44 -19
  337. psychopy/experiment/components/aperture/__init__.py +1 -1
  338. psychopy/experiment/components/brush/__init__.py +2 -2
  339. psychopy/experiment/components/button/__init__.py +24 -28
  340. psychopy/experiment/components/camera/__init__.py +38 -39
  341. psychopy/experiment/components/code/__init__.py +1 -1
  342. psychopy/experiment/components/dots/__init__.py +1 -1
  343. psychopy/experiment/components/eyetracker_record/__init__.py +7 -3
  344. psychopy/experiment/components/form/__init__.py +3 -3
  345. psychopy/experiment/components/grating/__init__.py +1 -1
  346. psychopy/experiment/components/image/__init__.py +1 -1
  347. psychopy/experiment/components/joyButtons/__init__.py +2 -2
  348. psychopy/experiment/components/joyButtons/virtualJoyButtons.py +1 -1
  349. psychopy/experiment/components/joystick/__init__.py +3 -3
  350. psychopy/experiment/components/joystick/virtualJoystick.py +1 -1
  351. psychopy/experiment/components/keyboard/__init__.py +98 -122
  352. psychopy/experiment/components/microphone/__init__.py +54 -98
  353. psychopy/experiment/components/mouse/__init__.py +92 -93
  354. psychopy/experiment/components/movie/__init__.py +28 -50
  355. psychopy/experiment/components/parallelOut/__init__.py +3 -3
  356. psychopy/experiment/components/polygon/__init__.py +2 -3
  357. psychopy/experiment/components/roi/__init__.py +2 -2
  358. psychopy/experiment/components/routineSettings/__init__.py +2 -0
  359. psychopy/experiment/components/serialOut/__init__.py +7 -7
  360. psychopy/experiment/components/settings/__init__.py +317 -313
  361. psychopy/experiment/components/settings/eyetracking.py +108 -0
  362. psychopy/experiment/components/slider/__init__.py +5 -5
  363. psychopy/experiment/components/sound/__init__.py +168 -78
  364. psychopy/experiment/components/soundsensor/__init__.py +361 -0
  365. psychopy/experiment/components/soundsensor/classic/soundsensor.png +0 -0
  366. psychopy/experiment/components/soundsensor/classic/soundsensor@2x.png +0 -0
  367. psychopy/experiment/components/soundsensor/dark/soundsensor.png +0 -0
  368. psychopy/experiment/components/soundsensor/dark/soundsensor@2x.png +0 -0
  369. psychopy/experiment/components/soundsensor/light/soundsensor.png +0 -0
  370. psychopy/experiment/components/soundsensor/light/soundsensor@2x.png +0 -0
  371. psychopy/experiment/components/static/__init__.py +59 -33
  372. psychopy/experiment/components/text/__init__.py +2 -6
  373. psychopy/experiment/components/textbox/__init__.py +3 -7
  374. psychopy/experiment/components/unknown/__init__.py +2 -0
  375. psychopy/experiment/components/unknownPlugin/__init__.py +2 -0
  376. psychopy/experiment/exports.py +1 -1
  377. psychopy/experiment/flow.py +2 -2
  378. psychopy/experiment/localization.py +1 -1
  379. psychopy/experiment/loops.py +43 -10
  380. psychopy/experiment/params.py +6 -4
  381. psychopy/experiment/plugins.py +8 -1
  382. psychopy/experiment/py2js.py +1 -1
  383. psychopy/experiment/py2js_transpiler.py +1 -1
  384. psychopy/experiment/routines/__init__.py +1 -1
  385. psychopy/experiment/routines/_base.py +23 -24
  386. psychopy/experiment/routines/audioValidator/__init__.py +343 -0
  387. psychopy/experiment/routines/audioValidator/classic/audio_validator.png +0 -0
  388. psychopy/experiment/routines/audioValidator/classic/audio_validator@2x.png +0 -0
  389. psychopy/experiment/routines/audioValidator/dark/audio_validator.png +0 -0
  390. psychopy/experiment/routines/audioValidator/dark/audio_validator@2x.png +0 -0
  391. psychopy/experiment/routines/audioValidator/light/audio_validator.png +0 -0
  392. psychopy/experiment/routines/audioValidator/light/audio_validator@2x.png +0 -0
  393. psychopy/experiment/routines/eyetracker_calibrate/__init__.py +76 -17
  394. psychopy/experiment/routines/eyetracker_validate/__init__.py +1 -1
  395. psychopy/experiment/routines/unknown/__init__.py +2 -0
  396. psychopy/experiment/routines/{photodiodeValidator → visualValidator}/__init__.py +89 -120
  397. psychopy/experiment/routines/visualValidator/classic/visual_validator.png +0 -0
  398. psychopy/experiment/routines/visualValidator/classic/visual_validator@2x.png +0 -0
  399. psychopy/experiment/routines/visualValidator/dark/visual_validator.png +0 -0
  400. psychopy/experiment/routines/visualValidator/dark/visual_validator@2x.png +0 -0
  401. psychopy/experiment/routines/visualValidator/light/visual_validator.png +0 -0
  402. psychopy/experiment/routines/visualValidator/light/visual_validator@2x.png +0 -0
  403. psychopy/experiment/utils.py +1 -1
  404. psychopy/gui/__init__.py +1 -1
  405. psychopy/gui/qtgui.py +15 -6
  406. psychopy/gui/wxgui.py +1 -1
  407. psychopy/hardware/__init__.py +0 -1
  408. psychopy/hardware/base.py +147 -16
  409. psychopy/hardware/bbtk/__init__.py +10 -16
  410. psychopy/hardware/brainproducts.py +7 -13
  411. psychopy/hardware/button.py +21 -2
  412. psychopy/hardware/buttonbox/__init__.py +1 -1
  413. psychopy/hardware/camera/__init__.py +16 -3
  414. psychopy/hardware/cedrus.py +5 -16
  415. psychopy/hardware/crs/__init__.py +1 -1
  416. psychopy/hardware/crs/bits.py +36 -33
  417. psychopy/hardware/crs/colorcal.py +8 -11
  418. psychopy/hardware/crs/optical.py +7 -10
  419. psychopy/hardware/crs/shaders.py +18 -5
  420. psychopy/hardware/emotiv.py +1 -1
  421. psychopy/hardware/emulator.py +11 -5
  422. psychopy/hardware/exceptions.py +86 -0
  423. psychopy/hardware/forp.py +18 -23
  424. psychopy/hardware/gammasci.py +8 -3
  425. psychopy/hardware/iolab.py +8 -19
  426. psychopy/hardware/joystick/__init__.py +865 -266
  427. psychopy/hardware/joystick/_base.py +251 -0
  428. psychopy/hardware/joystick/backend_glfw.py +306 -0
  429. psychopy/hardware/joystick/backend_pyglet.py +309 -0
  430. psychopy/hardware/joystick/mappings.py +287 -0
  431. psychopy/hardware/keyboard.py +4 -2
  432. psychopy/hardware/labhackers.py +1 -1
  433. psychopy/hardware/labjacks.py +9 -13
  434. psychopy/hardware/{photodiode.py → lightsensor.py} +146 -203
  435. psychopy/hardware/listener.py +9 -8
  436. psychopy/hardware/manager.py +24 -35
  437. psychopy/hardware/microphone.py +534 -154
  438. psychopy/hardware/minolta.py +14 -4
  439. psychopy/hardware/mouse/__init__.py +1 -1
  440. psychopy/hardware/photometer/__init__.py +2 -2
  441. psychopy/hardware/pr.py +14 -4
  442. psychopy/hardware/qmix.py +18 -27
  443. psychopy/hardware/serialdevice.py +43 -12
  444. psychopy/hardware/soundsensor.py +473 -0
  445. psychopy/hardware/spatial/__init__.py +231 -0
  446. psychopy/hardware/speaker.py +298 -36
  447. psychopy/hardware/triggerbox/__init__.py +1 -1
  448. psychopy/hardware/triggerbox/base.py +1 -1
  449. psychopy/hardware/triggerbox/parallel.py +1 -1
  450. psychopy/info.py +1 -1
  451. psychopy/iohub/client/__init__.py +17 -0
  452. psychopy/iohub/client/keyboard.py +5 -0
  453. psychopy/iohub/devices/eyetracker/__init__.py +10 -18
  454. psychopy/iohub/devices/eyetracker/calibration/procedure.py +15 -33
  455. psychopy/iohub/devices/eyetracker/hw/pupil_labs/neon/__init__.py +1 -0
  456. psychopy/iohub/devices/mouse/linux2.py +6 -1
  457. psychopy/iohub/devices/mouse/win32.py +5 -0
  458. psychopy/layout.py +1 -1
  459. psychopy/liaison.py +91 -39
  460. psychopy/locale_setup.py +11 -1
  461. psychopy/localization/__init__.py +1 -1
  462. psychopy/localization/_localization.py +1 -1
  463. psychopy/localization/messages.pot +2 -2
  464. psychopy/logging.py +14 -12
  465. psychopy/microphone.py +4 -3
  466. psychopy/misc.py +1 -1
  467. psychopy/monitors/MonitorCenter.py +3 -3
  468. psychopy/monitors/__init__.py +1 -1
  469. psychopy/monitors/calibData.py +1 -1
  470. psychopy/monitors/calibTools.py +3 -2
  471. psychopy/platform_specific/__init__.py +1 -1
  472. psychopy/platform_specific/darwin.py +1 -1
  473. psychopy/platform_specific/linux.py +1 -1
  474. psychopy/platform_specific/win32.py +1 -1
  475. psychopy/plugins/__init__.py +26 -17
  476. psychopy/plugins/util.py +65 -0
  477. psychopy/preferences/Darwin.spec +11 -3
  478. psychopy/preferences/FreeBSD.spec +11 -3
  479. psychopy/preferences/Linux.spec +11 -3
  480. psychopy/preferences/Windows.spec +11 -3
  481. psychopy/preferences/__init__.py +1 -1
  482. psychopy/preferences/baseNoArch.spec +11 -3
  483. psychopy/preferences/hints.py +78 -61
  484. psychopy/preferences/preferences.py +82 -13
  485. psychopy/projects/__init__.py +1 -1
  486. psychopy/projects/pavlovia.py +29 -13
  487. psychopy/scripts/psyexpCompile.py +1 -1
  488. psychopy/session.py +81 -8
  489. psychopy/sound/__init__.py +25 -10
  490. psychopy/sound/_base.py +134 -34
  491. psychopy/sound/audioclip.py +38 -15
  492. psychopy/sound/audiodevice.py +1 -1
  493. psychopy/sound/backend_ptb.py +53 -321
  494. psychopy/sound/backend_pygame.py +7 -3
  495. psychopy/sound/backend_pyo.py +53 -22
  496. psychopy/sound/backend_pysound.py +10 -27
  497. psychopy/sound/backend_sounddevice.py +33 -21
  498. psychopy/sound/exceptions.py +1 -1
  499. psychopy/sound/microphone.py +83 -5
  500. psychopy/sound/transcribe.py +3 -3
  501. psychopy/tests/data/test_basic_run.py +1 -0
  502. psychopy/tests/data/test_loaded_namespace/test_counterbalance.psyexp +142 -0
  503. psychopy/tests/data/test_loaded_namespace/test_custom_missing.psyexp +129 -0
  504. psychopy/tests/data/test_loaded_namespace/test_missing_counterbalance.psyexp +116 -0
  505. psychopy/tests/data/test_loaded_namespace/test_mix_exp.psyexp +181 -0
  506. psychopy/tests/data/test_loaded_namespace/test_mix_missing.psyexp +140 -0
  507. psychopy/tests/data/test_loaded_namespace/test_mix_name_calibration.psyexp +164 -0
  508. psychopy/tests/data/test_sounds/default_16000.wav +0 -0
  509. psychopy/tests/data/test_sounds/default_192000.wav +0 -0
  510. psychopy/tests/data/test_sounds/default_22050.wav +0 -0
  511. psychopy/tests/data/test_sounds/default_32000.wav +0 -0
  512. psychopy/tests/data/test_sounds/default_44100.wav +0 -0
  513. psychopy/tests/data/test_sounds/default_48000.wav +0 -0
  514. psychopy/tests/data/test_sounds/default_8000.wav +0 -0
  515. psychopy/tests/data/test_sounds/default_96000.wav +0 -0
  516. psychopy/tests/test_alerts/test_alerttools.py +2 -1
  517. psychopy/tests/test_app/test_command_line.py +65 -0
  518. psychopy/tests/test_data/test_TrialHandler2.py +18 -7
  519. psychopy/tests/test_demos/test_builder_demos.py +1 -1
  520. psychopy/tests/test_experiment/needs_wx/componsTemplate.txt +5238 -4188
  521. psychopy/tests/test_experiment/needs_wx/test_components.py +1 -1
  522. psychopy/tests/test_experiment/test_components/test_RoutineSettingsComponent.py +16 -0
  523. psychopy/tests/test_experiment/test_components/test_all_components.py +1 -1
  524. psychopy/tests/test_experiment/test_components/test_base_components.py +26 -17
  525. psychopy/tests/test_experiment/test_experiment.py +96 -0
  526. psychopy/tests/test_experiment/test_loops.py +12 -4
  527. psychopy/tests/test_experiment/test_params.py +17 -4
  528. psychopy/tests/test_experiment/test_routines/test_PhotodiodeValidationRoutine.py +2 -2
  529. psychopy/tests/test_hardware/test_photodiode.py +66 -0
  530. psychopy/tests/test_liaison/test_Liaison.py +4 -4
  531. psychopy/tests/test_misc/test_clock.py +2 -0
  532. psychopy/tests/test_misc/test_color.py +2 -0
  533. psychopy/tests/test_misc/test_event.py +1 -0
  534. psychopy/tests/test_plugins/test_plugin_stubs.py +125 -0
  535. psychopy/tests/test_sound/test_sound.py +111 -40
  536. psychopy/tests/test_tools/test_colorspacetools.py +24 -23
  537. psychopy/tests/test_tools/test_mathtools.py +9 -9
  538. psychopy/tests/test_tools/test_viewtools.py +101 -0
  539. psychopy/tests/test_validators/__init__.py +0 -0
  540. psychopy/tests/test_validators/test_voicekeyValidator.py +95 -0
  541. psychopy/tests/test_visual/test_all_stimuli.py +2 -2
  542. psychopy/tests/test_visual/test_basevisual.py +37 -7
  543. psychopy/tests/test_visual/test_button.py +2 -2
  544. psychopy/tests/test_visual/test_circle.py +10 -2
  545. psychopy/tests/test_visual/test_dots.py +1 -1
  546. psychopy/tests/test_visual/test_form.py +13 -13
  547. psychopy/tests/test_visual/test_gamma.py +3 -3
  548. psychopy/tests/test_visual/test_image.py +2 -2
  549. psychopy/tests/test_visual/test_progress.py +2 -2
  550. psychopy/tests/test_visual/test_roi.py +8 -2
  551. psychopy/tests/test_visual/test_shape.py +2 -2
  552. psychopy/tests/test_visual/test_slider.py +2 -2
  553. psychopy/tests/test_visual/test_target.py +2 -2
  554. psychopy/tests/test_visual/test_textbox.py +6 -8
  555. psychopy/tests/test_visual/test_winScalePos.py +6 -5
  556. psychopy/tests/test_visual/test_window.py +17 -0
  557. psychopy/tests/utils.py +51 -1
  558. psychopy/tools/__init__.py +1 -1
  559. psychopy/tools/arraytools.py +2 -2
  560. psychopy/tools/attributetools.py +52 -1
  561. psychopy/tools/audiotools.py +4 -1
  562. psychopy/tools/colorspacetools.py +6 -4
  563. psychopy/tools/coordinatetools.py +1 -1
  564. psychopy/tools/fileerrortools.py +21 -9
  565. psychopy/tools/filetools.py +2 -2
  566. psychopy/tools/fontmanager.py +47 -28
  567. psychopy/tools/gltools.py +2964 -558
  568. psychopy/tools/imagetools.py +1 -1
  569. psychopy/tools/mathtools.py +997 -127
  570. psychopy/tools/monitorunittools.py +7 -1
  571. psychopy/tools/movietools.py +1 -2
  572. psychopy/tools/pkgtools.py +157 -127
  573. psychopy/tools/plottools.py +1 -1
  574. psychopy/tools/rifttools.py +1 -1
  575. psychopy/tools/stereotools.py +1 -1
  576. psychopy/tools/stimulustools.py +172 -2
  577. psychopy/tools/stringtools.py +22 -2
  578. psychopy/tools/systemtools.py +1 -1
  579. psychopy/tools/typetools.py +1 -1
  580. psychopy/tools/unittools.py +1 -1
  581. psychopy/tools/versionchooser.py +3 -1
  582. psychopy/tools/viewtools.py +54 -70
  583. psychopy/tools/wizard.py +2 -2
  584. psychopy/validation/__init__.py +6 -0
  585. psychopy/validation/audio.py +74 -0
  586. psychopy/validation/visual.py +115 -0
  587. psychopy/visual/__init__.py +1 -4
  588. psychopy/visual/aperture.py +9 -6
  589. psychopy/visual/backends/__init__.py +1 -1
  590. psychopy/visual/backends/_base.py +1 -1
  591. psychopy/visual/backends/gamma.py +1 -1
  592. psychopy/visual/backends/glfwbackend.py +8 -12
  593. psychopy/visual/backends/pygamebackend.py +1 -1
  594. psychopy/visual/backends/pygletbackend.py +32 -11
  595. psychopy/visual/basevisual.py +93 -13
  596. psychopy/visual/brush.py +1 -1
  597. psychopy/visual/bufferimage.py +90 -10
  598. psychopy/visual/button.py +1 -1
  599. psychopy/visual/circle.py +12 -20
  600. psychopy/visual/custommouse.py +1 -1
  601. psychopy/visual/dot.py +80 -14
  602. psychopy/visual/elementarray.py +84 -10
  603. psychopy/visual/filters.py +1 -1
  604. psychopy/visual/form.py +43 -28
  605. psychopy/visual/grating.py +105 -25
  606. psychopy/visual/helpers.py +1 -1
  607. psychopy/visual/image.py +98 -20
  608. psychopy/visual/line.py +15 -25
  609. psychopy/visual/movie.py +1 -1
  610. psychopy/visual/movie2.py +4 -3
  611. psychopy/visual/movie3.py +4 -3
  612. psychopy/visual/movies/__init__.py +1 -1
  613. psychopy/visual/movies/frame.py +1 -1
  614. psychopy/visual/movies/metadata.py +1 -1
  615. psychopy/visual/movies/players/__init__.py +1 -1
  616. psychopy/visual/movies/players/_base.py +1 -1
  617. psychopy/visual/movies/players/ffpyplayer_player.py +2 -3
  618. psychopy/visual/nnlvs.py +9 -6
  619. psychopy/visual/noise.py +4 -16
  620. psychopy/visual/patch.py +4 -3
  621. psychopy/visual/pie.py +3 -14
  622. psychopy/visual/polygon.py +21 -28
  623. psychopy/visual/radial.py +4 -18
  624. psychopy/visual/ratingscale.py +4 -3
  625. psychopy/visual/rect.py +16 -25
  626. psychopy/visual/rift.py +8 -2
  627. psychopy/visual/secondorder.py +4 -16
  628. psychopy/visual/shaders.py +620 -286
  629. psychopy/visual/shape.py +281 -90
  630. psychopy/visual/simpleimage.py +1 -1
  631. psychopy/visual/slider.py +78 -25
  632. psychopy/visual/stim3d.py +5 -608
  633. psychopy/visual/text.py +13 -3
  634. psychopy/visual/textbox2/textbox2.py +188 -56
  635. psychopy/visual/vlcmoviestim.py +1 -1
  636. psychopy/visual/window.py +373 -200
  637. psychopy/web.py +1 -1
  638. {psychopy-2024.2.4.dist-info → psychopy-2025.1.0.dist-info}/METADATA +9 -9
  639. {psychopy-2024.2.4.dist-info → psychopy-2025.1.0.dist-info}/RECORD +653 -660
  640. psychopy/.DS_Store +0 -0
  641. psychopy/__init__.py.orig +0 -65
  642. psychopy/app/.DS_Store +0 -0
  643. psychopy/app/Resources/.DS_Store +0 -0
  644. psychopy/app/Resources/classic/filecsv16.png +0 -0
  645. psychopy/app/Resources/classic/fileimage16.png +0 -0
  646. psychopy/app/Resources/classic/fileunknown16.png +0 -0
  647. psychopy/app/Resources/dark/filecsv16.png +0 -0
  648. psychopy/app/Resources/dark/filecsv16@2x.png +0 -0
  649. psychopy/app/Resources/dark/fileimage16.png +0 -0
  650. psychopy/app/Resources/dark/fileimage16@2x.png +0 -0
  651. psychopy/app/Resources/dark/fileunknown16.png +0 -0
  652. psychopy/app/Resources/dark/fileunknown16@2x.png +0 -0
  653. psychopy/app/Resources/fonts/OpenSans-Bold.ttf +0 -0
  654. psychopy/app/Resources/fonts/OpenSans-BoldItalic.ttf +0 -0
  655. psychopy/app/Resources/fonts/OpenSans-ExtraBold.ttf +0 -0
  656. psychopy/app/Resources/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  657. psychopy/app/Resources/fonts/OpenSans-Italic.ttf +0 -0
  658. psychopy/app/Resources/fonts/OpenSans-Light.ttf +0 -0
  659. psychopy/app/Resources/fonts/OpenSans-LightItalic.ttf +0 -0
  660. psychopy/app/Resources/fonts/OpenSans-Regular.ttf +0 -0
  661. psychopy/app/Resources/fonts/OpenSans-SemiBold.ttf +0 -0
  662. psychopy/app/Resources/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  663. psychopy/app/Resources/light/filecsv16.png +0 -0
  664. psychopy/app/Resources/light/filecsv16@2x.png +0 -0
  665. psychopy/app/Resources/light/fileimage16.png +0 -0
  666. psychopy/app/Resources/light/fileimage16@2x.png +0 -0
  667. psychopy/app/Resources/light/fileunknown16.png +0 -0
  668. psychopy/app/Resources/light/fileunknown16@2x.png +0 -0
  669. psychopy/app/Resources/psychopySplash.png +0 -0
  670. psychopy/app/Resources/psychopySplash@2x.png +0 -0
  671. psychopy/app/builder/builder.py.orig +0 -3932
  672. psychopy/app/builder/dialogs/__init__.py.orig +0 -1679
  673. psychopy/app/builder/dialogs/paramCtrls.py.orig +0 -713
  674. psychopy/app/colorpicker/__init__.py.orig +0 -411
  675. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.mo +0 -0
  676. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.po +0 -6127
  677. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.mo +0 -0
  678. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.po +0 -7366
  679. psychopy/core.py.orig +0 -169
  680. psychopy/demos/builder/.DS_Store +0 -0
  681. psychopy/demos/builder/Design Templates/randomisedBlocks/html/index.html +0 -23
  682. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks-legacy-browsers.js +0 -423
  683. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks.js +0 -427
  684. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/chooseBlock.xlsx +0 -0
  685. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/facesBlock.xlsx +0 -0
  686. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/housesBlock.xlsx +0 -0
  687. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face01.jpg +0 -0
  688. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face02.jpg +0 -0
  689. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face03.jpg +0 -0
  690. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house01.jpg +0 -0
  691. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house02.jpg +0 -0
  692. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house03.jpg +0 -0
  693. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.py +0 -330
  694. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py +0 -330
  695. psychopy/demos/builder/Experiments/.DS_Store +0 -0
  696. psychopy/demos/builder/Experiments/dragAndDrop/archived_conditions.xlsx +0 -0
  697. psychopy/demos/builder/Experiments/dragAndDrop/draw grid stim.py +0 -61
  698. psychopy/demos/builder/Experiments/dragAndDrop/shapeMaker.psyexp +0 -91
  699. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_1.png +0 -0
  700. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_10.png +0 -0
  701. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_2.png +0 -0
  702. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_3.png +0 -0
  703. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_4.png +0 -0
  704. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_5.png +0 -0
  705. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_6.png +0 -0
  706. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_7.png +0 -0
  707. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_8.png +0 -0
  708. psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_9.png +0 -0
  709. psychopy/demos/builder/Experiments/dragAndDrop/updated_conditions.xlsx +0 -0
  710. psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xsd +0 -120
  711. psychopy/demos/builder/Tools/.DS_Store +0 -0
  712. psychopy/demos/builder/Tools/gammaCalibration/.DS_Store +0 -0
  713. psychopy/demos/builder/Tools/gammaCalibration/data/.DS_Store +0 -0
  714. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.csv +0 -38
  715. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.log +0 -3418
  716. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.psydat +0 -0
  717. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.csv +0 -2
  718. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.log +0 -15
  719. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.psydat +0 -0
  720. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.psyexp +0 -323
  721. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.py +0 -562
  722. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual_lastrun.py +0 -562
  723. psychopy/demos/builder/Tools/gammaCalibration/questStairs.xlsx +0 -0
  724. psychopy/demos/builder/Tools/gammaCalibration/resources/low_contrast.png +0 -0
  725. psychopy/demos/builder/Tools/gammaCalibration/resources/make_2nd_order_tex.py +0 -59
  726. psychopy/demos/builder/Tools/gammaCalibration/resources/second_order_tex.png +0 -0
  727. psychopy/demos/coder/.DS_Store +0 -0
  728. psychopy/demos/coder/experiment control/info_gamma.pickle +0 -0
  729. psychopy/demos/coder/iohub/.iohpid +0 -1
  730. psychopy/demos/coder/iohub/eyetracking/.iohpid +0 -1
  731. psychopy/demos/coder/iohub/wintab/.DS_Store +0 -0
  732. psychopy/demos/coder/stimuli/.DS_Store +0 -0
  733. psychopy/demos/coder/stimuli/radialGratingContracting.py +0 -29
  734. psychopy/experiment/_experiment.py.orig +0 -1032
  735. psychopy/experiment/components/.DS_Store +0 -0
  736. psychopy/experiment/components/_base.py.orig +0 -823
  737. psychopy/experiment/components/form/.DS_Store +0 -0
  738. psychopy/experiment/components/microphone/__init__.py.orig +0 -490
  739. psychopy/experiment/components/settings/__init__.py.orig +0 -1337
  740. psychopy/experiment/components/textbox/__init__.py.orig +0 -310
  741. psychopy/experiment/components/webcam/.DS_Store +0 -0
  742. psychopy/experiment/components/webcam/light/.DS_Store +0 -0
  743. psychopy/experiment/loops.py.orig +0 -829
  744. psychopy/experiment/params.py.orig +0 -408
  745. psychopy/experiment/routine.py.orig +0 -503
  746. psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator.png +0 -0
  747. psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator@2x.png +0 -0
  748. psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator.png +0 -0
  749. psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator@2x.png +0 -0
  750. psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator.png +0 -0
  751. psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator@2x.png +0 -0
  752. psychopy/hardware/.DS_Store +0 -0
  753. psychopy/hardware/brainproducts.py.orig +0 -680
  754. psychopy/hardware/iolab.py.orig +0 -238
  755. psychopy/hardware/serialport.py +0 -51
  756. psychopy/iohub/datastore/__init__.py.orig +0 -443
  757. psychopy/iohub/datastore/util.py.orig +0 -692
  758. psychopy/iohub/devices/mouse/darwin.py.orig +0 -427
  759. psychopy/iohub/devices/mouse/linux2.py.orig +0 -198
  760. psychopy/preferences/.DS_Store +0 -0
  761. psychopy/projects/pavlovia.py.orig +0 -1295
  762. psychopy/tests/.DS_Store +0 -0
  763. psychopy/tests/data/.DS_Store +0 -0
  764. psychopy/tests/data/TestCircle_fill_local.png +0 -0
  765. psychopy/tests/data/__test.png +0 -0
  766. psychopy/tests/data/aperture1_normHexbackground_local.png +0 -0
  767. psychopy/tests/data/aperture1_norm_local.png +0 -0
  768. psychopy/tests/data/aperture2_normHexbackground_local.png +0 -0
  769. psychopy/tests/data/beatandrcos_height_local.png +0 -0
  770. psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
  771. psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
  772. psychopy/tests/data/beatandrcos_norm_local.png +0 -0
  773. psychopy/tests/data/beatandrcos_stencil_local.png +0 -0
  774. psychopy/tests/data/blend_add_height_local.png +0 -0
  775. psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
  776. psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
  777. psychopy/tests/data/blend_add_normNoShade_local.png +0 -0
  778. psychopy/tests/data/blend_add_norm_local.png +0 -0
  779. psychopy/tests/data/blend_add_stencil_local.png +0 -0
  780. psychopy/tests/data/bufferimg_gabor_height_local.png +0 -0
  781. psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
  782. psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
  783. psychopy/tests/data/bufferimg_gabor_normNoShade_local.png +0 -0
  784. psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
  785. psychopy/tests/data/bufferimg_gabor_stencil_local.png +0 -0
  786. psychopy/tests/data/circleHex_height_local.png +0 -0
  787. psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
  788. psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
  789. psychopy/tests/data/circleHex_normNoShade_local.png +0 -0
  790. psychopy/tests/data/circleHex_norm_local.png +0 -0
  791. psychopy/tests/data/circleHex_stencil_local.png +0 -0
  792. psychopy/tests/data/color_comparison_local.png +0 -0
  793. psychopy/tests/data/corrFullRandom_local.csv +0 -16
  794. psychopy/tests/data/corrFullRandom_local.tsv +0 -6
  795. psychopy/tests/data/correctScript/.DS_Store +0 -0
  796. psychopy/tests/data/dots_height_local.png +0 -0
  797. psychopy/tests/data/dots_normAddBlend_local.png +0 -0
  798. psychopy/tests/data/dots_normHexbackground_local.png +0 -0
  799. psychopy/tests/data/dots_normNoShade_local.png +0 -0
  800. psychopy/tests/data/dots_norm_local.png +0 -0
  801. psychopy/tests/data/dots_stencil_local.png +0 -0
  802. psychopy/tests/data/elarray1_height_local.png +0 -0
  803. psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
  804. psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
  805. psychopy/tests/data/elarray1_norm_local.png +0 -0
  806. psychopy/tests/data/elarray1_stencil_local.png +0 -0
  807. psychopy/tests/data/envelopeandrcos_height_local.png +0 -0
  808. psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
  809. psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
  810. psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
  811. psychopy/tests/data/envelopeandrcos_stencil_local.png +0 -0
  812. psychopy/tests/data/envelopepowerandrcos_height_local.png +0 -0
  813. psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
  814. psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
  815. psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
  816. psychopy/tests/data/envelopepowerandrcos_stencil_local.png +0 -0
  817. psychopy/tests/data/gabor1_height_local.png +0 -0
  818. psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
  819. psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
  820. psychopy/tests/data/gabor1_normNoShade_local.png +0 -0
  821. psychopy/tests/data/gabor1_norm_local.png +0 -0
  822. psychopy/tests/data/gabor1_stencil_local.png +0 -0
  823. psychopy/tests/data/greyscale_normHexbackground_local.png +0 -0
  824. psychopy/tests/data/imageAndGauss_height_local.png +0 -0
  825. psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
  826. psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
  827. psychopy/tests/data/imageAndGauss_normNoShade_local.png +0 -0
  828. psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
  829. psychopy/tests/data/imageAndGauss_stencil_local.png +0 -0
  830. psychopy/tests/data/movFrame1_stencil_local.png +0 -0
  831. psychopy/tests/data/noiseAndRcos_height_local.png +0 -0
  832. psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
  833. psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
  834. psychopy/tests/data/noiseAndRcos_normNoShade_local.png +0 -0
  835. psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
  836. psychopy/tests/data/noiseAndRcos_stencil_local.png +0 -0
  837. psychopy/tests/data/noiseFiltersAndRcos_height_local.png +0 -0
  838. psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
  839. psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
  840. psychopy/tests/data/noiseFiltersAndRcos_normNoShade_local.png +0 -0
  841. psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
  842. psychopy/tests/data/noiseFiltersAndRcos_stencil_local.png +0 -0
  843. psychopy/tests/data/numpyImage_height_local.png +0 -0
  844. psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
  845. psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
  846. psychopy/tests/data/numpyImage_normNoShade_local.png +0 -0
  847. psychopy/tests/data/numpyImage_norm_local.png +0 -0
  848. psychopy/tests/data/numpyImage_stencil_local.png +0 -0
  849. psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
  850. psychopy/tests/data/shape2_1_normHexbackground_local.png +0 -0
  851. psychopy/tests/data/shape2_1_normNoShade_local.png +0 -0
  852. psychopy/tests/data/shape2_1_norm_local.png +0 -0
  853. psychopy/tests/data/shape2_1_stencil_local.png +0 -0
  854. psychopy/tests/data/testLoopsBlocks.psyexp_local.py +0 -328
  855. psychopy/tests/data/text1_height_local.png +0 -0
  856. psychopy/tests/data/text1_normAddBlend_local.png +0 -0
  857. psychopy/tests/data/text1_normHexbackground_local.png +0 -0
  858. psychopy/tests/data/text1_norm_local.png +0 -0
  859. psychopy/tests/data/text1_stencil_local.png +0 -0
  860. psychopy/tests/data/text2_height.png +0 -0
  861. psychopy/tests/data/text2_normAddBlend.png +0 -0
  862. psychopy/tests/data/text2_normHexbackground.png +0 -0
  863. psychopy/tests/data/text2_stencil.png +0 -0
  864. psychopy/tests/data/wedge1_height_local.png +0 -0
  865. psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
  866. psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
  867. psychopy/tests/data/wedge1_normNoShade_local.png +0 -0
  868. psychopy/tests/data/wedge1_norm_local.png +0 -0
  869. psychopy/tests/data/wedge1_stencil_local.png +0 -0
  870. psychopy/tests/test_app/.DS_Store +0 -0
  871. psychopy/tests/test_app/test_builder/.DS_Store +0 -0
  872. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.csv +0 -9
  873. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.log +0 -177
  874. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.psydat +0 -0
  875. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.xlsx +0 -0
  876. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.csv +0 -9
  877. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.log +0 -168
  878. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.psydat +0 -0
  879. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.xlsx +0 -0
  880. psychopy/tests/test_data/.DS_Store +0 -0
  881. psychopy/tests/test_hardware/test_CRS_BitsSharp.py +0 -67
  882. psychopy/tests/test_hardware/test_CRS_BitsSharp.py.orig +0 -68
  883. psychopy/tests/test_hardware/test_CRS_bitsShaders.py +0 -110
  884. psychopy/tests/test_visual/test_image.py.orig +0 -219
  885. psychopy/visual/basevisual.py.orig +0 -1723
  886. psychopy/visual/form.py.orig +0 -1181
  887. psychopy/visual/text.py.orig +0 -752
  888. psychopy/visual/textbox2/textbox2.py.orig +0 -1315
  889. psychopy/visual/windowwarp.py.orig +0 -463
  890. /psychopy/{app/cortex.log → alerts/alertsCatalogue/3600.yaml} +0 -0
  891. /psychopy/{app/Resources → assets}/fonts/Arvo-Bold.ttf +0 -0
  892. /psychopy/{app/Resources → assets}/fonts/Arvo-BoldItalic.ttf +0 -0
  893. /psychopy/{app/Resources → assets}/fonts/Arvo-Italic.ttf +0 -0
  894. /psychopy/{app/Resources → assets}/fonts/Arvo-Regular.ttf +0 -0
  895. /psychopy/{app/Resources → assets}/fonts/DejaVuSerif.ttf +0 -0
  896. /psychopy/{app/Resources → assets}/fonts/IndieFlower-Regular.ttf +0 -0
  897. /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  898. /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-VariableFont_wght.ttf +0 -0
  899. /psychopy/demos/builder/Experiments/{GoNoGo → goNoGo}/readme.md +0 -0
  900. /psychopy/{demos/builder/Tools/gammaCalibration/readme.md → tests/test_plugins/__init__.py} +0 -0
  901. {psychopy-2024.2.4.dist-info → psychopy-2025.1.0.dist-info}/WHEEL +0 -0
  902. {psychopy-2024.2.4.dist-info → psychopy-2025.1.0.dist-info}/entry_points.txt +0 -0
  903. {psychopy-2024.2.4.dist-info → psychopy-2025.1.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,243 +1,418 @@
1
- <PsychoPy2experiment encoding="utf-8" version="3.0.1">
1
+ <?xml version="1.0" ?>
2
+ <PsychoPy2experiment encoding="utf-8" version="2025.1.0">
2
3
  <Settings>
3
- <Param name="Completed URL" updates="None" val="" valType="str" />
4
- <Param name="Data filename" updates="None" val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" />
5
- <Param name="Enable Escape" updates="None" val="True" valType="bool" />
6
- <Param name="Experiment info" updates="None" val="{'participant':'', 'session':'01'}" valType="code" />
7
- <Param name="Force stereo" updates="None" val="True" valType="bool" />
8
- <Param name="Full-screen window" updates="None" val="True" valType="bool" />
9
- <Param name="HTML path" updates="None" val="html" valType="str" />
10
- <Param name="Incomplete URL" updates="None" val="" valType="str" />
11
- <Param name="JS libs" updates="None" val="packaged" valType="str" />
12
- <Param name="Monitor" updates="None" val="testMonitor" valType="str" />
13
- <Param name="Save csv file" updates="None" val="False" valType="bool" />
14
- <Param name="Save excel file" updates="None" val="True" valType="bool" />
15
- <Param name="Save log file" updates="None" val="True" valType="bool" />
16
- <Param name="Save psydat file" updates="None" val="True" valType="bool" />
17
- <Param name="Save wide csv file" updates="None" val="True" valType="bool" />
18
- <Param name="Saved data folder" updates="None" val="" valType="code" />
19
- <Param name="Screen" updates="None" val="1" valType="num" />
20
- <Param name="Show info dlg" updates="None" val="True" valType="bool" />
21
- <Param name="Show mouse" updates="None" val="False" valType="bool" />
22
- <Param name="Units" updates="None" val="norm" valType="str" />
23
- <Param name="Use version" updates="None" val="" valType="str" />
24
- <Param name="Window size (pixels)" updates="None" val="[2560, 1440]" valType="code" />
25
- <Param name="blendMode" updates="None" val="avg" valType="str" />
26
- <Param name="color" updates="None" val="black" valType="str" />
27
- <Param name="colorSpace" updates="None" val="rgb" valType="str" />
28
- <Param name="expName" updates="None" val="stroop" valType="str" />
29
- <Param name="exportHTML" updates="None" val="on Sync" valType="str" />
30
- <Param name="logging level" updates="None" val="warning" valType="code" />
31
- <Param val="0" valType="code" updates="constant" name="runMode" /></Settings>
4
+ <Param val="ptb" valType="str" updates="None" name="Audio lib"/>
5
+ <Param val="" valType="str" updates="None" name="Completed URL"/>
6
+ <Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
7
+ <Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
8
+ <Param val="True" valType="bool" updates="None" name="Enable Escape"/>
9
+ <Param val="Thank you for your patience." valType="str" updates="None" name="End Message"/>
10
+ <Param val="{'participant':'', 'session':'01'}" valType="code" updates="None" name="Experiment info"/>
11
+ <Param val="True" valType="bool" updates="None" name="Force stereo"/>
12
+ <Param val="True" valType="bool" updates="None" name="Full-screen window"/>
13
+ <Param val="html" valType="str" updates="None" name="HTML path"/>
14
+ <Param val="" valType="str" updates="None" name="Incomplete URL"/>
15
+ <Param val="packaged" valType="str" updates="None" name="JS libs"/>
16
+ <Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
17
+ <Param val="[]" valType="list" updates="None" name="Resources"/>
18
+ <Param val="False" valType="bool" updates="None" name="Save csv file"/>
19
+ <Param val="True" valType="bool" updates="None" name="Save excel file"/>
20
+ <Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
21
+ <Param val="True" valType="bool" updates="None" name="Save log file"/>
22
+ <Param val="True" valType="bool" updates="None" name="Save psydat file"/>
23
+ <Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
24
+ <Param val="" valType="code" updates="None" name="Saved data folder"/>
25
+ <Param val="1" valType="num" updates="None" name="Screen"/>
26
+ <Param val="True" valType="bool" updates="None" name="Show info dlg"/>
27
+ <Param val="False" valType="bool" updates="None" name="Show mouse"/>
28
+ <Param val="norm" valType="str" updates="None" name="Units"/>
29
+ <Param val="" valType="str" updates="None" name="Use version"/>
30
+ <Param val="[2560, 1440]" valType="code" updates="None" name="Window size (pixels)"/>
31
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
32
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
33
+ <Param val="avg" valType="str" updates="None" name="blendMode"/>
34
+ <Param val="float" valType="str" updates="None" name="clockFormat"/>
35
+ <Param val="{'thisRow.t': 'priority.CRITICAL', 'expName': 'priority.LOW'}" valType="dict" updates="None" name="colPriority"/>
36
+ <Param val="black" valType="str" updates="None" name="color"/>
37
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
38
+ <Param val="warning" valType="code" updates="None" name="consoleLoggingLevel"/>
39
+ <Param val="default" valType="str" updates="None" name="ecSampleRate"/>
40
+ <Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
41
+ <Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
42
+ <Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
43
+ <Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
44
+ <Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
45
+ <Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
46
+ <Param val="1000" valType="num" updates="None" name="elSampleRate"/>
47
+ <Param val="False" valType="bool" updates="None" name="elSimMode"/>
48
+ <Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
49
+ <Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
50
+ <Param val="stroop" valType="str" updates="None" name="expName"/>
51
+ <Param val="" valType="str" updates="None" name="expVersion"/>
52
+ <Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
53
+ <Param val="None" valType="str" updates="None" name="eyetracker"/>
54
+ <Param val="" valType="code" updates="None" name="frameRate"/>
55
+ <Param val="Attempting to measure frame rate of screen, please wait..." valType="str" updates="None" name="frameRateMsg"/>
56
+ <Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
57
+ <Param val="4242" valType="num" updates="None" name="gpPort"/>
58
+ <Param val="PsychToolbox" valType="str" updates="None" name="keyboardBackend"/>
59
+ <Param val="warning" valType="code" updates="None" name="logging level"/>
60
+ <Param val="True" valType="bool" updates="None" name="measureFrameRate"/>
61
+ <Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
62
+ <Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
63
+ <Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
64
+ <Param val="neon.local" valType="str" updates="None" name="plCompanionAddress"/>
65
+ <Param val="8080" valType="num" updates="None" name="plCompanionPort"/>
66
+ <Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
67
+ <Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
68
+ <Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
69
+ <Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
70
+ <Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
71
+ <Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
72
+ <Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
73
+ <Param val="0" valType="code" updates="constant" name="runMode"/>
74
+ <Param val="False" valType="bool" updates="None" name="rush"/>
75
+ <Param val="time" valType="str" updates="None" name="sortColumns"/>
76
+ <Param val="" valType="str" updates="None" name="tbLicenseFile"/>
77
+ <Param val="" valType="str" updates="None" name="tbModel"/>
78
+ <Param val="60" valType="num" updates="None" name="tbSampleRate"/>
79
+ <Param val="" valType="str" updates="None" name="tbSerialNo"/>
80
+ <Param val="pyglet" valType="str" updates="None" name="winBackend"/>
81
+ </Settings>
32
82
  <Routines>
33
83
  <Routine name="trial">
34
- <TextComponent name="word">
35
- <Param name="color" updates="set every repeat" val="$letterColor" valType="str" />
36
- <Param name="colorSpace" updates="constant" val="rgb" valType="str" />
37
- <Param name="durationEstim" updates="None" val="" valType="code" />
38
- <Param name="flip" updates="constant" val="" valType="str" />
39
- <Param name="font" updates="constant" val="Arial" valType="str" />
40
- <Param name="languageStyle" updates="None" val="LTR" valType="str" />
41
- <Param name="letterHeight" updates="constant" val="0.2" valType="code" />
42
- <Param name="name" updates="constant" val="word" valType="code" />
43
- <Param name="opacity" updates="constant" val="1" valType="code" />
44
- <Param name="ori" updates="constant" val="0" valType="code" />
45
- <Param name="pos" updates="constant" val="[0, 0]" valType="code" />
46
- <Param name="startEstim" updates="None" val="" valType="code" />
47
- <Param name="startType" updates="None" val="time (s)" valType="str" />
48
- <Param name="startVal" updates="None" val="0.5" valType="code" />
49
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
50
- <Param name="stopVal" updates="constant" val="" valType="code" />
51
- <Param name="text" updates="set every repeat" val="$text" valType="str" />
52
- <Param name="units" updates="None" val="from exp settings" valType="str" />
53
- <Param name="wrapWidth" updates="constant" val="" valType="code" />
84
+ <RoutineSettingsComponent name="trial" plugin="None">
85
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
86
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
87
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
88
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
89
+ <Param val="" valType="str" updates="constant" name="desc"/>
90
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
91
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
92
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
93
+ <Param val="trial" valType="code" updates="None" name="name"/>
94
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
95
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
96
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
97
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
98
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
99
+ </RoutineSettingsComponent>
100
+ <TextComponent name="word" plugin="None">
101
+ <Param val="$letterColor" valType="str" updates="set every repeat" name="color"/>
102
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
103
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
104
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
105
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
106
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
107
+ <Param val="" valType="str" updates="constant" name="flip"/>
108
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
109
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
110
+ <Param val="0.2" valType="code" updates="constant" name="letterHeight"/>
111
+ <Param val="word" valType="code" updates="constant" name="name"/>
112
+ <Param val="1" valType="code" updates="constant" name="opacity"/>
113
+ <Param val="0" valType="code" updates="constant" name="ori"/>
114
+ <Param val="[0, 0]" valType="list" updates="constant" name="pos"/>
115
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
116
+ <Param val="" valType="code" updates="None" name="startEstim"/>
117
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
118
+ <Param val="0.5" valType="code" updates="None" name="startVal"/>
119
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
120
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
121
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
122
+ <Param val="$text" valType="str" updates="set every repeat" name="text"/>
123
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
124
+ <Param val="" valType="code" updates="None" name="validator"/>
125
+ <Param val="" valType="code" updates="constant" name="wrapWidth"/>
54
126
  </TextComponent>
55
- <KeyboardComponent name="resp">
56
- <Param name="allowedKeys" updates="constant" val="'left', 'down', 'right'" valType="code" />
57
- <Param name="correctAns" updates="constant" val="$corrAns" valType="str" />
58
- <Param name="discard previous" updates="constant" val="True" valType="bool" />
59
- <Param name="durationEstim" updates="None" val="" valType="code" />
60
- <Param name="forceEndRoutine" updates="constant" val="True" valType="bool" />
61
- <Param name="name" updates="None" val="resp" valType="code" />
62
- <Param name="startEstim" updates="None" val="" valType="code" />
63
- <Param name="startType" updates="None" val="time (s)" valType="str" />
64
- <Param name="startVal" updates="None" val="0.5" valType="code" />
65
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
66
- <Param name="stopVal" updates="constant" val="" valType="code" />
67
- <Param name="store" updates="constant" val="last key" valType="str" />
68
- <Param name="storeCorrect" updates="constant" val="True" valType="bool" />
69
- <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool" />
127
+ <KeyboardComponent name="resp" plugin="None">
128
+ <Param val="'left', 'down', 'right'" valType="list" updates="constant" name="allowedKeys"/>
129
+ <Param val="$corrAns" valType="str" updates="constant" name="correctAns"/>
130
+ <Param val="" valType="str" updates="None" name="deviceLabel"/>
131
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
132
+ <Param val="True" valType="bool" updates="constant" name="discard previous"/>
133
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
134
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
135
+ <Param val="resp" valType="code" updates="None" name="name"/>
136
+ <Param val="press" valType="str" updates="constant" name="registerOn"/>
137
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
138
+ <Param val="" valType="code" updates="None" name="startEstim"/>
139
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
140
+ <Param val="0.5" valType="code" updates="None" name="startVal"/>
141
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
142
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
143
+ <Param val="last key" valType="str" updates="constant" name="store"/>
144
+ <Param val="True" valType="bool" updates="constant" name="storeCorrect"/>
145
+ <Param val="True" valType="bool" updates="constant" name="syncScreenRefresh"/>
70
146
  </KeyboardComponent>
71
147
  </Routine>
72
148
  <Routine name="instruct">
73
- <TextComponent name="instrText">
74
- <Param name="color" updates="constant" val="$[1, 1, 1]" valType="str" />
75
- <Param name="colorSpace" updates="constant" val="rgb" valType="str" />
76
- <Param name="durationEstim" updates="None" val="" valType="code" />
77
- <Param name="flip" updates="constant" val="" valType="str" />
78
- <Param name="font" updates="constant" val="Arial" valType="str" />
79
- <Param name="languageStyle" updates="None" val="LTR" valType="str" />
80
- <Param name="letterHeight" updates="constant" val="0.1" valType="code" />
81
- <Param name="name" updates="constant" val="instrText" valType="code" />
82
- <Param name="opacity" updates="constant" val="1" valType="code" />
83
- <Param name="ori" updates="constant" val="0" valType="code" />
84
- <Param name="pos" updates="constant" val="[0, 0]" valType="code" />
85
- <Param name="startEstim" updates="None" val="" valType="code" />
86
- <Param name="startType" updates="None" val="time (s)" valType="str" />
87
- <Param name="startVal" updates="None" val="0" valType="code" />
88
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
89
- <Param name="stopVal" updates="constant" val="" valType="code" />
90
- <Param name="text" updates="constant" val="OK. Ready for the real thing?&amp;#10;&amp;#10;Remember, ignore the word itself; press:&amp;#10;Left for red LETTERS&amp;#10;Down for green LETTERS&amp;#10;Right for blue LETTERS&amp;#10;(Esc will quit)&amp;#10;&amp;#10;Press any key to continue" valType="str" />
91
- <Param name="units" updates="None" val="from exp settings" valType="str" />
92
- <Param name="wrapWidth" updates="constant" val="" valType="code" />
149
+ <RoutineSettingsComponent name="instruct" plugin="None">
150
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
151
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
152
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
153
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
154
+ <Param val="" valType="str" updates="constant" name="desc"/>
155
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
156
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
157
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
158
+ <Param val="instruct" valType="code" updates="None" name="name"/>
159
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
160
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
161
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
162
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
163
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
164
+ </RoutineSettingsComponent>
165
+ <TextComponent name="instrText" plugin="None">
166
+ <Param val="$[1, 1, 1]" valType="str" updates="constant" name="color"/>
167
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
168
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
169
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
170
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
171
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
172
+ <Param val="" valType="str" updates="constant" name="flip"/>
173
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
174
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
175
+ <Param val="0.1" valType="code" updates="constant" name="letterHeight"/>
176
+ <Param val="instrText" valType="code" updates="constant" name="name"/>
177
+ <Param val="1" valType="code" updates="constant" name="opacity"/>
178
+ <Param val="0" valType="code" updates="constant" name="ori"/>
179
+ <Param val="[0, 0]" valType="list" updates="constant" name="pos"/>
180
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
181
+ <Param val="" valType="code" updates="None" name="startEstim"/>
182
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
183
+ <Param val="0" valType="code" updates="None" name="startVal"/>
184
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
185
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
186
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
187
+ <Param val="OK. Ready for the real thing?&amp;#10;&amp;#10;Remember, ignore the word itself; press:&amp;#10;Left for red LETTERS&amp;#10;Down for green LETTERS&amp;#10;Right for blue LETTERS&amp;#10;(Esc will quit)&amp;#10;&amp;#10;Press any key to continue" valType="str" updates="constant" name="text"/>
188
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
189
+ <Param val="" valType="code" updates="None" name="validator"/>
190
+ <Param val="" valType="code" updates="constant" name="wrapWidth"/>
93
191
  </TextComponent>
94
- <KeyboardComponent name="ready">
95
- <Param name="allowedKeys" updates="constant" val="" valType="code" />
96
- <Param name="correctAns" updates="constant" val="thisTrial.corrAns" valType="str" />
97
- <Param name="discard previous" updates="constant" val="True" valType="bool" />
98
- <Param name="durationEstim" updates="None" val="" valType="code" />
99
- <Param name="forceEndRoutine" updates="constant" val="True" valType="bool" />
100
- <Param name="name" updates="None" val="ready" valType="code" />
101
- <Param name="startEstim" updates="None" val="" valType="code" />
102
- <Param name="startType" updates="None" val="time (s)" valType="str" />
103
- <Param name="startVal" updates="None" val="0" valType="code" />
104
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
105
- <Param name="stopVal" updates="constant" val="" valType="code" />
106
- <Param name="store" updates="constant" val="nothing" valType="str" />
107
- <Param name="storeCorrect" updates="constant" val="False" valType="bool" />
108
- <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool" />
192
+ <KeyboardComponent name="ready" plugin="None">
193
+ <Param val="" valType="list" updates="constant" name="allowedKeys"/>
194
+ <Param val="thisTrial.corrAns" valType="str" updates="constant" name="correctAns"/>
195
+ <Param val="" valType="str" updates="None" name="deviceLabel"/>
196
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
197
+ <Param val="True" valType="bool" updates="constant" name="discard previous"/>
198
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
199
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
200
+ <Param val="ready" valType="code" updates="None" name="name"/>
201
+ <Param val="press" valType="str" updates="constant" name="registerOn"/>
202
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
203
+ <Param val="" valType="code" updates="None" name="startEstim"/>
204
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
205
+ <Param val="0" valType="code" updates="None" name="startVal"/>
206
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
207
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
208
+ <Param val="nothing" valType="str" updates="constant" name="store"/>
209
+ <Param val="False" valType="bool" updates="constant" name="storeCorrect"/>
210
+ <Param val="True" valType="bool" updates="constant" name="syncScreenRefresh"/>
109
211
  </KeyboardComponent>
110
212
  </Routine>
111
213
  <Routine name="instructPractice">
112
- <TextComponent name="instr1">
113
- <Param name="color" updates="constant" val="white" valType="str" />
114
- <Param name="colorSpace" updates="constant" val="rgb" valType="str" />
115
- <Param name="durationEstim" updates="None" val="" valType="code" />
116
- <Param name="flip" updates="constant" val="" valType="str" />
117
- <Param name="font" updates="constant" val="Arial" valType="str" />
118
- <Param name="languageStyle" updates="None" val="LTR" valType="str" />
119
- <Param name="letterHeight" updates="constant" val="0.1" valType="code" />
120
- <Param name="name" updates="constant" val="instr1" valType="code" />
121
- <Param name="opacity" updates="constant" val="1" valType="code" />
122
- <Param name="ori" updates="constant" val="0" valType="code" />
123
- <Param name="pos" updates="constant" val="[0, 0]" valType="code" />
124
- <Param name="startEstim" updates="None" val="" valType="code" />
125
- <Param name="startType" updates="None" val="time (s)" valType="str" />
126
- <Param name="startVal" updates="None" val="0.0" valType="code" />
127
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
128
- <Param name="stopVal" updates="constant" val="" valType="code" />
129
- <Param name="text" updates="constant" val="Please press;&amp;#10;Left for red LETTERS&amp;#10;Down for green LETTERS&amp;#10;Right for blue LETTERS&amp;#10;(Esc will quit)&amp;#10;&amp;#10;Let's start with a few practice trials&amp;#10;&amp;#10;Press any key to continue" valType="str" />
130
- <Param name="units" updates="None" val="from exp settings" valType="str" />
131
- <Param name="wrapWidth" updates="constant" val="" valType="code" />
214
+ <RoutineSettingsComponent name="instructPractice" plugin="None">
215
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
216
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
217
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
218
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
219
+ <Param val="" valType="str" updates="constant" name="desc"/>
220
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
221
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
222
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
223
+ <Param val="instructPractice" valType="code" updates="None" name="name"/>
224
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
225
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
226
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
227
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
228
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
229
+ </RoutineSettingsComponent>
230
+ <TextComponent name="instr1" plugin="None">
231
+ <Param val="white" valType="str" updates="constant" name="color"/>
232
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
233
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
234
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
235
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
236
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
237
+ <Param val="" valType="str" updates="constant" name="flip"/>
238
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
239
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
240
+ <Param val="0.1" valType="code" updates="constant" name="letterHeight"/>
241
+ <Param val="instr1" valType="code" updates="constant" name="name"/>
242
+ <Param val="1" valType="code" updates="constant" name="opacity"/>
243
+ <Param val="0" valType="code" updates="constant" name="ori"/>
244
+ <Param val="[0, 0]" valType="list" updates="constant" name="pos"/>
245
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
246
+ <Param val="" valType="code" updates="None" name="startEstim"/>
247
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
248
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
249
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
250
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
251
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
252
+ <Param val="Please press;&amp;#10;Left for red LETTERS&amp;#10;Down for green LETTERS&amp;#10;Right for blue LETTERS&amp;#10;(Esc will quit)&amp;#10;&amp;#10;Let's start with a few practice trials&amp;#10;&amp;#10;Press any key to continue" valType="str" updates="constant" name="text"/>
253
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
254
+ <Param val="" valType="code" updates="None" name="validator"/>
255
+ <Param val="" valType="code" updates="constant" name="wrapWidth"/>
132
256
  </TextComponent>
133
- <KeyboardComponent name="ready1">
134
- <Param name="allowedKeys" updates="constant" val="" valType="code" />
135
- <Param name="correctAns" updates="constant" val="" valType="str" />
136
- <Param name="discard previous" updates="constant" val="True" valType="bool" />
137
- <Param name="durationEstim" updates="None" val="" valType="code" />
138
- <Param name="forceEndRoutine" updates="constant" val="True" valType="bool" />
139
- <Param name="name" updates="None" val="ready1" valType="code" />
140
- <Param name="startEstim" updates="None" val="" valType="code" />
141
- <Param name="startType" updates="None" val="time (s)" valType="str" />
142
- <Param name="startVal" updates="None" val="0.0" valType="code" />
143
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
144
- <Param name="stopVal" updates="constant" val="" valType="code" />
145
- <Param name="store" updates="constant" val="nothing" valType="str" />
146
- <Param name="storeCorrect" updates="constant" val="False" valType="bool" />
147
- <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool" />
257
+ <KeyboardComponent name="ready1" plugin="None">
258
+ <Param val="" valType="list" updates="constant" name="allowedKeys"/>
259
+ <Param val="" valType="str" updates="constant" name="correctAns"/>
260
+ <Param val="" valType="str" updates="None" name="deviceLabel"/>
261
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
262
+ <Param val="True" valType="bool" updates="constant" name="discard previous"/>
263
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
264
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
265
+ <Param val="ready1" valType="code" updates="None" name="name"/>
266
+ <Param val="press" valType="str" updates="constant" name="registerOn"/>
267
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
268
+ <Param val="" valType="code" updates="None" name="startEstim"/>
269
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
270
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
271
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
272
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
273
+ <Param val="nothing" valType="str" updates="constant" name="store"/>
274
+ <Param val="False" valType="bool" updates="constant" name="storeCorrect"/>
275
+ <Param val="True" valType="bool" updates="constant" name="syncScreenRefresh"/>
148
276
  </KeyboardComponent>
149
277
  </Routine>
150
278
  <Routine name="thanks">
151
- <TextComponent name="thanksText">
152
- <Param name="color" updates="constant" val="$[1, 1, 1]" valType="str" />
153
- <Param name="colorSpace" updates="constant" val="rgb" valType="str" />
154
- <Param name="durationEstim" updates="None" val="" valType="code" />
155
- <Param name="flip" updates="constant" val="" valType="str" />
156
- <Param name="font" updates="constant" val="arial" valType="str" />
157
- <Param name="languageStyle" updates="None" val="LTR" valType="str" />
158
- <Param name="letterHeight" updates="constant" val="0.2" valType="code" />
159
- <Param name="name" updates="constant" val="thanksText" valType="code" />
160
- <Param name="opacity" updates="constant" val="1" valType="code" />
161
- <Param name="ori" updates="constant" val="0" valType="code" />
162
- <Param name="pos" updates="constant" val="[0, 0]" valType="code" />
163
- <Param name="startEstim" updates="None" val="" valType="code" />
164
- <Param name="startType" updates="None" val="time (s)" valType="str" />
165
- <Param name="startVal" updates="None" val="0.0" valType="code" />
166
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
167
- <Param name="stopVal" updates="constant" val="2.0" valType="code" />
168
- <Param name="text" updates="constant" val="This is the end of the experiment.&amp;#10;&amp;#10;Thanks!" valType="str" />
169
- <Param name="units" updates="None" val="from exp settings" valType="str" />
170
- <Param name="wrapWidth" updates="constant" val="" valType="code" />
279
+ <RoutineSettingsComponent name="thanks" plugin="None">
280
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
281
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
282
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
283
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
284
+ <Param val="" valType="str" updates="constant" name="desc"/>
285
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
286
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
287
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
288
+ <Param val="thanks" valType="code" updates="None" name="name"/>
289
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
290
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
291
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
292
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
293
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
294
+ </RoutineSettingsComponent>
295
+ <TextComponent name="thanksText" plugin="None">
296
+ <Param val="$[1, 1, 1]" valType="str" updates="constant" name="color"/>
297
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
298
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
299
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
300
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
301
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
302
+ <Param val="" valType="str" updates="constant" name="flip"/>
303
+ <Param val="arial" valType="str" updates="constant" name="font"/>
304
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
305
+ <Param val="0.2" valType="code" updates="constant" name="letterHeight"/>
306
+ <Param val="thanksText" valType="code" updates="constant" name="name"/>
307
+ <Param val="1" valType="code" updates="constant" name="opacity"/>
308
+ <Param val="0" valType="code" updates="constant" name="ori"/>
309
+ <Param val="[0, 0]" valType="list" updates="constant" name="pos"/>
310
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
311
+ <Param val="" valType="code" updates="None" name="startEstim"/>
312
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
313
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
314
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
315
+ <Param val="2.0" valType="code" updates="constant" name="stopVal"/>
316
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
317
+ <Param val="This is the end of the experiment.&amp;#10;&amp;#10;Thanks!" valType="str" updates="constant" name="text"/>
318
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
319
+ <Param val="" valType="code" updates="None" name="validator"/>
320
+ <Param val="" valType="code" updates="constant" name="wrapWidth"/>
171
321
  </TextComponent>
172
322
  </Routine>
173
323
  <Routine name="feedback">
174
- <CodeComponent name="message">
175
- <Param name="Begin Experiment" updates="constant" val="#msg variable just needs some value at start&amp;#10;msg=''" valType="extendedCode" />
176
- <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode" />
177
- <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode" />
178
- <Param name="Begin Routine" updates="constant" val="if resp.corr:#stored on last run routine&amp;#10; msg=&quot;Correct! RT=%.3f&quot; %(resp.rt)&amp;#10;else:&amp;#10; msg=&quot;Oops! That was wrong&quot;" valType="extendedCode" />
179
- <Param name="Code Type" updates="None" val="Py" valType="str" />
180
- <Param name="Each Frame" updates="constant" val="" valType="extendedCode" />
181
- <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode" />
182
- <Param name="End Experiment" updates="constant" val="" valType="extendedCode" />
183
- <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode" />
184
- <Param name="End JS Routine" updates="constant" val="" valType="extendedCode" />
185
- <Param name="End Routine" updates="constant" val="" valType="extendedCode" />
186
- <Param name="name" updates="None" val="message" valType="code" />
324
+ <RoutineSettingsComponent name="feedback" plugin="None">
325
+ <Param val="none" valType="str" updates="None" name="backgroundFit"/>
326
+ <Param val="" valType="str" updates="None" name="backgroundImg"/>
327
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
328
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
329
+ <Param val="" valType="str" updates="constant" name="desc"/>
330
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
331
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
332
+ <Param val="False" valType="code" updates="None" name="forceNonSlip"/>
333
+ <Param val="feedback" valType="code" updates="None" name="name"/>
334
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
335
+ <Param val="" valType="code" updates="constant" name="skipIf"/>
336
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
337
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
338
+ <Param val="False" valType="bool" updates="None" name="useWindowParams"/>
339
+ </RoutineSettingsComponent>
340
+ <CodeComponent name="message" plugin="None">
341
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
342
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
343
+ <Param val="#msg variable just needs some value at start&amp;#10;msg=''" valType="extendedCode" updates="constant" name="Begin Experiment"/>
344
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
345
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
346
+ <Param val="if resp.corr:#stored on last run routine&amp;#10; msg=&quot;Correct! RT=%.3f&quot; %(resp.rt)&amp;#10;else:&amp;#10; msg=&quot;Oops! That was wrong&quot;" valType="extendedCode" updates="constant" name="Begin Routine"/>
347
+ <Param val="Py" valType="str" updates="None" name="Code Type"/>
348
+ <Param val="" valType="extendedCode" updates="constant" name="Each Frame"/>
349
+ <Param val="" valType="extendedCode" updates="constant" name="Each JS Frame"/>
350
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
351
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
352
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
353
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
354
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
355
+ <Param val="message" valType="code" updates="None" name="name"/>
187
356
  </CodeComponent>
188
- <TextComponent name="feedback_2">
189
- <Param name="color" updates="constant" val="$[1,1,1]" valType="str" />
190
- <Param name="colorSpace" updates="constant" val="rgb" valType="str" />
191
- <Param name="durationEstim" updates="None" val="" valType="code" />
192
- <Param name="flip" updates="constant" val="" valType="str" />
193
- <Param name="font" updates="constant" val="Arial" valType="str" />
194
- <Param name="languageStyle" updates="None" val="LTR" valType="str" />
195
- <Param name="letterHeight" updates="constant" val="0.1" valType="code" />
196
- <Param name="name" updates="constant" val="feedback_2" valType="code" />
197
- <Param name="opacity" updates="constant" val="1" valType="code" />
198
- <Param name="ori" updates="constant" val="0" valType="code" />
199
- <Param name="pos" updates="constant" val="[0, 0]" valType="code" />
200
- <Param name="startEstim" updates="None" val="" valType="code" />
201
- <Param name="startType" updates="None" val="time (s)" valType="str" />
202
- <Param name="startVal" updates="None" val="0.0" valType="code" />
203
- <Param name="stopType" updates="None" val="duration (s)" valType="str" />
204
- <Param name="stopVal" updates="constant" val="1.0" valType="code" />
205
- <Param name="text" updates="set every repeat" val="$msg" valType="str" />
206
- <Param name="units" updates="None" val="from exp settings" valType="str" />
207
- <Param name="wrapWidth" updates="constant" val="" valType="code" />
357
+ <TextComponent name="feedback_2" plugin="None">
358
+ <Param val="$[1,1,1]" valType="str" updates="constant" name="color"/>
359
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
360
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
361
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
362
+ <Param val="False" valType="code" updates="constant" name="draggable"/>
363
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
364
+ <Param val="" valType="str" updates="constant" name="flip"/>
365
+ <Param val="Arial" valType="str" updates="constant" name="font"/>
366
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
367
+ <Param val="0.1" valType="code" updates="constant" name="letterHeight"/>
368
+ <Param val="feedback_2" valType="code" updates="constant" name="name"/>
369
+ <Param val="1" valType="code" updates="constant" name="opacity"/>
370
+ <Param val="0" valType="code" updates="constant" name="ori"/>
371
+ <Param val="[0, 0]" valType="list" updates="constant" name="pos"/>
372
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
373
+ <Param val="" valType="code" updates="None" name="startEstim"/>
374
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
375
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
376
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
377
+ <Param val="1.0" valType="code" updates="constant" name="stopVal"/>
378
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
379
+ <Param val="$msg" valType="str" updates="set every repeat" name="text"/>
380
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
381
+ <Param val="" valType="code" updates="None" name="validator"/>
382
+ <Param val="" valType="code" updates="constant" name="wrapWidth"/>
208
383
  </TextComponent>
209
384
  </Routine>
210
385
  </Routines>
211
386
  <Flow>
212
- <Routine name="instructPractice" />
387
+ <Routine name="instructPractice"/>
213
388
  <LoopInitiator loopType="TrialHandler" name="practice">
214
- <Param name="Selected rows" updates="None" val="" valType="str" />
215
- <Param name="conditions" updates="None" val="[{u'text': u'red', u'congruent': u'cong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'red', u'congruent': u'cong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'red', u'congruent': u'incong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'red', u'congruent': u'incong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'green', u'congruent': u'incong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'green', u'congruent': u'cong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'green', u'congruent': u'cong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'green', u'congruent': u'incong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'blue', u'congruent': u'incong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'blue', u'congruent': u'incong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'blue', u'congruent': u'cong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'blue', u'congruent': u'cong', u'corrAns': u'right', u'letterColor': u'blue'}]" valType="str" />
216
- <Param name="conditionsFile" updates="None" val="trialTypes.xlsx" valType="str" />
217
- <Param name="endPoints" updates="None" val="[0, 1]" valType="num" />
218
- <Param name="isTrials" updates="None" val="True" valType="bool" />
219
- <Param name="loopType" updates="None" val="random" valType="str" />
220
- <Param name="nReps" updates="None" val="1" valType="num" />
221
- <Param name="name" updates="None" val="practice" valType="code" />
222
- <Param name="random seed" updates="None" val="" valType="code" />
389
+ <Param name="Selected rows" updates="None" val="" valType="str"/>
390
+ <Param name="conditions" updates="None" val="[{'text': 'red', 'congruent': 'cong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'red', 'congruent': 'cong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'red', 'congruent': 'incong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'red', 'congruent': 'incong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'green', 'congruent': 'incong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'green', 'congruent': 'cong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'green', 'congruent': 'cong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'green', 'congruent': 'incong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'blue', 'congruent': 'incong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'blue', 'congruent': 'incong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'blue', 'congruent': 'cong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'blue', 'congruent': 'cong', 'corrAns': 'right', 'letterColor': 'blue'}]" valType="str"/>
391
+ <Param name="conditionsFile" updates="None" val="trialTypes.xlsx" valType="str"/>
392
+ <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
393
+ <Param name="isTrials" updates="None" val="True" valType="bool"/>
394
+ <Param name="loopType" updates="None" val="random" valType="str"/>
395
+ <Param name="nReps" updates="None" val="1" valType="num"/>
396
+ <Param name="name" updates="None" val="practice" valType="code"/>
397
+ <Param name="random seed" updates="None" val="" valType="code"/>
223
398
  </LoopInitiator>
224
- <Routine name="trial" />
225
- <Routine name="feedback" />
226
- <LoopTerminator name="practice" />
227
- <Routine name="instruct" />
399
+ <Routine name="trial"/>
400
+ <Routine name="feedback"/>
401
+ <LoopTerminator name="practice"/>
402
+ <Routine name="instruct"/>
228
403
  <LoopInitiator loopType="TrialHandler" name="trials">
229
- <Param name="Selected rows" updates="None" val="" valType="str" />
230
- <Param name="conditions" updates="None" val="[{u'text': u'red', u'congruent': u'cong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'red', u'congruent': u'cong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'red', u'congruent': u'incong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'red', u'congruent': u'incong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'green', u'congruent': u'incong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'green', u'congruent': u'cong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'green', u'congruent': u'cong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'green', u'congruent': u'incong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'blue', u'congruent': u'incong', u'corrAns': u'left', u'letterColor': u'red'}, {u'text': u'blue', u'congruent': u'incong', u'corrAns': u'down', u'letterColor': u'green'}, {u'text': u'blue', u'congruent': u'cong', u'corrAns': u'right', u'letterColor': u'blue'}, {u'text': u'blue', u'congruent': u'cong', u'corrAns': u'right', u'letterColor': u'blue'}]" valType="str" />
231
- <Param name="conditionsFile" updates="None" val="trialTypes.xlsx" valType="str" />
232
- <Param name="endPoints" updates="None" val="[1, 2]" valType="num" />
233
- <Param name="isTrials" updates="None" val="True" valType="bool" />
234
- <Param name="loopType" updates="None" val="random" valType="str" />
235
- <Param name="nReps" updates="None" val="5" valType="num" />
236
- <Param name="name" updates="None" val="trials" valType="code" />
237
- <Param name="random seed" updates="None" val="" valType="code" />
404
+ <Param name="Selected rows" updates="None" val="" valType="str"/>
405
+ <Param name="conditions" updates="None" val="[{'text': 'red', 'congruent': 'cong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'red', 'congruent': 'cong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'red', 'congruent': 'incong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'red', 'congruent': 'incong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'green', 'congruent': 'incong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'green', 'congruent': 'cong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'green', 'congruent': 'cong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'green', 'congruent': 'incong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'blue', 'congruent': 'incong', 'corrAns': 'left', 'letterColor': 'red'}, {'text': 'blue', 'congruent': 'incong', 'corrAns': 'down', 'letterColor': 'green'}, {'text': 'blue', 'congruent': 'cong', 'corrAns': 'right', 'letterColor': 'blue'}, {'text': 'blue', 'congruent': 'cong', 'corrAns': 'right', 'letterColor': 'blue'}]" valType="str"/>
406
+ <Param name="conditionsFile" updates="None" val="trialTypes.xlsx" valType="str"/>
407
+ <Param name="endPoints" updates="None" val="[1, 2]" valType="num"/>
408
+ <Param name="isTrials" updates="None" val="True" valType="bool"/>
409
+ <Param name="loopType" updates="None" val="random" valType="str"/>
410
+ <Param name="nReps" updates="None" val="5" valType="num"/>
411
+ <Param name="name" updates="None" val="trials" valType="code"/>
412
+ <Param name="random seed" updates="None" val="" valType="code"/>
238
413
  </LoopInitiator>
239
- <Routine name="trial" />
240
- <LoopTerminator name="trials" />
241
- <Routine name="thanks" />
414
+ <Routine name="trial"/>
415
+ <LoopTerminator name="trials"/>
416
+ <Routine name="thanks"/>
242
417
  </Flow>
243
- </PsychoPy2experiment>
418
+ </PsychoPy2experiment>