psychopy 2024.2.1__py3-none-any.whl → 2024.2.4__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 (276) hide show
  1. psychopy/.DS_Store +0 -0
  2. psychopy/GIT_SHA +1 -1
  3. psychopy/VERSION +1 -1
  4. psychopy/__init__.py +10 -1
  5. psychopy/__init__.py.orig +65 -0
  6. psychopy/app/{locale/ar_001/.DS_Store → .DS_Store} +0 -0
  7. psychopy/app/Resources/.DS_Store +0 -0
  8. psychopy/app/_psychopyApp.py +11 -3
  9. psychopy/app/appData.spec +1 -1
  10. psychopy/app/builder/builder.py +1 -1
  11. psychopy/app/builder/builder.py.orig +3932 -0
  12. psychopy/app/builder/dialogs/__init__.py.orig +1679 -0
  13. psychopy/app/builder/dialogs/paramCtrls.py +1 -1
  14. psychopy/app/builder/dialogs/paramCtrls.py.orig +713 -0
  15. psychopy/app/colorpicker/__init__.py.orig +411 -0
  16. psychopy/app/cortex.log +0 -0
  17. psychopy/app/jobs.py +8 -1
  18. psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +2452 -1731
  19. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.mo +0 -0
  20. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN.po +6127 -0
  21. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.mo +0 -0
  22. psychopy/app/locale/zh_CN/LC_MESSAGE/zh_CN_allFlagged.po +7366 -0
  23. psychopy/app/plugin_manager/dialog.py +9 -7
  24. psychopy/app/ribbon.py +2 -1
  25. psychopy/app/runner/runner.py +7 -5
  26. psychopy/clock.py +8 -4
  27. psychopy/core.py.orig +169 -0
  28. psychopy/demos/builder/Design Templates/randomisedBlocks/html/index.html +23 -0
  29. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks-legacy-browsers.js +423 -0
  30. psychopy/demos/builder/Design Templates/randomisedBlocks/html/randomisedBlocks.js +427 -0
  31. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/chooseBlock.xlsx +0 -0
  32. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/facesBlock.xlsx +0 -0
  33. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/housesBlock.xlsx +0 -0
  34. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face01.jpg +0 -0
  35. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face02.jpg +0 -0
  36. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/face03.jpg +0 -0
  37. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house01.jpg +0 -0
  38. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house02.jpg +0 -0
  39. psychopy/demos/builder/Design Templates/randomisedBlocks/html/resources/stims/house03.jpg +0 -0
  40. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.py +330 -0
  41. psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py +330 -0
  42. psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xml +298 -0
  43. psychopy/demos/builder/Feature Demos/eyetracking/eyetracking.xsd +120 -0
  44. psychopy/demos/builder/Tools/.DS_Store +0 -0
  45. psychopy/demos/builder/Tools/gammaCalibration/.DS_Store +0 -0
  46. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.csv +38 -0
  47. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.log +3418 -0
  48. psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.psydat +0 -0
  49. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.csv +2 -0
  50. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.log +15 -0
  51. psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.psydat +0 -0
  52. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.psyexp +323 -0
  53. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual.py +562 -0
  54. psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual_lastrun.py +562 -0
  55. psychopy/demos/builder/Tools/gammaCalibration/questStairs.xlsx +0 -0
  56. psychopy/demos/builder/Tools/gammaCalibration/readme.md +0 -0
  57. psychopy/demos/builder/Tools/gammaCalibration/resources/low_contrast.png +0 -0
  58. psychopy/demos/builder/Tools/gammaCalibration/resources/make_2nd_order_tex.py +59 -0
  59. psychopy/demos/builder/Tools/gammaCalibration/resources/second_order_tex.png +0 -0
  60. psychopy/demos/coder/.DS_Store +0 -0
  61. psychopy/demos/coder/experiment control/info_gamma.pickle +0 -0
  62. psychopy/demos/coder/iohub/.iohpid +1 -0
  63. psychopy/demos/coder/iohub/eyetracking/.iohpid +1 -0
  64. psychopy/demos/coder/iohub/wintab/.DS_Store +0 -0
  65. psychopy/demos/coder/stimuli/.DS_Store +0 -0
  66. psychopy/demos/coder/stimuli/radialGratingContracting.py +29 -0
  67. psychopy/experiment/_experiment.py.orig +1032 -0
  68. psychopy/experiment/components/.DS_Store +0 -0
  69. psychopy/experiment/components/_base.py +13 -4
  70. psychopy/experiment/components/_base.py.orig +823 -0
  71. psychopy/experiment/components/form/.DS_Store +0 -0
  72. psychopy/experiment/components/microphone/__init__.py +10 -1
  73. psychopy/experiment/components/microphone/__init__.py.orig +490 -0
  74. psychopy/experiment/components/polygon/__init__.py +21 -22
  75. psychopy/experiment/components/settings/__init__.py +13 -14
  76. psychopy/experiment/components/settings/__init__.py.orig +1337 -0
  77. psychopy/experiment/components/textbox/__init__.py.orig +310 -0
  78. psychopy/experiment/components/webcam/.DS_Store +0 -0
  79. psychopy/experiment/components/webcam/light/.DS_Store +0 -0
  80. psychopy/experiment/flow.py +10 -8
  81. psychopy/experiment/loops.py.orig +829 -0
  82. psychopy/experiment/params.py +8 -3
  83. psychopy/experiment/params.py.orig +408 -0
  84. psychopy/experiment/routine.py.orig +503 -0
  85. psychopy/experiment/routines/_base.py +15 -6
  86. psychopy/experiment/routines/counterbalance/__init__.py +1 -0
  87. psychopy/gui/qtgui.py +14 -7
  88. psychopy/gui/util.py +10 -14
  89. psychopy/gui/wxgui.py +10 -4
  90. psychopy/hardware/.DS_Store +0 -0
  91. psychopy/hardware/brainproducts.py.orig +680 -0
  92. psychopy/hardware/iolab.py.orig +238 -0
  93. psychopy/hardware/manager.py +1 -1
  94. psychopy/hardware/photodiode.py +59 -27
  95. psychopy/hardware/serialport.py +51 -0
  96. psychopy/hardware/speaker.py +4 -4
  97. psychopy/iohub/datastore/__init__.py.orig +443 -0
  98. psychopy/iohub/datastore/util.py.orig +692 -0
  99. psychopy/iohub/devices/mouse/darwin.py.orig +427 -0
  100. psychopy/iohub/devices/mouse/linux2.py.orig +198 -0
  101. psychopy/preferences/.DS_Store +0 -0
  102. psychopy/projects/pavlovia.py +10 -3
  103. psychopy/projects/pavlovia.py.orig +1295 -0
  104. psychopy/sound/backend_ptb.py +22 -5
  105. psychopy/sound/transcribe.py +24 -4
  106. psychopy/tests/.DS_Store +0 -0
  107. psychopy/tests/data/.DS_Store +0 -0
  108. psychopy/tests/data/TestCircle_fill_local.png +0 -0
  109. psychopy/tests/data/__test.png +0 -0
  110. psychopy/tests/data/aperture1_normHexbackground_local.png +0 -0
  111. psychopy/tests/data/aperture1_norm_local.png +0 -0
  112. psychopy/tests/data/aperture2_normHexbackground_local.png +0 -0
  113. psychopy/tests/data/beatandrcos_height_local.png +0 -0
  114. psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
  115. psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
  116. psychopy/tests/data/beatandrcos_norm_local.png +0 -0
  117. psychopy/tests/data/beatandrcos_stencil_local.png +0 -0
  118. psychopy/tests/data/blend_add_height_local.png +0 -0
  119. psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
  120. psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
  121. psychopy/tests/data/blend_add_normNoShade_local.png +0 -0
  122. psychopy/tests/data/blend_add_norm_local.png +0 -0
  123. psychopy/tests/data/blend_add_stencil_local.png +0 -0
  124. psychopy/tests/data/bufferimg_gabor_height_local.png +0 -0
  125. psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
  126. psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
  127. psychopy/tests/data/bufferimg_gabor_normNoShade_local.png +0 -0
  128. psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
  129. psychopy/tests/data/bufferimg_gabor_stencil_local.png +0 -0
  130. psychopy/tests/data/circleHex_height_local.png +0 -0
  131. psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
  132. psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
  133. psychopy/tests/data/circleHex_normNoShade_local.png +0 -0
  134. psychopy/tests/data/circleHex_norm_local.png +0 -0
  135. psychopy/tests/data/circleHex_stencil_local.png +0 -0
  136. psychopy/tests/data/color_comparison_local.png +0 -0
  137. psychopy/tests/data/corrFullRandom_local.csv +16 -0
  138. psychopy/tests/data/corrFullRandom_local.tsv +6 -0
  139. psychopy/tests/data/correctScript/.DS_Store +0 -0
  140. psychopy/tests/data/dots_height_local.png +0 -0
  141. psychopy/tests/data/dots_normAddBlend_local.png +0 -0
  142. psychopy/tests/data/dots_normHexbackground_local.png +0 -0
  143. psychopy/tests/data/dots_normNoShade_local.png +0 -0
  144. psychopy/tests/data/dots_norm_local.png +0 -0
  145. psychopy/tests/data/dots_stencil_local.png +0 -0
  146. psychopy/tests/data/elarray1_height_local.png +0 -0
  147. psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
  148. psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
  149. psychopy/tests/data/elarray1_norm_local.png +0 -0
  150. psychopy/tests/data/elarray1_stencil_local.png +0 -0
  151. psychopy/tests/data/envelopeandrcos_height_local.png +0 -0
  152. psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
  153. psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
  154. psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
  155. psychopy/tests/data/envelopeandrcos_stencil_local.png +0 -0
  156. psychopy/tests/data/envelopepowerandrcos_height_local.png +0 -0
  157. psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
  158. psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
  159. psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
  160. psychopy/tests/data/envelopepowerandrcos_stencil_local.png +0 -0
  161. psychopy/tests/data/gabor1_height_local.png +0 -0
  162. psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
  163. psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
  164. psychopy/tests/data/gabor1_normNoShade_local.png +0 -0
  165. psychopy/tests/data/gabor1_norm_local.png +0 -0
  166. psychopy/tests/data/gabor1_stencil_local.png +0 -0
  167. psychopy/tests/data/greyscale_normHexbackground_local.png +0 -0
  168. psychopy/tests/data/imageAndGauss_height_local.png +0 -0
  169. psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
  170. psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
  171. psychopy/tests/data/imageAndGauss_normNoShade_local.png +0 -0
  172. psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
  173. psychopy/tests/data/imageAndGauss_stencil_local.png +0 -0
  174. psychopy/tests/data/movFrame1_stencil_local.png +0 -0
  175. psychopy/tests/data/noiseAndRcos_height_local.png +0 -0
  176. psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
  177. psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
  178. psychopy/tests/data/noiseAndRcos_normNoShade_local.png +0 -0
  179. psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
  180. psychopy/tests/data/noiseAndRcos_stencil_local.png +0 -0
  181. psychopy/tests/data/noiseFiltersAndRcos_height_local.png +0 -0
  182. psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
  183. psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
  184. psychopy/tests/data/noiseFiltersAndRcos_normNoShade_local.png +0 -0
  185. psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
  186. psychopy/tests/data/noiseFiltersAndRcos_stencil_local.png +0 -0
  187. psychopy/tests/data/numpyImage_height_local.png +0 -0
  188. psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
  189. psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
  190. psychopy/tests/data/numpyImage_normNoShade_local.png +0 -0
  191. psychopy/tests/data/numpyImage_norm_local.png +0 -0
  192. psychopy/tests/data/numpyImage_stencil_local.png +0 -0
  193. psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
  194. psychopy/tests/data/shape2_1_normHexbackground_local.png +0 -0
  195. psychopy/tests/data/shape2_1_normNoShade_local.png +0 -0
  196. psychopy/tests/data/shape2_1_norm_local.png +0 -0
  197. psychopy/tests/data/shape2_1_stencil_local.png +0 -0
  198. psychopy/tests/data/testLoopsBlocks.psyexp_local.py +328 -0
  199. psychopy/tests/data/text1_height_local.png +0 -0
  200. psychopy/tests/data/text1_normAddBlend_local.png +0 -0
  201. psychopy/tests/data/text1_normHexbackground_local.png +0 -0
  202. psychopy/tests/data/text1_norm_local.png +0 -0
  203. psychopy/tests/data/text1_stencil_local.png +0 -0
  204. psychopy/tests/data/text2_height.png +0 -0
  205. psychopy/tests/data/text2_normAddBlend.png +0 -0
  206. psychopy/tests/data/text2_normHexbackground.png +0 -0
  207. psychopy/tests/data/text2_stencil.png +0 -0
  208. psychopy/tests/data/wedge1_height_local.png +0 -0
  209. psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
  210. psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
  211. psychopy/tests/data/wedge1_normNoShade_local.png +0 -0
  212. psychopy/tests/data/wedge1_norm_local.png +0 -0
  213. psychopy/tests/data/wedge1_stencil_local.png +0 -0
  214. psychopy/tests/test_app/.DS_Store +0 -0
  215. psychopy/tests/test_app/test_builder/.DS_Store +0 -0
  216. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.csv +9 -0
  217. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.log +177 -0
  218. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.psydat +0 -0
  219. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.xlsx +0 -0
  220. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.csv +9 -0
  221. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.log +168 -0
  222. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.psydat +0 -0
  223. psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.xlsx +0 -0
  224. psychopy/tests/test_data/.DS_Store +0 -0
  225. psychopy/tests/test_hardware/test_CRS_BitsSharp.py.orig +68 -0
  226. psychopy/tests/test_tools/test_arraytools.py +112 -0
  227. psychopy/tests/test_visual/test_image.py.orig +219 -0
  228. psychopy/tools/arraytools.py +47 -0
  229. psychopy/tools/versionchooser.py +1 -1
  230. psychopy/visual/backends/pygletbackend.py +26 -8
  231. psychopy/visual/basevisual.py.orig +1723 -0
  232. psychopy/visual/form.py.orig +1181 -0
  233. psychopy/visual/text.py.orig +752 -0
  234. psychopy/visual/textbox2/textbox2.py.orig +1315 -0
  235. psychopy/visual/window.py +13 -5
  236. psychopy/visual/windowwarp.py.orig +463 -0
  237. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/METADATA +9 -9
  238. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/RECORD +244 -78
  239. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/WHEEL +1 -1
  240. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/entry_points.txt +2 -0
  241. psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
  242. psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
  243. psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
  244. psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
  245. psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
  246. psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
  247. psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
  248. psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
  249. psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
  250. psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
  251. psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
  252. psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
  253. psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
  254. psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
  255. psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
  256. psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
  257. psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
  258. psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
  259. psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
  260. psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
  261. psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
  262. psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
  263. psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
  264. psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
  265. psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
  266. psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
  267. psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
  268. psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
  269. psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
  270. psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
  271. psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
  272. psychopy-2024.2.1.dist-info/licenses/AUTHORS.md +0 -138
  273. /psychopy/{app/locale/ar_001/LC_MESSAGE → demos/builder}/.DS_Store +0 -0
  274. /psychopy/{app/locale/es_ES/LC_MESSAGE → demos/builder/Experiments}/.DS_Store +0 -0
  275. /psychopy/{visual → demos/builder/Tools/gammaCalibration/data}/.DS_Store +0 -0
  276. {psychopy-2024.2.1.dist-info → psychopy-2024.2.4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,2 @@
1
+ trials.startVal,trials.startValSd,trials.label,trials.thisIndex,trials.thisRepN,trials.thisN,trials.direction,trials.stepSize,trials.stepType,trials.intensity,participant,session,date,expName,psychopyVersion,frameRate,
2
+ 0.8,0.2,start low,0,1,0,start,4,lin,0.8,,,,,,,
@@ -0,0 +1,15 @@
1
+ 3.0784 WARNING /Users/lpzjwp/.psychopy3/fonts/Consolas.truetype doesn't have valid font family name
2
+ 3.1771 WARNING /Users/lpzjwp/.psychopy3/fonts/Consolas.truetype doesn't have valid font family name
3
+ 8.8718 EXP Created window1 = Window(allowGUI=False, allowStencil=False, autoLog=True, backendConf=UNKNOWN, bitsMode=UNKNOWN, blendMode='avg', bpc=(8, 8, 8), color=array([0, 0, 0]), colorSpace='rgb', depthBits=8, fullscr=<method-wrapper '__getattribute__' of attributeSetter object at 0x7fde5b101c70>, gamma=None, gammaErrorPolicy='raise', lms=UNKNOWN, monitor=<psychopy.monitors.calibTools.Monitor object at 0x7fde5b1bbc40>, multiSample=False, name='window1', numSamples=2, pos=[360.0, 225.0], screen=0, size=array([2880, 1800]), stencilBits=0, stereo=False, units='height', useFBO=True, useRetina=True, viewOri=0.0, viewPos=None, viewScale=None, waitBlanking=True, winType='pyglet')
4
+ 8.8719 EXP window1: mouseVisible = True
5
+ 8.8719 EXP window1: Attempting to measure frame rate of screen (0) ...
6
+ 8.8719 EXP window1: recordFrameIntervals = False
7
+ 9.0383 EXP window1: recordFrameIntervals = True
8
+ 9.2223 EXP Screen (0) actual frame rate measured at 60.12Hz
9
+ 9.2223 EXP window1: recordFrameIntervals = False
10
+ 12.0401 EXP Created luminance_000 = GratingStim(__class__=<class 'psychopy.visual.grating.GratingStim'>, anchor='center', autoDraw=False, autoLog=True, blendmode='avg', color=array([1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=0.0, interpolate=True, mask=None, maskParams=None, name='luminance_000', opacity=1.0, ori=1.0, phase=array([0., 0.]), pos=array([0., 0.]), rgbPedestal=array([0., 0., 0.]), sf=array([5., 5.]), size=array([0.5, 0.5]), tex='resources/low_contrast.png', texRes=256.0, units='height', win=Window(...))
11
+ 12.0444 EXP Created second_ord_025 = GratingStim(__class__=<class 'psychopy.visual.grating.GratingStim'>, anchor='center', autoDraw=False, autoLog=True, blendmode='avg', color=array([1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=-1.0, interpolate=True, mask=None, maskParams=None, name='second_ord_025', opacity=1.0, ori=1.0, phase=array([0.25, 0.25]), pos=array([0., 0.]), rgbPedestal=array([0., 0., 0.]), sf=array([5., 5.]), size=array([0.5, 0.5]), tex='resources/second_order_tex.png', texRes=256.0, units='height', win=Window(...))
12
+ 12.0475 EXP Created luminance_050 = GratingStim(__class__=<class 'psychopy.visual.grating.GratingStim'>, anchor='center', autoDraw=False, autoLog=True, blendmode='avg', color=array([1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=-2.0, interpolate=True, mask=None, maskParams=None, name='luminance_050', opacity=1.0, ori=1.0, phase=array([0.5, 0.5]), pos=array([0., 0.]), rgbPedestal=array([0., 0., 0.]), sf=array([5., 5.]), size=array([0.5, 0.5]), tex='resources/low_contrast.png', texRes=256.0, units='height', win=Window(...))
13
+ 12.0513 EXP Created second_ord_075 = GratingStim(__class__=<class 'psychopy.visual.grating.GratingStim'>, anchor='center', autoDraw=False, autoLog=True, blendmode='avg', color=array([1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=-3.0, interpolate=True, mask=None, maskParams=None, name='second_ord_075', opacity=1.0, ori=1.0, phase=array([0.75, 0.75]), pos=array([0., 0.]), rgbPedestal=array([0., 0., 0.]), sf=array([5., 5.]), size=array([0.5, 0.5]), tex='resources/second_order_tex.png', texRes=256.0, units='height', win=Window(...))
14
+ 12.0644 EXP Imported questStairs.xlsx as conditions, 2 conditions, 3 params
15
+ 12.2086 EXP window1: mouseVisible = True
@@ -0,0 +1,323 @@
1
+ <?xml version="1.0" ?>
2
+ <PsychoPy2experiment encoding="utf-8" version="2022.2.0dev3">
3
+ <Settings>
4
+ <Param val="use prefs" valType="str" updates="None" name="Audio latency priority"/>
5
+ <Param val="use prefs" valType="str" updates="None" name="Audio lib"/>
6
+ <Param val="" valType="str" updates="None" name="Completed URL"/>
7
+ <Param val="auto" valType="str" updates="None" name="Data file delimiter"/>
8
+ <Param val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code" updates="None" name="Data filename"/>
9
+ <Param val="True" valType="bool" updates="None" name="Enable Escape"/>
10
+ <Param val="{'participant':'', 'session':'001'}" 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="" valType="str" updates="None" name="HTML path"/>
14
+ <Param val="" valType="str" updates="None" name="Incomplete URL"/>
15
+ <Param val="testMonitor" valType="str" updates="None" name="Monitor"/>
16
+ <Param val="[]" valType="list" updates="None" name="Resources"/>
17
+ <Param val="False" valType="bool" updates="None" name="Save csv file"/>
18
+ <Param val="False" valType="bool" updates="None" name="Save excel file"/>
19
+ <Param val="False" valType="bool" updates="None" name="Save hdf5 file"/>
20
+ <Param val="True" valType="bool" updates="None" name="Save log file"/>
21
+ <Param val="True" valType="bool" updates="None" name="Save psydat file"/>
22
+ <Param val="True" valType="bool" updates="None" name="Save wide csv file"/>
23
+ <Param val="1" valType="num" updates="None" name="Screen"/>
24
+ <Param val="True" valType="bool" updates="None" name="Show info dlg"/>
25
+ <Param val="False" valType="bool" updates="None" name="Show mouse"/>
26
+ <Param val="height" valType="str" updates="None" name="Units"/>
27
+ <Param val="" valType="str" updates="None" name="Use version"/>
28
+ <Param val="[1440, 900]" valType="list" updates="None" name="Window size (pixels)"/>
29
+ <Param val="avg" valType="str" updates="None" name="blendMode"/>
30
+ <Param val="$[0,0,0]" valType="color" updates="None" name="color"/>
31
+ <Param val="rgb" valType="str" updates="None" name="colorSpace"/>
32
+ <Param val="100.1.1.1" valType="str" updates="None" name="elAddress"/>
33
+ <Param val="FILTER_LEVEL_2" valType="str" updates="None" name="elDataFiltering"/>
34
+ <Param val="FILTER_LEVEL_OFF" valType="str" updates="None" name="elLiveFiltering"/>
35
+ <Param val="EYELINK 1000 DESKTOP" valType="str" updates="None" name="elModel"/>
36
+ <Param val="ELLIPSE_FIT" valType="str" updates="None" name="elPupilAlgorithm"/>
37
+ <Param val="PUPIL_AREA" valType="str" updates="None" name="elPupilMeasure"/>
38
+ <Param val="1000" valType="num" updates="None" name="elSampleRate"/>
39
+ <Param val="False" valType="bool" updates="None" name="elSimMode"/>
40
+ <Param val="RIGHT_EYE" valType="str" updates="None" name="elTrackEyes"/>
41
+ <Param val="PUPIL_CR_TRACKING" valType="str" updates="None" name="elTrackingMode"/>
42
+ <Param val="gamma_correction_visual" valType="str" updates="None" name="expName"/>
43
+ <Param val="on Sync" valType="str" updates="None" name="exportHTML"/>
44
+ <Param val="None" valType="str" updates="None" name="eyetracker"/>
45
+ <Param val="127.0.0.1" valType="str" updates="None" name="gpAddress"/>
46
+ <Param val="4242" valType="num" updates="None" name="gpPort"/>
47
+ <Param val="ioHub" valType="str" updates="None" name="keyboardBackend"/>
48
+ <Param val="exp" valType="code" updates="None" name="logging level"/>
49
+ <Param val="MIDDLE_BUTTON" valType="list" updates="None" name="mgBlink"/>
50
+ <Param val="CONTINUOUS" valType="str" updates="None" name="mgMove"/>
51
+ <Param val="0.5" valType="num" updates="None" name="mgSaccade"/>
52
+ <Param val="0.6" valType="num" updates="None" name="plConfidenceThreshold"/>
53
+ <Param val="True" valType="bool" updates="None" name="plPupilCaptureRecordingEnabled"/>
54
+ <Param val="" valType="str" updates="None" name="plPupilCaptureRecordingLocation"/>
55
+ <Param val="127.0.0.1" valType="str" updates="None" name="plPupilRemoteAddress"/>
56
+ <Param val="50020" valType="num" updates="None" name="plPupilRemotePort"/>
57
+ <Param val="1000" valType="num" updates="None" name="plPupilRemoteTimeoutMs"/>
58
+ <Param val="False" valType="bool" updates="None" name="plPupillometryOnly"/>
59
+ <Param val="psychopy_iohub_surface" valType="str" updates="None" name="plSurfaceName"/>
60
+ <Param val="" valType="str" updates="None" name="tbLicenseFile"/>
61
+ <Param val="" valType="str" updates="None" name="tbModel"/>
62
+ <Param val="60" valType="num" updates="None" name="tbSampleRate"/>
63
+ <Param val="" valType="str" updates="None" name="tbSerialNo"/>
64
+ </Settings>
65
+ <Routines>
66
+ <Routine name="frames">
67
+ <GratingComponent name="luminance_000">
68
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
69
+ <Param val="avg" valType="str" updates="constant" name="blendmode"/>
70
+ <Param val="$[1,1,1]" valType="color" updates="constant" name="color"/>
71
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
72
+ <Param val="1.0" valType="num" updates="constant" name="contrast"/>
73
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
74
+ <Param val="0.05" valType="code" updates="None" name="durationEstim"/>
75
+ <Param val="linear" valType="str" updates="constant" name="interpolate"/>
76
+ <Param val="" valType="file" updates="constant" name="mask"/>
77
+ <Param val="luminance_000" valType="code" updates="None" name="name"/>
78
+ <Param val="1" valType="num" updates="constant" name="opacity"/>
79
+ <Param val="ori" valType="num" updates="set every repeat" name="ori"/>
80
+ <Param val="0.0" valType="num" updates="constant" name="phase"/>
81
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
82
+ <Param val="False" valType="bool" updates="None" name="saveStartStop"/>
83
+ <Param val="5" valType="num" updates="constant" name="sf"/>
84
+ <Param val="(0.5,0.5)" valType="list" updates="constant" name="size"/>
85
+ <Param val="" valType="code" updates="None" name="startEstim"/>
86
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
87
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
88
+ <Param val="duration (frames)" valType="str" updates="None" name="stopType"/>
89
+ <Param val="3" valType="code" updates="constant" name="stopVal"/>
90
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
91
+ <Param val="resources/low_contrast.png" valType="file" updates="constant" name="tex"/>
92
+ <Param val="256" valType="num" updates="constant" name="texture resolution"/>
93
+ <Param val="height" valType="str" updates="None" name="units"/>
94
+ </GratingComponent>
95
+ <GratingComponent name="second_ord_025">
96
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
97
+ <Param val="avg" valType="str" updates="constant" name="blendmode"/>
98
+ <Param val="$[1,1,1]" valType="color" updates="constant" name="color"/>
99
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
100
+ <Param val="1.0" valType="num" updates="constant" name="contrast"/>
101
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
102
+ <Param val="0.05" valType="code" updates="None" name="durationEstim"/>
103
+ <Param val="linear" valType="str" updates="constant" name="interpolate"/>
104
+ <Param val="" valType="file" updates="constant" name="mask"/>
105
+ <Param val="second_ord_025" valType="code" updates="None" name="name"/>
106
+ <Param val="1" valType="num" updates="constant" name="opacity"/>
107
+ <Param val="ori" valType="num" updates="set every repeat" name="ori"/>
108
+ <Param val="0.25" valType="num" updates="constant" name="phase"/>
109
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
110
+ <Param val="False" valType="bool" updates="None" name="saveStartStop"/>
111
+ <Param val="5" valType="num" updates="constant" name="sf"/>
112
+ <Param val="(0.5,0.5)" valType="list" updates="constant" name="size"/>
113
+ <Param val="0.05" valType="code" updates="None" name="startEstim"/>
114
+ <Param val="frame N" valType="str" updates="None" name="startType"/>
115
+ <Param val="3" valType="code" updates="None" name="startVal"/>
116
+ <Param val="duration (frames)" valType="str" updates="None" name="stopType"/>
117
+ <Param val="3" valType="code" updates="constant" name="stopVal"/>
118
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
119
+ <Param val="resources/second_order_tex.png" valType="file" updates="constant" name="tex"/>
120
+ <Param val="256" valType="num" updates="constant" name="texture resolution"/>
121
+ <Param val="height" valType="str" updates="None" name="units"/>
122
+ </GratingComponent>
123
+ <GratingComponent name="luminance_050">
124
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
125
+ <Param val="avg" valType="str" updates="constant" name="blendmode"/>
126
+ <Param val="$[1,1,1]" valType="color" updates="constant" name="color"/>
127
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
128
+ <Param val="1.0" valType="num" updates="constant" name="contrast"/>
129
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
130
+ <Param val="0.05" valType="code" updates="None" name="durationEstim"/>
131
+ <Param val="linear" valType="str" updates="constant" name="interpolate"/>
132
+ <Param val="" valType="file" updates="constant" name="mask"/>
133
+ <Param val="luminance_050" valType="code" updates="None" name="name"/>
134
+ <Param val="1" valType="num" updates="constant" name="opacity"/>
135
+ <Param val="ori" valType="num" updates="set every repeat" name="ori"/>
136
+ <Param val="0.5" valType="num" updates="constant" name="phase"/>
137
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
138
+ <Param val="False" valType="bool" updates="None" name="saveStartStop"/>
139
+ <Param val="5" valType="num" updates="constant" name="sf"/>
140
+ <Param val="(0.5,0.5)" valType="list" updates="constant" name="size"/>
141
+ <Param val="0.1" valType="code" updates="None" name="startEstim"/>
142
+ <Param val="frame N" valType="str" updates="None" name="startType"/>
143
+ <Param val="6" valType="code" updates="None" name="startVal"/>
144
+ <Param val="duration (frames)" valType="str" updates="None" name="stopType"/>
145
+ <Param val="3" valType="code" updates="constant" name="stopVal"/>
146
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
147
+ <Param val="resources/low_contrast.png" valType="file" updates="constant" name="tex"/>
148
+ <Param val="256" valType="num" updates="constant" name="texture resolution"/>
149
+ <Param val="height" valType="str" updates="None" name="units"/>
150
+ </GratingComponent>
151
+ <GratingComponent name="second_ord_075">
152
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
153
+ <Param val="avg" valType="str" updates="constant" name="blendmode"/>
154
+ <Param val="$[1,1,1]" valType="color" updates="constant" name="color"/>
155
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
156
+ <Param val="1.0" valType="num" updates="constant" name="contrast"/>
157
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
158
+ <Param val="0.05" valType="code" updates="None" name="durationEstim"/>
159
+ <Param val="linear" valType="str" updates="constant" name="interpolate"/>
160
+ <Param val="" valType="file" updates="constant" name="mask"/>
161
+ <Param val="second_ord_075" valType="code" updates="None" name="name"/>
162
+ <Param val="1" valType="num" updates="constant" name="opacity"/>
163
+ <Param val="ori" valType="num" updates="set every repeat" name="ori"/>
164
+ <Param val="0.75" valType="num" updates="constant" name="phase"/>
165
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
166
+ <Param val="False" valType="bool" updates="None" name="saveStartStop"/>
167
+ <Param val="5" valType="num" updates="constant" name="sf"/>
168
+ <Param val="(0.5,0.5)" valType="list" updates="constant" name="size"/>
169
+ <Param val="0.15" valType="code" updates="None" name="startEstim"/>
170
+ <Param val="frame N" valType="str" updates="None" name="startType"/>
171
+ <Param val="9" valType="code" updates="None" name="startVal"/>
172
+ <Param val="duration (frames)" valType="str" updates="None" name="stopType"/>
173
+ <Param val="3" valType="code" updates="constant" name="stopVal"/>
174
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
175
+ <Param val="resources/second_order_tex.png" valType="file" updates="constant" name="tex"/>
176
+ <Param val="256" valType="num" updates="constant" name="texture resolution"/>
177
+ <Param val="height" valType="str" updates="None" name="units"/>
178
+ </GratingComponent>
179
+ </Routine>
180
+ <Routine name="response">
181
+ <KeyboardComponent name="resp">
182
+ <Param val="'left','right'" valType="list" updates="constant" name="allowedKeys"/>
183
+ <Param val="right" valType="str" updates="constant" name="correctAns"/>
184
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
185
+ <Param val="False" valType="bool" updates="constant" name="discard previous"/>
186
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
187
+ <Param val="True" valType="bool" updates="constant" name="forceEndRoutine"/>
188
+ <Param val="resp" valType="code" updates="None" name="name"/>
189
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
190
+ <Param val="" valType="code" updates="None" name="startEstim"/>
191
+ <Param val="time (s)" valType="str" updates="None" name="startType"/>
192
+ <Param val="0.0" valType="code" updates="None" name="startVal"/>
193
+ <Param val="duration (s)" valType="str" updates="None" name="stopType"/>
194
+ <Param val="" valType="code" updates="constant" name="stopVal"/>
195
+ <Param val="last key" valType="str" updates="constant" name="store"/>
196
+ <Param val="True" valType="bool" updates="constant" name="storeCorrect"/>
197
+ <Param val="True" valType="bool" updates="constant" name="syncScreenRefresh"/>
198
+ </KeyboardComponent>
199
+ </Routine>
200
+ <Routine name="feedback">
201
+ <CodeComponent name="make_feedbk">
202
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
203
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
204
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Experiment"/>
205
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
206
+ <Param val="msg = `gamma = ${level}&amp;#10;resp:${resp.keys}`&amp;#10;;&amp;#10;" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
207
+ <Param val="msg = f&quot;gamma = {level} \nresp:{resp.keys}&quot;" valType="extendedCode" updates="constant" name="Begin Routine"/>
208
+ <Param val="Auto-&gt;JS" valType="str" updates="None" name="Code Type"/>
209
+ <Param val="" valType="extendedCode" updates="constant" name="Each Frame"/>
210
+ <Param val="" valType="extendedCode" updates="constant" name="Each JS Frame"/>
211
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
212
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
213
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
214
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
215
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
216
+ <Param val="make_feedbk" valType="code" updates="None" name="name"/>
217
+ </CodeComponent>
218
+ <TextboxComponent name="show_feedbk">
219
+ <Param val="center" valType="str" updates="constant" name="alignment"/>
220
+ <Param val="center" valType="str" updates="constant" name="anchor"/>
221
+ <Param val="True" valType="bool" updates="constant" name="autoLog"/>
222
+ <Param val="False" valType="bool" updates="constant" name="bold"/>
223
+ <Param val="None" valType="color" updates="constant" name="borderColor"/>
224
+ <Param val="2" valType="num" updates="constant" name="borderWidth"/>
225
+ <Param val="white" valType="color" updates="constant" name="color"/>
226
+ <Param val="rgb" valType="str" updates="constant" name="colorSpace"/>
227
+ <Param val="1" valType="num" updates="constant" name="contrast"/>
228
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
229
+ <Param val="" valType="code" updates="None" name="durationEstim"/>
230
+ <Param val="False" valType="bool" updates="constant" name="editable"/>
231
+ <Param val="None" valType="color" updates="constant" name="fillColor"/>
232
+ <Param val="False" valType="bool" updates="constant" name="flipHoriz"/>
233
+ <Param val="False" valType="bool" updates="constant" name="flipVert"/>
234
+ <Param val="Open Sans" valType="str" updates="constant" name="font"/>
235
+ <Param val="False" valType="bool" updates="constant" name="italic"/>
236
+ <Param val="LTR" valType="str" updates="None" name="languageStyle"/>
237
+ <Param val="0.05" valType="num" updates="constant" name="letterHeight"/>
238
+ <Param val="1.0" valType="num" updates="constant" name="lineSpacing"/>
239
+ <Param val="show_feedbk" valType="code" updates="None" name="name"/>
240
+ <Param val="" valType="num" updates="constant" name="opacity"/>
241
+ <Param val="0" valType="num" updates="constant" name="ori"/>
242
+ <Param val="0" valType="num" updates="constant" name="padding"/>
243
+ <Param val="(0, 0)" valType="list" updates="constant" name="pos"/>
244
+ <Param val="True" valType="bool" updates="None" name="saveStartStop"/>
245
+ <Param val="(None, None)" valType="list" updates="constant" name="size"/>
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="0.5" valType="code" updates="constant" name="stopVal"/>
251
+ <Param val="True" valType="bool" updates="None" name="syncScreenRefresh"/>
252
+ <Param val="$msg" valType="str" updates="set every repeat" name="text"/>
253
+ <Param val="from exp settings" valType="str" updates="None" name="units"/>
254
+ </TextboxComponent>
255
+ </Routine>
256
+ <Routine name="setup_trial">
257
+ <CodeComponent name="set_gamma">
258
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
259
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
260
+ <Param val="gamma = 1" valType="extendedCode" updates="constant" name="Begin Experiment"/>
261
+ <Param val="gamma = 1;&amp;#10;" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
262
+ <Param val="gamma = level;&amp;#10;trials.addOtherData(&quot;gamma&quot;, level);&amp;#10;psychoJS.window.gamma = level;&amp;#10;" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
263
+ <Param val="gamma = level # from staircase&amp;#10;trials.addOtherData('gamma', level)&amp;#10;&amp;#10;win.gamma = level" valType="extendedCode" updates="constant" name="Begin Routine"/>
264
+ <Param val="Auto-&gt;JS" valType="str" updates="None" name="Code Type"/>
265
+ <Param val="" valType="extendedCode" updates="constant" name="Each Frame"/>
266
+ <Param val="" valType="extendedCode" updates="constant" name="Each JS Frame"/>
267
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
268
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
269
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
270
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
271
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
272
+ <Param val="set_gamma" valType="code" updates="None" name="name"/>
273
+ </CodeComponent>
274
+ <CodeComponent name="rand_side">
275
+ <Param val="" valType="extendedCode" updates="constant" name="Before Experiment"/>
276
+ <Param val="" valType="extendedCode" updates="constant" name="Before JS Experiment"/>
277
+ <Param val="" valType="extendedCode" updates="constant" name="Begin Experiment"/>
278
+ <Param val="" valType="extendedCode" updates="constant" name="Begin JS Experiment"/>
279
+ <Param val="if ((Math.random() &gt; 0.5)) {&amp;#10; ori = 180;&amp;#10; high_ans = &quot;right&quot;;&amp;#10;} else {&amp;#10; ori = 0;&amp;#10; high_ans = &quot;left&quot;;&amp;#10;}&amp;#10;" valType="extendedCode" updates="constant" name="Begin JS Routine"/>
280
+ <Param val="# randomize whether &quot;high gamma&quot; is right or left&amp;#10;# &quot;high&quot; is where the grating appears to drift if&amp;#10;# the gamma is too high. Count as &quot;correct&quot; so&amp;#10;# that next level will reduce.&amp;#10;if random() &gt; 0.5:&amp;#10; ori = 180&amp;#10; high_ans = 'right'&amp;#10;else:&amp;#10; ori = 0&amp;#10; high_ans = 'left'" valType="extendedCode" updates="constant" name="Begin Routine"/>
281
+ <Param val="Auto-&gt;JS" valType="str" updates="None" name="Code Type"/>
282
+ <Param val="" valType="extendedCode" updates="constant" name="Each Frame"/>
283
+ <Param val="" valType="extendedCode" updates="constant" name="Each JS Frame"/>
284
+ <Param val="" valType="extendedCode" updates="constant" name="End Experiment"/>
285
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Experiment"/>
286
+ <Param val="" valType="extendedCode" updates="constant" name="End JS Routine"/>
287
+ <Param val="" valType="extendedCode" updates="constant" name="End Routine"/>
288
+ <Param val="False" valType="bool" updates="None" name="disabled"/>
289
+ <Param val="rand_side" valType="code" updates="None" name="name"/>
290
+ </CodeComponent>
291
+ </Routine>
292
+ </Routines>
293
+ <Flow>
294
+ <LoopInitiator loopType="MultiStairHandler" name="trials">
295
+ <Param name="conditions" updates="None" val="[{'startVal': 0.8, 'startValSD': 0.2}, {'startVal': 3, 'startValSD': 0.2}]" valType="list"/>
296
+ <Param name="conditionsFile" updates="None" val="questStairs.xlsx" valType="file"/>
297
+ <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
298
+ <Param name="isTrials" updates="None" val="True" valType="bool"/>
299
+ <Param name="loopType" updates="None" val="interleaved staircases" valType="str"/>
300
+ <Param name="nReps" updates="None" val="30" valType="num"/>
301
+ <Param name="name" updates="None" val="trials" valType="code"/>
302
+ <Param name="stairType" updates="None" val="QUEST" valType="str"/>
303
+ <Param name="switchMethod" updates="None" val="random" valType="str"/>
304
+ </LoopInitiator>
305
+ <Routine name="setup_trial"/>
306
+ <LoopInitiator loopType="TrialHandler" name="frame_cycles">
307
+ <Param name="Selected rows" updates="None" val="" valType="str"/>
308
+ <Param name="conditions" updates="None" val="None" valType="str"/>
309
+ <Param name="conditionsFile" updates="None" val="" valType="file"/>
310
+ <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
311
+ <Param name="isTrials" updates="None" val="False" valType="bool"/>
312
+ <Param name="loopType" updates="None" val="sequential" valType="str"/>
313
+ <Param name="nReps" updates="None" val="5" valType="num"/>
314
+ <Param name="name" updates="None" val="frame_cycles" valType="code"/>
315
+ <Param name="random seed" updates="None" val="" valType="code"/>
316
+ </LoopInitiator>
317
+ <Routine name="frames"/>
318
+ <LoopTerminator name="frame_cycles"/>
319
+ <Routine name="response"/>
320
+ <Routine name="feedback"/>
321
+ <LoopTerminator name="trials"/>
322
+ </Flow>
323
+ </PsychoPy2experiment>