psychopy 2024.2.5__py3-none-any.whl → 2025.1.1__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.
- psychopy/CHANGELOG.txt +4 -4
- psychopy/GIT_SHA +1 -1
- psychopy/LICENSE.txt +1 -1
- psychopy/VERSION +1 -1
- psychopy/__init__.py +10 -7
- psychopy/alerts/__init__.py +1 -1
- psychopy/alerts/_alerts.py +53 -17
- psychopy/alerts/_errorHandler.py +3 -4
- psychopy/alerts/alertsCatalogue/3210.yaml +27 -0
- psychopy/alerts/alertsCatalogue/3610.yaml +19 -0
- psychopy/alerts/alertsCatalogue/4130.yaml +19 -0
- psychopy/alerts/alertsCatalogue/alertCategories.yaml +8 -1
- psychopy/alerts/alertsCatalogue/alertmsg.py +1 -1
- psychopy/alerts/alerttools.py +0 -16
- psychopy/app/Resources/betasplash.png +0 -0
- psychopy/app/Resources/betasplash@2x.png +0 -0
- psychopy/app/Resources/classic/case.png +0 -0
- psychopy/app/Resources/classic/case@2x.png +0 -0
- psychopy/app/Resources/classic/fileaudio.png +0 -0
- psychopy/app/Resources/classic/fileaudio@2x.png +0 -0
- psychopy/app/Resources/classic/filecss.png +0 -0
- psychopy/app/Resources/classic/filecss@2x.png +0 -0
- psychopy/app/Resources/classic/filecsv.png +0 -0
- psychopy/app/Resources/classic/filecsv@2x.png +0 -0
- psychopy/app/Resources/classic/filedesign.png +0 -0
- psychopy/app/Resources/classic/filedesign@2x.png +0 -0
- psychopy/app/Resources/classic/filefont.png +0 -0
- psychopy/app/Resources/classic/filefont@2x.png +0 -0
- psychopy/app/Resources/classic/filegit.png +0 -0
- psychopy/app/Resources/classic/filegit@2x.png +0 -0
- psychopy/app/Resources/classic/filehtml.png +0 -0
- psychopy/app/Resources/classic/filehtml@2x.png +0 -0
- psychopy/app/Resources/classic/fileimage.png +0 -0
- psychopy/app/Resources/classic/fileimage@2x.png +0 -0
- psychopy/app/Resources/classic/fileinfo.png +0 -0
- psychopy/app/Resources/classic/fileinfo@2x.png +0 -0
- psychopy/app/Resources/classic/filejs.png +0 -0
- psychopy/app/Resources/classic/filejs@2x.png +0 -0
- psychopy/app/Resources/classic/filejson.png +0 -0
- psychopy/app/Resources/classic/filejson@2x.png +0 -0
- psychopy/app/Resources/classic/filepkg.png +0 -0
- psychopy/app/Resources/classic/filepkg@2x.png +0 -0
- psychopy/app/Resources/classic/filepsyexp.png +0 -0
- psychopy/app/Resources/classic/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/classic/filepy.png +0 -0
- psychopy/app/Resources/classic/filepy@2x.png +0 -0
- psychopy/app/Resources/classic/filetxt.png +0 -0
- psychopy/app/Resources/classic/filetxt@2x.png +0 -0
- psychopy/app/Resources/classic/fileunknown.png +0 -0
- psychopy/app/Resources/classic/fileunknown@2x.png +0 -0
- psychopy/app/Resources/classic/filevideo.png +0 -0
- psychopy/app/Resources/classic/filevideo@2x.png +0 -0
- psychopy/app/Resources/classic/find.png +0 -0
- psychopy/app/Resources/classic/find@2x.png +0 -0
- psychopy/app/Resources/classic/loop.png +0 -0
- psychopy/app/Resources/classic/loop@2x.png +0 -0
- psychopy/app/Resources/classic/regex.png +0 -0
- psychopy/app/Resources/classic/regex@2x.png +0 -0
- psychopy/app/Resources/dark/case.png +0 -0
- psychopy/app/Resources/dark/case@2x.png +0 -0
- psychopy/app/Resources/dark/fileaudio.png +0 -0
- psychopy/app/Resources/dark/fileaudio@2x.png +0 -0
- psychopy/app/Resources/dark/filecss.png +0 -0
- psychopy/app/Resources/dark/filecss@2x.png +0 -0
- psychopy/app/Resources/dark/filecsv.png +0 -0
- psychopy/app/Resources/dark/filecsv@2x.png +0 -0
- psychopy/app/Resources/dark/filedesign.png +0 -0
- psychopy/app/Resources/dark/filedesign@2x.png +0 -0
- psychopy/app/Resources/dark/filefont.png +0 -0
- psychopy/app/Resources/dark/filefont@2x.png +0 -0
- psychopy/app/Resources/dark/filegit.png +0 -0
- psychopy/app/Resources/dark/filegit@2x.png +0 -0
- psychopy/app/Resources/dark/filehtml.png +0 -0
- psychopy/app/Resources/dark/filehtml@2x.png +0 -0
- psychopy/app/Resources/dark/fileimage.png +0 -0
- psychopy/app/Resources/dark/fileimage@2x.png +0 -0
- psychopy/app/Resources/dark/fileinfo.png +0 -0
- psychopy/app/Resources/dark/fileinfo@2x.png +0 -0
- psychopy/app/Resources/dark/filejs.png +0 -0
- psychopy/app/Resources/dark/filejs@2x.png +0 -0
- psychopy/app/Resources/dark/filejson.png +0 -0
- psychopy/app/Resources/dark/filejson@2x.png +0 -0
- psychopy/app/Resources/dark/filepkg.png +0 -0
- psychopy/app/Resources/dark/filepkg@2x.png +0 -0
- psychopy/app/Resources/dark/filepsyexp.png +0 -0
- psychopy/app/Resources/dark/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/dark/filepy.png +0 -0
- psychopy/app/Resources/dark/filepy@2x.png +0 -0
- psychopy/app/Resources/dark/filetxt.png +0 -0
- psychopy/app/Resources/dark/filetxt@2x.png +0 -0
- psychopy/app/Resources/dark/fileunknown.png +0 -0
- psychopy/app/Resources/dark/fileunknown@2x.png +0 -0
- psychopy/app/Resources/dark/filevideo.png +0 -0
- psychopy/app/Resources/dark/filevideo@2x.png +0 -0
- psychopy/app/Resources/dark/find.png +0 -0
- psychopy/app/Resources/dark/find@2x.png +0 -0
- psychopy/app/Resources/dark/loop.png +0 -0
- psychopy/app/Resources/dark/loop@2x.png +0 -0
- psychopy/app/Resources/dark/regex.png +0 -0
- psychopy/app/Resources/dark/regex@2x.png +0 -0
- psychopy/app/Resources/light/case.png +0 -0
- psychopy/app/Resources/light/case@2x.png +0 -0
- psychopy/app/Resources/light/fileaudio.png +0 -0
- psychopy/app/Resources/light/fileaudio@2x.png +0 -0
- psychopy/app/Resources/light/filecss.png +0 -0
- psychopy/app/Resources/light/filecss@2x.png +0 -0
- psychopy/app/Resources/light/filecsv.png +0 -0
- psychopy/app/Resources/light/filecsv@2x.png +0 -0
- psychopy/app/Resources/light/filedesign.png +0 -0
- psychopy/app/Resources/light/filedesign@2x.png +0 -0
- psychopy/app/Resources/light/filefont.png +0 -0
- psychopy/app/Resources/light/filefont@2x.png +0 -0
- psychopy/app/Resources/light/filegit.png +0 -0
- psychopy/app/Resources/light/filegit@2x.png +0 -0
- psychopy/app/Resources/light/filehtml.png +0 -0
- psychopy/app/Resources/light/filehtml@2x.png +0 -0
- psychopy/app/Resources/light/fileimage.png +0 -0
- psychopy/app/Resources/light/fileimage@2x.png +0 -0
- psychopy/app/Resources/light/fileinfo.png +0 -0
- psychopy/app/Resources/light/fileinfo@2x.png +0 -0
- psychopy/app/Resources/light/filejs.png +0 -0
- psychopy/app/Resources/light/filejs@2x.png +0 -0
- psychopy/app/Resources/light/filejson.png +0 -0
- psychopy/app/Resources/light/filejson@2x.png +0 -0
- psychopy/app/Resources/light/filepkg.png +0 -0
- psychopy/app/Resources/light/filepkg@2x.png +0 -0
- psychopy/app/Resources/light/filepsyexp.png +0 -0
- psychopy/app/Resources/light/filepsyexp@2x.png +0 -0
- psychopy/app/Resources/light/filepy.png +0 -0
- psychopy/app/Resources/light/filepy@2x.png +0 -0
- psychopy/app/Resources/light/filetxt.png +0 -0
- psychopy/app/Resources/light/filetxt@2x.png +0 -0
- psychopy/app/Resources/light/fileunknown.png +0 -0
- psychopy/app/Resources/light/fileunknown@2x.png +0 -0
- psychopy/app/Resources/light/filevideo.png +0 -0
- psychopy/app/Resources/light/filevideo@2x.png +0 -0
- psychopy/app/Resources/light/find.png +0 -0
- psychopy/app/Resources/light/find@2x.png +0 -0
- psychopy/app/Resources/light/loop.png +0 -0
- psychopy/app/Resources/light/loop@2x.png +0 -0
- psychopy/app/Resources/light/regex.png +0 -0
- psychopy/app/Resources/light/regex@2x.png +0 -0
- psychopy/app/Resources/routine_templates/Basic.psyexp +0 -1
- psychopy/app/Resources/routine_templates/Misc.psyexp +0 -1
- psychopy/app/Resources/routine_templates/Online.psyexp +0 -2
- psychopy/app/Resources/routine_templates/Trials.psyexp +0 -1
- psychopy/app/Resources/splash.png +0 -0
- psychopy/app/Resources/splash@2x.png +0 -0
- psychopy/app/__init__.py +49 -8
- psychopy/app/__main__.py +3 -0
- psychopy/app/_psychopyApp.py +134 -125
- psychopy/app/builder/builder.py +42 -22
- psychopy/app/builder/dialogs/__init__.py +44 -11
- psychopy/app/builder/dialogs/dlgsCode.py +1 -1
- psychopy/app/builder/dialogs/dlgsConditions.py +1 -1
- psychopy/app/builder/dialogs/findDlg.py +106 -20
- psychopy/app/builder/dialogs/paramCtrls.py +42 -1
- psychopy/app/builder/validators.py +1 -1
- psychopy/app/coder/codeEditorBase.py +8 -8
- psychopy/app/coder/coder.py +32 -29
- psychopy/app/coder/fileBrowser.py +68 -22
- psychopy/app/coder/folding.py +1 -1
- psychopy/app/coder/psychoParser.py +1 -1
- psychopy/app/coder/repl.py +1 -1
- psychopy/app/coder/sourceTree.py +1 -1
- psychopy/app/connections/__init__.py +1 -1
- psychopy/app/connections/news.py +1 -1
- psychopy/app/connections/sendusage.py +1 -1
- psychopy/app/connections/updates.py +1 -1
- psychopy/app/console.py +1 -1
- psychopy/app/errorDlg.py +1 -1
- psychopy/app/frametracker.py +1 -1
- psychopy/app/idle.py +1 -1
- psychopy/app/jobs.py +5 -2
- psychopy/app/linuxconfig/__init__.py +1 -1
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/cs_CZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/da_DK/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/de_DE/LC_MESSAGE/messages.po +3 -3
- psychopy/app/locale/el_GR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_NZ/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/en_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_CO/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_ES/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/es_US/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/es_US/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/et_EE/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fa_IR/LC_MESSAGE/messages.po +1 -1
- psychopy/app/locale/fi_FI/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/fr_FR/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/he_IL/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/hi_IN/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/hu_HU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/it_IT/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ja_JP/LC_MESSAGE/messages.po +3421 -2396
- psychopy/app/locale/ko_KR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ms_MY/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/nl_NL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/nn_NO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pl_PL/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/pt_PT/LC_MESSAGE/messages.po +4 -4
- psychopy/app/locale/ro_RO/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/ru_RU/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/sv_SE/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/tr_TR/LC_MESSAGE/messages.po +2 -2
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_CN/LC_MESSAGE/messages.po +3 -3
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.mo +0 -0
- psychopy/app/locale/zh_TW/LC_MESSAGE/messages.po +2 -2
- psychopy/app/{builder/localizedStrings.py → localizedStrings.py} +173 -26
- psychopy/app/pavlovia_ui/__init__.py +1 -1
- psychopy/app/pavlovia_ui/_base.py +1 -1
- psychopy/app/pavlovia_ui/functions.py +1 -1
- psychopy/app/pavlovia_ui/menu.py +1 -1
- psychopy/app/pavlovia_ui/project.py +1 -1
- psychopy/app/pavlovia_ui/search.py +1 -1
- psychopy/app/pavlovia_ui/sync.py +1 -1
- psychopy/app/pavlovia_ui/user.py +1 -1
- psychopy/app/plugin_manager/dialog.py +34 -96
- psychopy/app/plugin_manager/packages.py +10 -14
- psychopy/app/plugin_manager/plugins.py +64 -4
- psychopy/app/preferencesDlg.py +12 -37
- psychopy/app/psychopyApp.py +130 -44
- psychopy/app/ribbon.py +1 -0
- psychopy/app/runner/runner.py +19 -7
- psychopy/app/runner/scriptProcess.py +11 -6
- psychopy/app/stdout/stdOutRich.py +9 -2
- psychopy/app/themes/fonts.py +1 -1
- psychopy/app/themes/icons.py +2 -38
- psychopy/app/ui/__init__.py +1 -1
- psychopy/app/utils.py +3 -3
- psychopy/assets/default.mp3 +0 -0
- psychopy/assets/fonts/NotoSans-Bold.ttf +0 -0
- psychopy/assets/fonts/NotoSans-BoldItalic.ttf +0 -0
- psychopy/assets/fonts/NotoSans-Italic.ttf +0 -0
- psychopy/assets/fonts/NotoSans-Regular.ttf +0 -0
- psychopy/assets/voicekeyThresholdStim.wav +0 -0
- psychopy/clock.py +4 -1
- psychopy/colors.py +12 -5
- psychopy/core.py +1 -1
- psychopy/data/base.py +1 -1
- psychopy/data/experiment.py +151 -46
- psychopy/data/routine.py +27 -1
- psychopy/data/staircase.py +2 -1
- psychopy/data/trial.py +62 -14
- psychopy/data/utils.py +2 -2
- psychopy/demos/builder/Design Templates/branchedExperiment/branchedExperiment.psyexp +333 -218
- psychopy/demos/builder/Design Templates/psychophysicsStaircase/psychophysicsStaircase.psyexp +261 -239
- psychopy/demos/builder/Design Templates/psychophysicsStairsInterleaved/psychophysicsStaircaseInterleaved.psyexp +319 -180
- psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks.psyexp +204 -116
- psychopy/demos/builder/Experiments/BART/assets/background.jpg +0 -0
- psychopy/demos/builder/Experiments/BART/assets/blueBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/assets/greenBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/assets/redBalloon.png +0 -0
- psychopy/demos/builder/Experiments/BART/bart.psyexp +779 -866
- psychopy/demos/builder/Experiments/BigFiveInventory/BFI.psyexp +242 -180
- psychopy/demos/builder/Experiments/GoNoGo/gng.psyexp +419 -406
- psychopy/demos/builder/Experiments/dragAndDrop/README.md +2 -37
- psychopy/demos/builder/Experiments/dragAndDrop/drag_and_drop.psyexp +460 -1204
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/blank_grid.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/make_shapes.psyexp +221 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/readme.md +4 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_1.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_10.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_2.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_3.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_4.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_5.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_6.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_7.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_8.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solution_9.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/solutions.xlsx +0 -0
- psychopy/demos/builder/Experiments/mentalRotation/MentalRotation.psyexp +583 -542
- psychopy/demos/builder/Experiments/navon/NavonTask.psyexp +458 -427
- psychopy/demos/builder/Experiments/sternberg/sternberg.psyexp +588 -550
- psychopy/demos/builder/Experiments/stroop/stroop.psyexp +303 -207
- psychopy/demos/builder/Experiments/stroopExtended/stroop.psyexp +390 -215
- psychopy/demos/builder/Experiments/stroopExtended/stroopReverse.psyexp +390 -215
- psychopy/demos/builder/Experiments/stroopVoice/stroopVoice.psyexp +357 -331
- psychopy/demos/builder/Feature Demos/buttonBox/buttonBoxDemo.psyexp +3 -2
- psychopy/demos/builder/Feature Demos/counterbalance/counterbalance.psyexp +287 -277
- psychopy/demos/builder/Feature Demos/gratings/gratings.psyexp +370 -320
- psychopy/demos/builder/Feature Demos/noise/noise.psyexp +452 -399
- psychopy/demos/builder/Feature Demos/panorama/panorama.psyexp +168 -133
- psychopy/demos/builder/Feature Demos/pilotMode/pilotMode.psyexp +4 -3
- psychopy/demos/builder/Feature Demos/progress/progressBar.psyexp +420 -392
- psychopy/demos/builder/Feature Demos/sliders/sliders.psyexp +917 -871
- psychopy/demos/builder/Feature Demos/visualValidator/readme.md +7 -0
- psychopy/demos/builder/Feature Demos/visualValidator/visualValidator.psyexp +200 -0
- psychopy/demos/builder/Hardware/EEG_parallel_component/EEG_triggers_parallel_comp.psyexp +25 -9
- psychopy/demos/builder/Hardware/EEG_serial_code/EEG_triggers_serial_code.psyexp +372 -361
- psychopy/demos/builder/Hardware/EEG_serial_component/EEG_triggers_serial_comp.psyexp +25 -9
- psychopy/demos/builder/Hardware/EGI_netstation/stroop.psyexp +320 -235
- psychopy/demos/builder/Hardware/Eyetracking_visual_search/visualSearch.psyexp +790 -651
- psychopy/demos/builder/Hardware/camera/camera.psyexp +326 -246
- psychopy/demos/builder/Hardware/eyetracking/eyetracking.psyexp +432 -327
- psychopy/demos/builder/Hardware/eyetracking_custom_cal/eyetracking_custom_cal.psyexp +440 -321
- psychopy/demos/builder/Hardware/fMRI/fMRI_demo.psyexp +190 -181
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo.psyexp +323 -312
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo_legacy.psyexp +360 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer/lsl_triggers_demo_legacy_legacy.psyexp +312 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy.psyexp +329 -273
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy.psyexp +360 -0
- psychopy/demos/builder/Hardware/lab_streaming_layer_legacy/lsl_triggers_demo_legacy_legacy_legacy.psyexp +312 -0
- psychopy/demos/builder/Hardware/microphone/microphone.psyexp +450 -404
- psychopy/demos/builder/Hardware/pump/pump.psyexp +593 -329
- psychopy/demos/builder/Helper Tools/achorVSalignment/FlowCircular-Regular.ttf +0 -0
- psychopy/demos/builder/Helper Tools/achorVSalignment/anchorAlignment.psyexp +336 -274
- psychopy/demos/builder/Helper Tools/clockFace/clockFace.psyexp +200 -149
- psychopy/demos/builder/Helper Tools/colors/colors.psyexp +300 -279
- psychopy/demos/builder/Helper Tools/drawPolygon/drawPolygon.psyexp +677 -564
- psychopy/demos/builder/Helper Tools/keyNameFinder/keyNameFinder.psyexp +214 -158
- psychopy/demos/builder/Helper Tools/spatialUnits/unitDemo.psyexp +195 -146
- psychopy/demos/coder/experiment control/runtimeInfo.py +1 -1
- psychopy/devices/__init__.py +1 -1
- psychopy/event.py +1 -1
- psychopy/exceptions.py +1 -1
- psychopy/experiment/__init__.py +1 -1
- psychopy/experiment/_experiment.py +30 -9
- psychopy/experiment/components/__init__.py +1 -6
- psychopy/experiment/components/_base.py +44 -19
- psychopy/experiment/components/aperture/__init__.py +1 -1
- psychopy/experiment/components/brush/__init__.py +2 -2
- psychopy/experiment/components/button/__init__.py +24 -28
- psychopy/experiment/components/camera/__init__.py +38 -39
- psychopy/experiment/components/code/__init__.py +1 -1
- psychopy/experiment/components/dots/__init__.py +1 -1
- psychopy/experiment/components/eyetracker_record/__init__.py +7 -3
- psychopy/experiment/components/form/__init__.py +3 -3
- psychopy/experiment/components/grating/__init__.py +1 -1
- psychopy/experiment/components/image/__init__.py +1 -1
- psychopy/experiment/components/joyButtons/__init__.py +2 -2
- psychopy/experiment/components/joyButtons/virtualJoyButtons.py +1 -1
- psychopy/experiment/components/joystick/__init__.py +3 -3
- psychopy/experiment/components/joystick/virtualJoystick.py +1 -1
- psychopy/experiment/components/keyboard/__init__.py +98 -122
- psychopy/experiment/components/microphone/__init__.py +54 -98
- psychopy/experiment/components/mouse/__init__.py +92 -93
- psychopy/experiment/components/movie/__init__.py +28 -50
- psychopy/experiment/components/parallelOut/__init__.py +3 -3
- psychopy/experiment/components/polygon/__init__.py +2 -3
- psychopy/experiment/components/roi/__init__.py +2 -2
- psychopy/experiment/components/routineSettings/__init__.py +2 -0
- psychopy/experiment/components/serialOut/__init__.py +7 -7
- psychopy/experiment/components/settings/__init__.py +317 -313
- psychopy/experiment/components/settings/eyetracking.py +108 -0
- psychopy/experiment/components/slider/__init__.py +5 -5
- psychopy/experiment/components/sound/__init__.py +168 -78
- psychopy/experiment/components/soundsensor/__init__.py +361 -0
- psychopy/experiment/components/soundsensor/classic/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/classic/soundsensor@2x.png +0 -0
- psychopy/experiment/components/soundsensor/dark/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/dark/soundsensor@2x.png +0 -0
- psychopy/experiment/components/soundsensor/light/soundsensor.png +0 -0
- psychopy/experiment/components/soundsensor/light/soundsensor@2x.png +0 -0
- psychopy/experiment/components/static/__init__.py +59 -33
- psychopy/experiment/components/text/__init__.py +2 -6
- psychopy/experiment/components/textbox/__init__.py +3 -7
- psychopy/experiment/components/unknown/__init__.py +2 -0
- psychopy/experiment/components/unknownPlugin/__init__.py +2 -0
- psychopy/experiment/exports.py +1 -1
- psychopy/experiment/flow.py +2 -2
- psychopy/experiment/localization.py +1 -1
- psychopy/experiment/loops.py +43 -10
- psychopy/experiment/params.py +6 -4
- psychopy/experiment/plugins.py +8 -1
- psychopy/experiment/py2js.py +1 -1
- psychopy/experiment/py2js_transpiler.py +1 -1
- psychopy/experiment/routines/__init__.py +1 -1
- psychopy/experiment/routines/_base.py +23 -24
- psychopy/experiment/routines/audioValidator/__init__.py +343 -0
- psychopy/experiment/routines/audioValidator/classic/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/classic/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/audioValidator/dark/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/dark/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/audioValidator/light/audio_validator.png +0 -0
- psychopy/experiment/routines/audioValidator/light/audio_validator@2x.png +0 -0
- psychopy/experiment/routines/eyetracker_calibrate/__init__.py +76 -17
- psychopy/experiment/routines/eyetracker_validate/__init__.py +1 -1
- psychopy/experiment/routines/unknown/__init__.py +2 -0
- psychopy/experiment/routines/{photodiodeValidator → visualValidator}/__init__.py +89 -120
- psychopy/experiment/routines/visualValidator/classic/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/classic/visual_validator@2x.png +0 -0
- psychopy/experiment/routines/visualValidator/dark/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/dark/visual_validator@2x.png +0 -0
- psychopy/experiment/routines/visualValidator/light/visual_validator.png +0 -0
- psychopy/experiment/routines/visualValidator/light/visual_validator@2x.png +0 -0
- psychopy/experiment/utils.py +1 -1
- psychopy/gui/__init__.py +1 -1
- psychopy/gui/qtgui.py +15 -6
- psychopy/gui/wxgui.py +1 -1
- psychopy/hardware/__init__.py +0 -1
- psychopy/hardware/base.py +147 -16
- psychopy/hardware/bbtk/__init__.py +10 -16
- psychopy/hardware/brainproducts.py +7 -13
- psychopy/hardware/button.py +21 -2
- psychopy/hardware/buttonbox/__init__.py +1 -1
- psychopy/hardware/camera/__init__.py +18 -5
- psychopy/hardware/cedrus.py +5 -16
- psychopy/hardware/crs/__init__.py +1 -1
- psychopy/hardware/crs/bits.py +36 -33
- psychopy/hardware/crs/colorcal.py +8 -11
- psychopy/hardware/crs/optical.py +7 -10
- psychopy/hardware/crs/shaders.py +18 -5
- psychopy/hardware/emotiv.py +1 -1
- psychopy/hardware/emulator.py +11 -5
- psychopy/hardware/exceptions.py +86 -0
- psychopy/hardware/forp.py +18 -23
- psychopy/hardware/gammasci.py +8 -3
- psychopy/hardware/iolab.py +8 -19
- psychopy/hardware/joystick/__init__.py +865 -266
- psychopy/hardware/joystick/_base.py +251 -0
- psychopy/hardware/joystick/backend_glfw.py +306 -0
- psychopy/hardware/joystick/backend_pyglet.py +309 -0
- psychopy/hardware/joystick/mappings.py +287 -0
- psychopy/hardware/keyboard.py +4 -2
- psychopy/hardware/labhackers.py +1 -1
- psychopy/hardware/labjacks.py +9 -13
- psychopy/hardware/{photodiode.py → lightsensor.py} +146 -203
- psychopy/hardware/listener.py +9 -8
- psychopy/hardware/manager.py +24 -35
- psychopy/hardware/microphone.py +535 -155
- psychopy/hardware/minolta.py +14 -4
- psychopy/hardware/mouse/__init__.py +1 -1
- psychopy/hardware/photometer/__init__.py +2 -2
- psychopy/hardware/pr.py +14 -4
- psychopy/hardware/qmix.py +18 -27
- psychopy/hardware/serialdevice.py +43 -12
- psychopy/hardware/soundsensor.py +473 -0
- psychopy/hardware/spatial/__init__.py +231 -0
- psychopy/hardware/speaker.py +298 -36
- psychopy/hardware/triggerbox/__init__.py +1 -1
- psychopy/hardware/triggerbox/base.py +1 -1
- psychopy/hardware/triggerbox/parallel.py +1 -1
- psychopy/info.py +1 -1
- psychopy/iohub/devices/eyetracker/__init__.py +10 -18
- psychopy/iohub/devices/eyetracker/calibration/procedure.py +15 -33
- psychopy/iohub/devices/eyetracker/hw/gazepoint/__init__.py +2 -2
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/__init__.py +1 -0
- psychopy/iohub/devices/eyetracker/hw/gazepoint/gp3/eyetracker.py +10 -0
- psychopy/iohub/devices/eyetracker/hw/pupil_labs/neon/__init__.py +1 -0
- psychopy/iohub/devices/mouse/linux2.py +2 -1
- psychopy/layout.py +1 -1
- psychopy/liaison.py +91 -39
- psychopy/locale_setup.py +11 -1
- psychopy/localization/__init__.py +1 -1
- psychopy/localization/_localization.py +1 -1
- psychopy/localization/messages.pot +2 -2
- psychopy/logging.py +14 -12
- psychopy/microphone.py +4 -3
- psychopy/misc.py +1 -1
- psychopy/monitors/MonitorCenter.py +3 -3
- psychopy/monitors/__init__.py +1 -1
- psychopy/monitors/calibData.py +1 -1
- psychopy/monitors/calibTools.py +3 -2
- psychopy/platform_specific/__init__.py +1 -1
- psychopy/platform_specific/darwin.py +1 -1
- psychopy/platform_specific/linux.py +1 -1
- psychopy/platform_specific/win32.py +1 -1
- psychopy/plugins/__init__.py +26 -17
- psychopy/plugins/util.py +65 -0
- psychopy/preferences/Darwin.spec +11 -3
- psychopy/preferences/FreeBSD.spec +11 -3
- psychopy/preferences/Linux.spec +11 -3
- psychopy/preferences/Windows.spec +11 -3
- psychopy/preferences/__init__.py +1 -1
- psychopy/preferences/baseNoArch.spec +11 -3
- psychopy/preferences/hints.py +78 -61
- psychopy/preferences/preferences.py +82 -13
- psychopy/projects/__init__.py +1 -1
- psychopy/projects/pavlovia.py +29 -13
- psychopy/scripts/psyexpCompile.py +1 -1
- psychopy/session.py +81 -8
- psychopy/sound/__init__.py +25 -10
- psychopy/sound/_base.py +134 -34
- psychopy/sound/audioclip.py +38 -15
- psychopy/sound/audiodevice.py +1 -1
- psychopy/sound/backend_ptb.py +53 -321
- psychopy/sound/backend_pygame.py +7 -3
- psychopy/sound/backend_pyo.py +53 -22
- psychopy/sound/backend_pysound.py +10 -27
- psychopy/sound/backend_sounddevice.py +33 -21
- psychopy/sound/exceptions.py +1 -1
- psychopy/sound/microphone.py +83 -5
- psychopy/sound/transcribe.py +3 -3
- psychopy/tests/data/test_basic_run.py +1 -0
- psychopy/tests/data/test_sounds/default_16000.wav +0 -0
- psychopy/tests/data/test_sounds/default_192000.wav +0 -0
- psychopy/tests/data/test_sounds/default_22050.wav +0 -0
- psychopy/tests/data/test_sounds/default_32000.wav +0 -0
- psychopy/tests/data/test_sounds/default_44100.wav +0 -0
- psychopy/tests/data/test_sounds/default_48000.wav +0 -0
- psychopy/tests/data/test_sounds/default_8000.wav +0 -0
- psychopy/tests/data/test_sounds/default_96000.wav +0 -0
- psychopy/tests/test_alerts/test_alerttools.py +2 -1
- psychopy/tests/test_app/test_command_line.py +65 -0
- psychopy/tests/test_data/test_TrialHandler2.py +18 -7
- psychopy/tests/test_demos/test_builder_demos.py +1 -1
- psychopy/tests/test_experiment/needs_wx/componsTemplate.txt +5238 -4188
- psychopy/tests/test_experiment/needs_wx/test_components.py +1 -1
- psychopy/tests/test_experiment/test_components/test_RoutineSettingsComponent.py +16 -0
- psychopy/tests/test_experiment/test_components/test_all_components.py +1 -1
- psychopy/tests/test_experiment/test_components/test_base_components.py +26 -17
- psychopy/tests/test_experiment/test_loops.py +12 -4
- psychopy/tests/test_experiment/test_params.py +17 -4
- psychopy/tests/test_experiment/test_routines/test_PhotodiodeValidationRoutine.py +2 -2
- psychopy/tests/test_hardware/test_photodiode.py +66 -0
- psychopy/tests/test_liaison/test_Liaison.py +4 -4
- psychopy/tests/test_misc/test_clock.py +2 -0
- psychopy/tests/test_misc/test_color.py +2 -0
- psychopy/tests/test_misc/test_event.py +1 -0
- psychopy/tests/test_plugins/__init__.py +0 -0
- psychopy/tests/test_plugins/test_plugin_stubs.py +125 -0
- psychopy/tests/test_sound/test_sound.py +111 -40
- psychopy/tests/test_tools/test_colorspacetools.py +24 -23
- psychopy/tests/test_tools/test_mathtools.py +9 -9
- psychopy/tests/test_tools/test_viewtools.py +101 -0
- psychopy/tests/test_validators/__init__.py +0 -0
- psychopy/tests/test_validators/test_voicekeyValidator.py +95 -0
- psychopy/tests/test_visual/test_all_stimuli.py +2 -2
- psychopy/tests/test_visual/test_basevisual.py +37 -7
- psychopy/tests/test_visual/test_button.py +2 -2
- psychopy/tests/test_visual/test_circle.py +10 -2
- psychopy/tests/test_visual/test_dots.py +1 -1
- psychopy/tests/test_visual/test_form.py +13 -13
- psychopy/tests/test_visual/test_gamma.py +3 -3
- psychopy/tests/test_visual/test_image.py +2 -2
- psychopy/tests/test_visual/test_progress.py +2 -2
- psychopy/tests/test_visual/test_roi.py +8 -2
- psychopy/tests/test_visual/test_shape.py +2 -2
- psychopy/tests/test_visual/test_slider.py +2 -2
- psychopy/tests/test_visual/test_target.py +2 -2
- psychopy/tests/test_visual/test_textbox.py +6 -8
- psychopy/tests/test_visual/test_winScalePos.py +6 -5
- psychopy/tests/test_visual/test_window.py +17 -0
- psychopy/tests/utils.py +51 -1
- psychopy/tools/__init__.py +1 -1
- psychopy/tools/arraytools.py +2 -2
- psychopy/tools/attributetools.py +52 -1
- psychopy/tools/audiotools.py +4 -1
- psychopy/tools/colorspacetools.py +6 -4
- psychopy/tools/coordinatetools.py +1 -1
- psychopy/tools/fileerrortools.py +21 -9
- psychopy/tools/filetools.py +2 -2
- psychopy/tools/fontmanager.py +47 -28
- psychopy/tools/gltools.py +2967 -559
- psychopy/tools/imagetools.py +1 -1
- psychopy/tools/mathtools.py +997 -127
- psychopy/tools/monitorunittools.py +7 -1
- psychopy/tools/movietools.py +1 -2
- psychopy/tools/pkgtools.py +157 -127
- psychopy/tools/plottools.py +1 -1
- psychopy/tools/rifttools.py +1 -1
- psychopy/tools/stereotools.py +1 -1
- psychopy/tools/stimulustools.py +172 -2
- psychopy/tools/stringtools.py +22 -2
- psychopy/tools/systemtools.py +1 -1
- psychopy/tools/typetools.py +1 -1
- psychopy/tools/unittools.py +1 -1
- psychopy/tools/versionchooser.py +3 -1
- psychopy/tools/viewtools.py +54 -70
- psychopy/tools/wizard.py +2 -2
- psychopy/validation/__init__.py +6 -0
- psychopy/validation/audio.py +74 -0
- psychopy/validation/visual.py +115 -0
- psychopy/visual/__init__.py +1 -4
- psychopy/visual/aperture.py +9 -6
- psychopy/visual/backends/__init__.py +1 -1
- psychopy/visual/backends/_base.py +1 -1
- psychopy/visual/backends/gamma.py +1 -1
- psychopy/visual/backends/glfwbackend.py +8 -12
- psychopy/visual/backends/pygamebackend.py +1 -1
- psychopy/visual/backends/pygletbackend.py +32 -11
- psychopy/visual/basevisual.py +93 -13
- psychopy/visual/brush.py +1 -1
- psychopy/visual/bufferimage.py +90 -10
- psychopy/visual/button.py +1 -1
- psychopy/visual/circle.py +12 -20
- psychopy/visual/custommouse.py +1 -1
- psychopy/visual/dot.py +80 -14
- psychopy/visual/elementarray.py +84 -10
- psychopy/visual/filters.py +1 -1
- psychopy/visual/form.py +43 -28
- psychopy/visual/grating.py +105 -25
- psychopy/visual/helpers.py +4 -2
- psychopy/visual/image.py +98 -20
- psychopy/visual/line.py +15 -25
- psychopy/visual/movie.py +1 -1
- psychopy/visual/movie2.py +4 -3
- psychopy/visual/movie3.py +4 -3
- psychopy/visual/movies/__init__.py +1 -1
- psychopy/visual/movies/frame.py +1 -1
- psychopy/visual/movies/metadata.py +1 -1
- psychopy/visual/movies/players/__init__.py +1 -1
- psychopy/visual/movies/players/_base.py +1 -1
- psychopy/visual/movies/players/ffpyplayer_player.py +2 -3
- psychopy/visual/nnlvs.py +9 -6
- psychopy/visual/noise.py +4 -16
- psychopy/visual/patch.py +4 -3
- psychopy/visual/pie.py +3 -14
- psychopy/visual/polygon.py +21 -28
- psychopy/visual/radial.py +4 -18
- psychopy/visual/ratingscale.py +4 -3
- psychopy/visual/rect.py +16 -25
- psychopy/visual/rift.py +8 -2
- psychopy/visual/secondorder.py +4 -16
- psychopy/visual/shaders.py +620 -286
- psychopy/visual/shape.py +281 -90
- psychopy/visual/simpleimage.py +1 -1
- psychopy/visual/slider.py +78 -25
- psychopy/visual/stim3d.py +5 -608
- psychopy/visual/text.py +13 -3
- psychopy/visual/textbox2/textbox2.py +188 -56
- psychopy/visual/vlcmoviestim.py +1 -1
- psychopy/visual/window.py +374 -201
- psychopy/web.py +1 -1
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/METADATA +13 -12
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/RECORD +647 -624
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/WHEEL +1 -1
- psychopy/.DS_Store +0 -0
- psychopy/__init__.py.orig +0 -65
- psychopy/app/.DS_Store +0 -0
- psychopy/app/Resources/.DS_Store +0 -0
- psychopy/app/Resources/classic/filecsv16.png +0 -0
- psychopy/app/Resources/classic/fileimage16.png +0 -0
- psychopy/app/Resources/classic/fileunknown16.png +0 -0
- psychopy/app/Resources/dark/filecsv16.png +0 -0
- psychopy/app/Resources/dark/filecsv16@2x.png +0 -0
- psychopy/app/Resources/dark/fileimage16.png +0 -0
- psychopy/app/Resources/dark/fileimage16@2x.png +0 -0
- psychopy/app/Resources/dark/fileunknown16.png +0 -0
- psychopy/app/Resources/dark/fileunknown16@2x.png +0 -0
- psychopy/app/Resources/fonts/OpenSans-Bold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-BoldItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-ExtraBold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Italic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Light.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-LightItalic.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-Regular.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-SemiBold.ttf +0 -0
- psychopy/app/Resources/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- psychopy/app/Resources/light/filecsv16.png +0 -0
- psychopy/app/Resources/light/filecsv16@2x.png +0 -0
- psychopy/app/Resources/light/fileimage16.png +0 -0
- psychopy/app/Resources/light/fileimage16@2x.png +0 -0
- psychopy/app/Resources/light/fileunknown16.png +0 -0
- psychopy/app/Resources/light/fileunknown16@2x.png +0 -0
- psychopy/app/Resources/psychopySplash.png +0 -0
- psychopy/app/Resources/psychopySplash@2x.png +0 -0
- psychopy/app/builder/builder.py.orig +0 -3932
- psychopy/app/builder/dialogs/__init__.py.orig +0 -1679
- psychopy/app/builder/dialogs/paramCtrls.py.orig +0 -713
- psychopy/app/colorpicker/__init__.py.orig +0 -411
- psychopy/app/locale/ar_001/.DS_Store +0 -0
- psychopy/app/locale/ar_001/LC_MESSAGE/.DS_Store +0 -0
- psychopy/core.py.orig +0 -169
- psychopy/demos/builder/.DS_Store +0 -0
- psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py +0 -330
- psychopy/demos/builder/Experiments/.DS_Store +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/archived_conditions.xlsx +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/draw grid stim.py +0 -61
- psychopy/demos/builder/Experiments/dragAndDrop/shapeMaker.psyexp +0 -91
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_1.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_10.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_2.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_3.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_4.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_5.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_6.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_7.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_8.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/stimuli/grid_image_9.png +0 -0
- psychopy/demos/builder/Experiments/dragAndDrop/updated_conditions.xlsx +0 -0
- psychopy/demos/builder/Tools/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/.DS_Store +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.csv +0 -38
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.log +0 -3418
- psychopy/demos/builder/Tools/gammaCalibration/data/_gamma_correction_visual_2022-05-18_14h18.29.439.psydat +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.csv +0 -2
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.log +0 -15
- psychopy/demos/builder/Tools/gammaCalibration/data/x1_gamma_correction_visual_2022-05-17_13h59.42.928.psydat +0 -0
- psychopy/demos/builder/Tools/gammaCalibration/gamma_correction_visual_lastrun.py +0 -562
- psychopy/demos/coder/.DS_Store +0 -0
- psychopy/demos/coder/experiment control/info_gamma.pickle +0 -0
- psychopy/demos/coder/iohub/.iohpid +0 -1
- psychopy/demos/coder/iohub/eyetracking/.iohpid +0 -1
- psychopy/demos/coder/iohub/wintab/.DS_Store +0 -0
- psychopy/demos/coder/stimuli/.DS_Store +0 -0
- psychopy/experiment/_experiment.py.orig +0 -1032
- psychopy/experiment/components/.DS_Store +0 -0
- psychopy/experiment/components/_base.py.orig +0 -823
- psychopy/experiment/components/form/.DS_Store +0 -0
- psychopy/experiment/components/microphone/__init__.py.orig +0 -490
- psychopy/experiment/components/settings/__init__.py.orig +0 -1337
- psychopy/experiment/components/textbox/__init__.py.orig +0 -310
- psychopy/experiment/components/webcam/.DS_Store +0 -0
- psychopy/experiment/components/webcam/light/.DS_Store +0 -0
- psychopy/experiment/loops.py.orig +0 -829
- psychopy/experiment/params.py.orig +0 -408
- psychopy/experiment/routine.py.orig +0 -503
- psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/classic/photodiode_validator@2x.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/dark/photodiode_validator@2x.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator.png +0 -0
- psychopy/experiment/routines/photodiodeValidator/light/photodiode_validator@2x.png +0 -0
- psychopy/hardware/.DS_Store +0 -0
- psychopy/hardware/brainproducts.py.orig +0 -680
- psychopy/hardware/iolab.py.orig +0 -238
- psychopy/iohub/datastore/__init__.py.orig +0 -443
- psychopy/iohub/datastore/util.py.orig +0 -692
- psychopy/iohub/devices/mouse/darwin.py.orig +0 -427
- psychopy/iohub/devices/mouse/linux2.py.orig +0 -198
- psychopy/preferences/.DS_Store +0 -0
- psychopy/projects/pavlovia.py.orig +0 -1295
- psychopy/tests/.DS_Store +0 -0
- psychopy/tests/data/.DS_Store +0 -0
- psychopy/tests/data/TestCircle_fill_local.png +0 -0
- psychopy/tests/data/aperture1_normHexbackground_local.png +0 -0
- psychopy/tests/data/aperture1_norm_local.png +0 -0
- psychopy/tests/data/aperture2_normHexbackground_local.png +0 -0
- psychopy/tests/data/beatandrcos_height_local.png +0 -0
- psychopy/tests/data/beatandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/beatandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/beatandrcos_norm_local.png +0 -0
- psychopy/tests/data/beatandrcos_stencil_local.png +0 -0
- psychopy/tests/data/blend_add_height_local.png +0 -0
- psychopy/tests/data/blend_add_normAddBlend_local.png +0 -0
- psychopy/tests/data/blend_add_normHexbackground_local.png +0 -0
- psychopy/tests/data/blend_add_normNoShade_local.png +0 -0
- psychopy/tests/data/blend_add_norm_local.png +0 -0
- psychopy/tests/data/blend_add_stencil_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_height_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normAddBlend_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normHexbackground_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_normNoShade_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_norm_local.png +0 -0
- psychopy/tests/data/bufferimg_gabor_stencil_local.png +0 -0
- psychopy/tests/data/circleHex_height_local.png +0 -0
- psychopy/tests/data/circleHex_normAddBlend_local.png +0 -0
- psychopy/tests/data/circleHex_normHexbackground_local.png +0 -0
- psychopy/tests/data/circleHex_normNoShade_local.png +0 -0
- psychopy/tests/data/circleHex_norm_local.png +0 -0
- psychopy/tests/data/circleHex_stencil_local.png +0 -0
- psychopy/tests/data/color_comparison_local.png +0 -0
- psychopy/tests/data/correctScript/.DS_Store +0 -0
- psychopy/tests/data/dots_height_local.png +0 -0
- psychopy/tests/data/dots_normAddBlend_local.png +0 -0
- psychopy/tests/data/dots_normHexbackground_local.png +0 -0
- psychopy/tests/data/dots_normNoShade_local.png +0 -0
- psychopy/tests/data/dots_norm_local.png +0 -0
- psychopy/tests/data/dots_stencil_local.png +0 -0
- psychopy/tests/data/elarray1_height_local.png +0 -0
- psychopy/tests/data/elarray1_normAddBlend_local.png +0 -0
- psychopy/tests/data/elarray1_normHexbackground_local.png +0 -0
- psychopy/tests/data/elarray1_norm_local.png +0 -0
- psychopy/tests/data/elarray1_stencil_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_height_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_norm_local.png +0 -0
- psychopy/tests/data/envelopeandrcos_stencil_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_height_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_norm_local.png +0 -0
- psychopy/tests/data/envelopepowerandrcos_stencil_local.png +0 -0
- psychopy/tests/data/gabor1_height_local.png +0 -0
- psychopy/tests/data/gabor1_normAddBlend_local.png +0 -0
- psychopy/tests/data/gabor1_normHexbackground_local.png +0 -0
- psychopy/tests/data/gabor1_normNoShade_local.png +0 -0
- psychopy/tests/data/gabor1_norm_local.png +0 -0
- psychopy/tests/data/gabor1_stencil_local.png +0 -0
- psychopy/tests/data/greyscale_normHexbackground_local.png +0 -0
- psychopy/tests/data/imageAndGauss_height_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normAddBlend_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normHexbackground_local.png +0 -0
- psychopy/tests/data/imageAndGauss_normNoShade_local.png +0 -0
- psychopy/tests/data/imageAndGauss_norm_local.png +0 -0
- psychopy/tests/data/imageAndGauss_stencil_local.png +0 -0
- psychopy/tests/data/movFrame1_stencil_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_height_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_normNoShade_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_norm_local.png +0 -0
- psychopy/tests/data/noiseAndRcos_stencil_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_height_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normAddBlend_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normHexbackground_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_normNoShade_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_norm_local.png +0 -0
- psychopy/tests/data/noiseFiltersAndRcos_stencil_local.png +0 -0
- psychopy/tests/data/numpyImage_height_local.png +0 -0
- psychopy/tests/data/numpyImage_normAddBlend_local.png +0 -0
- psychopy/tests/data/numpyImage_normHexbackground_local.png +0 -0
- psychopy/tests/data/numpyImage_normNoShade_local.png +0 -0
- psychopy/tests/data/numpyImage_norm_local.png +0 -0
- psychopy/tests/data/numpyImage_stencil_local.png +0 -0
- psychopy/tests/data/shape2_1_normAddBlend_local.png +0 -0
- psychopy/tests/data/shape2_1_normHexbackground_local.png +0 -0
- psychopy/tests/data/shape2_1_normNoShade_local.png +0 -0
- psychopy/tests/data/shape2_1_norm_local.png +0 -0
- psychopy/tests/data/shape2_1_stencil_local.png +0 -0
- psychopy/tests/data/text1_height_local.png +0 -0
- psychopy/tests/data/text1_normAddBlend_local.png +0 -0
- psychopy/tests/data/text1_normHexbackground_local.png +0 -0
- psychopy/tests/data/text1_norm_local.png +0 -0
- psychopy/tests/data/text1_stencil_local.png +0 -0
- psychopy/tests/data/wedge1_height_local.png +0 -0
- psychopy/tests/data/wedge1_normAddBlend_local.png +0 -0
- psychopy/tests/data/wedge1_normHexbackground_local.png +0 -0
- psychopy/tests/data/wedge1_normNoShade_local.png +0 -0
- psychopy/tests/data/wedge1_norm_local.png +0 -0
- psychopy/tests/data/wedge1_stencil_local.png +0 -0
- psychopy/tests/test_app/.DS_Store +0 -0
- psychopy/tests/test_app/test_builder/.DS_Store +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.log +0 -177
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.psydat +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1206.xlsx +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.log +0 -168
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.psydat +0 -0
- psychopy/tests/test_app/test_builder/data/_2021_ 5_03_1324.xlsx +0 -0
- psychopy/tests/test_data/.DS_Store +0 -0
- psychopy/tests/test_hardware/test_CRS_BitsSharp.py +0 -67
- psychopy/tests/test_hardware/test_CRS_BitsSharp.py.orig +0 -68
- psychopy/tests/test_hardware/test_CRS_bitsShaders.py +0 -110
- psychopy/tests/test_visual/test_image.py.orig +0 -219
- psychopy/visual/basevisual.py.orig +0 -1723
- psychopy/visual/form.py.orig +0 -1181
- psychopy/visual/text.py.orig +0 -752
- psychopy/visual/textbox2/textbox2.py.orig +0 -1315
- psychopy/visual/windowwarp.py.orig +0 -463
- /psychopy/{app/cortex.log → alerts/alertsCatalogue/3600.yaml} +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Bold.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-BoldItalic.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Italic.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/Arvo-Regular.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/DejaVuSerif.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/IndieFlower-Regular.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- /psychopy/{app/Resources → assets}/fonts/JetBrainsMono-VariableFont_wght.ttf +0 -0
- /psychopy/demos/builder/Experiments/{GoNoGo → goNoGo}/readme.md +0 -0
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/entry_points.txt +0 -0
- {psychopy-2024.2.5.dist-info → psychopy-2025.1.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
|
-
"""
|
|
4
|
-
This experiment was created using PsychoPy3 Experiment Builder (v2022.2.0dev3),
|
|
5
|
-
on Thu May 26 17:00:03 2022
|
|
6
|
-
If you publish work using this script the most relevant publication is:
|
|
7
|
-
|
|
8
|
-
Peirce J, Gray JR, Simpson S, MacAskill M, Höchenberger R, Sogo H, Kastman E, Lindeløv JK. (2019)
|
|
9
|
-
PsychoPy2: Experiments in behavior made easy Behav Res 51: 195.
|
|
10
|
-
https://doi.org/10.3758/s13428-018-01193-y
|
|
11
|
-
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
# --- Import packages ---
|
|
15
|
-
from psychopy import locale_setup
|
|
16
|
-
from psychopy import prefs
|
|
17
|
-
from psychopy import sound, gui, visual, core, data, event, logging, clock, colors, layout
|
|
18
|
-
from psychopy.constants import (NOT_STARTED, STARTED, PLAYING, PAUSED,
|
|
19
|
-
STOPPED, FINISHED, PRESSED, RELEASED, FOREVER)
|
|
20
|
-
|
|
21
|
-
import numpy as np # whole numpy lib is available, prepend 'np.'
|
|
22
|
-
from numpy import (sin, cos, tan, log, log10, pi, average,
|
|
23
|
-
sqrt, std, deg2rad, rad2deg, linspace, asarray)
|
|
24
|
-
from numpy.random import random, randint, normal, shuffle, choice as randchoice
|
|
25
|
-
import os # handy system and path functions
|
|
26
|
-
import sys # to get file system encoding
|
|
27
|
-
|
|
28
|
-
import psychopy.iohub as io
|
|
29
|
-
from psychopy.hardware import keyboard
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# Ensure that relative paths start from the same directory as this script
|
|
34
|
-
_thisDir = os.path.dirname(os.path.abspath(__file__))
|
|
35
|
-
os.chdir(_thisDir)
|
|
36
|
-
# Store info about the experiment session
|
|
37
|
-
psychopyVersion = '2022.2.0dev3'
|
|
38
|
-
expName = 'blockedTrials' # from the Builder filename that created this script
|
|
39
|
-
expInfo = {
|
|
40
|
-
'session': '001',
|
|
41
|
-
'participant': "subj%06.0f" %(random()*100000),
|
|
42
|
-
}
|
|
43
|
-
# --- Show participant info dialog --
|
|
44
|
-
dlg = gui.DlgFromDict(dictionary=expInfo, sortKeys=False, title=expName)
|
|
45
|
-
if dlg.OK == False:
|
|
46
|
-
core.quit() # user pressed cancel
|
|
47
|
-
expInfo['date'] = data.getDateStr() # add a simple timestamp
|
|
48
|
-
expInfo['expName'] = expName
|
|
49
|
-
expInfo['psychopyVersion'] = psychopyVersion
|
|
50
|
-
|
|
51
|
-
# Data file name stem = absolute path + name; later add .psyexp, .csv, .log, etc
|
|
52
|
-
filename = _thisDir + os.sep + u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])
|
|
53
|
-
|
|
54
|
-
# An ExperimentHandler isn't essential but helps with data saving
|
|
55
|
-
thisExp = data.ExperimentHandler(name=expName, version='',
|
|
56
|
-
extraInfo=expInfo, runtimeInfo=None,
|
|
57
|
-
originPath='psychopy/demos/builder/Design Templates/randomisedBlocks/randomisedBlocks_lastrun.py',
|
|
58
|
-
savePickle=True, saveWideText=True,
|
|
59
|
-
dataFileName=filename)
|
|
60
|
-
# save a log file for detail verbose info
|
|
61
|
-
logFile = logging.LogFile(filename+'.log', level=logging.EXP)
|
|
62
|
-
logging.console.setLevel(logging.WARNING) # this outputs to the screen, not a file
|
|
63
|
-
|
|
64
|
-
endExpNow = False # flag for 'escape' or other condition => quit the exp
|
|
65
|
-
frameTolerance = 0.001 # how close to onset before 'same' frame
|
|
66
|
-
|
|
67
|
-
# Start Code - component code to be run after the window creation
|
|
68
|
-
|
|
69
|
-
# --- Setup the Window ---
|
|
70
|
-
win = visual.Window(
|
|
71
|
-
size=[1440, 900], fullscr=True, screen=0,
|
|
72
|
-
winType='pyglet', allowGUI=False, allowStencil=False,
|
|
73
|
-
monitor='testMonitor', color=[0,0,0], colorSpace='rgb',
|
|
74
|
-
blendMode='avg', useFBO=True,
|
|
75
|
-
units='height')
|
|
76
|
-
# store frame rate of monitor if we can measure it
|
|
77
|
-
expInfo['frameRate'] = win.getActualFrameRate()
|
|
78
|
-
if expInfo['frameRate'] != None:
|
|
79
|
-
frameDur = 1.0 / round(expInfo['frameRate'])
|
|
80
|
-
else:
|
|
81
|
-
frameDur = 1.0 / 60.0 # could not measure, so guess
|
|
82
|
-
# --- Setup input devices ---
|
|
83
|
-
ioConfig = {}
|
|
84
|
-
|
|
85
|
-
# Setup iohub keyboard
|
|
86
|
-
ioConfig['Keyboard'] = dict(use_keymap='psychopy')
|
|
87
|
-
|
|
88
|
-
ioSession = '1'
|
|
89
|
-
if 'session' in expInfo:
|
|
90
|
-
ioSession = str(expInfo['session'])
|
|
91
|
-
ioServer = io.launchHubServer(window=win, **ioConfig)
|
|
92
|
-
eyetracker = None
|
|
93
|
-
|
|
94
|
-
# create a default keyboard (e.g. to check for escape)
|
|
95
|
-
defaultKeyboard = keyboard.Keyboard(backend='iohub')
|
|
96
|
-
|
|
97
|
-
# --- Initialize components for Routine "readyMessage" ---
|
|
98
|
-
readyMessageClock = core.Clock()
|
|
99
|
-
textbox = visual.TextBox2(
|
|
100
|
-
win, text='', font='Open Sans',
|
|
101
|
-
pos=(0, 0), letterHeight=0.05,
|
|
102
|
-
size=(0.4, 0.4), borderWidth=2.0,
|
|
103
|
-
color='white', colorSpace='rgb',
|
|
104
|
-
opacity=1.0,
|
|
105
|
-
bold=False, italic=False,
|
|
106
|
-
lineSpacing=1.0,
|
|
107
|
-
padding=None, alignment='center',
|
|
108
|
-
anchor='center',
|
|
109
|
-
fillColor=None, borderColor=None,
|
|
110
|
-
flipHoriz=False, flipVert=False, languageStyle='LTR',
|
|
111
|
-
editable=False,
|
|
112
|
-
name='textbox',
|
|
113
|
-
autoLog=True,
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
# --- Initialize components for Routine "trial" ---
|
|
117
|
-
trialClock = core.Clock()
|
|
118
|
-
image = visual.ImageStim(
|
|
119
|
-
win=win,
|
|
120
|
-
name='image', units='height',
|
|
121
|
-
image='sin', mask=None, anchor='center',
|
|
122
|
-
ori=0, pos=(0, 0), size=(0.5,0.5),
|
|
123
|
-
color=[1,1,1], colorSpace='rgb', opacity=1,
|
|
124
|
-
flipHoriz=False, flipVert=False,
|
|
125
|
-
texRes=128, interpolate=True, depth=0.0)
|
|
126
|
-
|
|
127
|
-
# Create some handy timers
|
|
128
|
-
globalClock = core.Clock() # to track the time since experiment started
|
|
129
|
-
routineTimer = core.CountdownTimer() # to track time remaining of each (non-slip) routine
|
|
130
|
-
|
|
131
|
-
# set up handler to look after randomisation of conditions etc
|
|
132
|
-
blocks = data.TrialHandler(nReps=2, method='random',
|
|
133
|
-
extraInfo=expInfo, originPath=-1,
|
|
134
|
-
trialList=data.importConditions('chooseBlock.xlsx'),
|
|
135
|
-
seed=None, name='blocks')
|
|
136
|
-
thisExp.addLoop(blocks) # add the loop to the experiment
|
|
137
|
-
thisBlock = blocks.trialList[0] # so we can initialise stimuli with some values
|
|
138
|
-
# abbreviate parameter names if possible (e.g. rgb = thisBlock.rgb)
|
|
139
|
-
if thisBlock != None:
|
|
140
|
-
for paramName in thisBlock:
|
|
141
|
-
exec('{} = thisBlock[paramName]'.format(paramName))
|
|
142
|
-
|
|
143
|
-
for thisBlock in blocks:
|
|
144
|
-
currentLoop = blocks
|
|
145
|
-
# abbreviate parameter names if possible (e.g. rgb = thisBlock.rgb)
|
|
146
|
-
if thisBlock != None:
|
|
147
|
-
for paramName in thisBlock:
|
|
148
|
-
exec('{} = thisBlock[paramName]'.format(paramName))
|
|
149
|
-
|
|
150
|
-
# --- Prepare to start Routine "readyMessage" ---
|
|
151
|
-
continueRoutine = True
|
|
152
|
-
routineTimer.add(1.000000)
|
|
153
|
-
# update component parameters for each repeat
|
|
154
|
-
textbox.reset()
|
|
155
|
-
textbox.setText(readyMsg)
|
|
156
|
-
# keep track of which components have finished
|
|
157
|
-
readyMessageComponents = [textbox]
|
|
158
|
-
for thisComponent in readyMessageComponents:
|
|
159
|
-
thisComponent.tStart = None
|
|
160
|
-
thisComponent.tStop = None
|
|
161
|
-
thisComponent.tStartRefresh = None
|
|
162
|
-
thisComponent.tStopRefresh = None
|
|
163
|
-
if hasattr(thisComponent, 'status'):
|
|
164
|
-
thisComponent.status = NOT_STARTED
|
|
165
|
-
# reset timers
|
|
166
|
-
t = 0
|
|
167
|
-
_timeToFirstFrame = win.getFutureFlipTime(clock="now")
|
|
168
|
-
readyMessageClock.reset(-_timeToFirstFrame) # t0 is time of first possible flip
|
|
169
|
-
frameN = -1
|
|
170
|
-
|
|
171
|
-
# --- Run Routine "readyMessage" ---
|
|
172
|
-
while continueRoutine and routineTimer.getTime() > 0:
|
|
173
|
-
# get current time
|
|
174
|
-
t = readyMessageClock.getTime()
|
|
175
|
-
tThisFlip = win.getFutureFlipTime(clock=readyMessageClock)
|
|
176
|
-
tThisFlipGlobal = win.getFutureFlipTime(clock=None)
|
|
177
|
-
frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
|
|
178
|
-
# update/draw components on each frame
|
|
179
|
-
|
|
180
|
-
# *textbox* updates
|
|
181
|
-
if textbox.status == NOT_STARTED and tThisFlip >= 0.0-frameTolerance:
|
|
182
|
-
# keep track of start time/frame for later
|
|
183
|
-
textbox.frameNStart = frameN # exact frame index
|
|
184
|
-
textbox.tStart = t # local t and not account for scr refresh
|
|
185
|
-
textbox.tStartRefresh = tThisFlipGlobal # on global time
|
|
186
|
-
win.timeOnFlip(textbox, 'tStartRefresh') # time at next scr refresh
|
|
187
|
-
textbox.setAutoDraw(True)
|
|
188
|
-
if textbox.status == STARTED:
|
|
189
|
-
# is it time to stop? (based on global clock, using actual start)
|
|
190
|
-
if tThisFlipGlobal > textbox.tStartRefresh + 1.0-frameTolerance:
|
|
191
|
-
# keep track of stop time/frame for later
|
|
192
|
-
textbox.tStop = t # not accounting for scr refresh
|
|
193
|
-
textbox.frameNStop = frameN # exact frame index
|
|
194
|
-
win.timeOnFlip(textbox, 'tStopRefresh') # time at next scr refresh
|
|
195
|
-
textbox.setAutoDraw(False)
|
|
196
|
-
|
|
197
|
-
# check for quit (typically the Esc key)
|
|
198
|
-
if endExpNow or defaultKeyboard.getKeys(keyList=["escape"]):
|
|
199
|
-
core.quit()
|
|
200
|
-
|
|
201
|
-
# check if all components have finished
|
|
202
|
-
if not continueRoutine: # a component has requested a forced-end of Routine
|
|
203
|
-
break
|
|
204
|
-
continueRoutine = False # will revert to True if at least one component still running
|
|
205
|
-
for thisComponent in readyMessageComponents:
|
|
206
|
-
if hasattr(thisComponent, "status") and thisComponent.status != FINISHED:
|
|
207
|
-
continueRoutine = True
|
|
208
|
-
break # at least one component has not yet finished
|
|
209
|
-
|
|
210
|
-
# refresh the screen
|
|
211
|
-
if continueRoutine: # don't flip if this routine is over or we'll get a blank screen
|
|
212
|
-
win.flip()
|
|
213
|
-
|
|
214
|
-
# --- Ending Routine "readyMessage" ---
|
|
215
|
-
for thisComponent in readyMessageComponents:
|
|
216
|
-
if hasattr(thisComponent, "setAutoDraw"):
|
|
217
|
-
thisComponent.setAutoDraw(False)
|
|
218
|
-
blocks.addData('textbox.started', textbox.tStartRefresh)
|
|
219
|
-
blocks.addData('textbox.stopped', textbox.tStopRefresh)
|
|
220
|
-
|
|
221
|
-
# set up handler to look after randomisation of conditions etc
|
|
222
|
-
trials = data.TrialHandler(nReps=1, method='random',
|
|
223
|
-
extraInfo=expInfo, originPath=-1,
|
|
224
|
-
trialList=data.importConditions(condsFile),
|
|
225
|
-
seed=None, name='trials')
|
|
226
|
-
thisExp.addLoop(trials) # add the loop to the experiment
|
|
227
|
-
thisTrial = trials.trialList[0] # so we can initialise stimuli with some values
|
|
228
|
-
# abbreviate parameter names if possible (e.g. rgb = thisTrial.rgb)
|
|
229
|
-
if thisTrial != None:
|
|
230
|
-
for paramName in thisTrial:
|
|
231
|
-
exec('{} = thisTrial[paramName]'.format(paramName))
|
|
232
|
-
|
|
233
|
-
for thisTrial in trials:
|
|
234
|
-
currentLoop = trials
|
|
235
|
-
# abbreviate parameter names if possible (e.g. rgb = thisTrial.rgb)
|
|
236
|
-
if thisTrial != None:
|
|
237
|
-
for paramName in thisTrial:
|
|
238
|
-
exec('{} = thisTrial[paramName]'.format(paramName))
|
|
239
|
-
|
|
240
|
-
# --- Prepare to start Routine "trial" ---
|
|
241
|
-
continueRoutine = True
|
|
242
|
-
routineTimer.add(1.500000)
|
|
243
|
-
# update component parameters for each repeat
|
|
244
|
-
image.setImage(stimFile)
|
|
245
|
-
# keep track of which components have finished
|
|
246
|
-
trialComponents = [image]
|
|
247
|
-
for thisComponent in trialComponents:
|
|
248
|
-
thisComponent.tStart = None
|
|
249
|
-
thisComponent.tStop = None
|
|
250
|
-
thisComponent.tStartRefresh = None
|
|
251
|
-
thisComponent.tStopRefresh = None
|
|
252
|
-
if hasattr(thisComponent, 'status'):
|
|
253
|
-
thisComponent.status = NOT_STARTED
|
|
254
|
-
# reset timers
|
|
255
|
-
t = 0
|
|
256
|
-
_timeToFirstFrame = win.getFutureFlipTime(clock="now")
|
|
257
|
-
trialClock.reset(-_timeToFirstFrame) # t0 is time of first possible flip
|
|
258
|
-
frameN = -1
|
|
259
|
-
|
|
260
|
-
# --- Run Routine "trial" ---
|
|
261
|
-
while continueRoutine and routineTimer.getTime() > 0:
|
|
262
|
-
# get current time
|
|
263
|
-
t = trialClock.getTime()
|
|
264
|
-
tThisFlip = win.getFutureFlipTime(clock=trialClock)
|
|
265
|
-
tThisFlipGlobal = win.getFutureFlipTime(clock=None)
|
|
266
|
-
frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
|
|
267
|
-
# update/draw components on each frame
|
|
268
|
-
|
|
269
|
-
# *image* updates
|
|
270
|
-
if image.status == NOT_STARTED and tThisFlip >= 0.5-frameTolerance:
|
|
271
|
-
# keep track of start time/frame for later
|
|
272
|
-
image.frameNStart = frameN # exact frame index
|
|
273
|
-
image.tStart = t # local t and not account for scr refresh
|
|
274
|
-
image.tStartRefresh = tThisFlipGlobal # on global time
|
|
275
|
-
win.timeOnFlip(image, 'tStartRefresh') # time at next scr refresh
|
|
276
|
-
image.setAutoDraw(True)
|
|
277
|
-
if image.status == STARTED:
|
|
278
|
-
# is it time to stop? (based on global clock, using actual start)
|
|
279
|
-
if tThisFlipGlobal > image.tStartRefresh + 1.0-frameTolerance:
|
|
280
|
-
# keep track of stop time/frame for later
|
|
281
|
-
image.tStop = t # not accounting for scr refresh
|
|
282
|
-
image.frameNStop = frameN # exact frame index
|
|
283
|
-
win.timeOnFlip(image, 'tStopRefresh') # time at next scr refresh
|
|
284
|
-
image.setAutoDraw(False)
|
|
285
|
-
|
|
286
|
-
# check for quit (typically the Esc key)
|
|
287
|
-
if endExpNow or defaultKeyboard.getKeys(keyList=["escape"]):
|
|
288
|
-
core.quit()
|
|
289
|
-
|
|
290
|
-
# check if all components have finished
|
|
291
|
-
if not continueRoutine: # a component has requested a forced-end of Routine
|
|
292
|
-
break
|
|
293
|
-
continueRoutine = False # will revert to True if at least one component still running
|
|
294
|
-
for thisComponent in trialComponents:
|
|
295
|
-
if hasattr(thisComponent, "status") and thisComponent.status != FINISHED:
|
|
296
|
-
continueRoutine = True
|
|
297
|
-
break # at least one component has not yet finished
|
|
298
|
-
|
|
299
|
-
# refresh the screen
|
|
300
|
-
if continueRoutine: # don't flip if this routine is over or we'll get a blank screen
|
|
301
|
-
win.flip()
|
|
302
|
-
|
|
303
|
-
# --- Ending Routine "trial" ---
|
|
304
|
-
for thisComponent in trialComponents:
|
|
305
|
-
if hasattr(thisComponent, "setAutoDraw"):
|
|
306
|
-
thisComponent.setAutoDraw(False)
|
|
307
|
-
trials.addData('image.started', image.tStartRefresh)
|
|
308
|
-
trials.addData('image.stopped', image.tStopRefresh)
|
|
309
|
-
thisExp.nextEntry()
|
|
310
|
-
|
|
311
|
-
# completed 1 repeats of 'trials'
|
|
312
|
-
|
|
313
|
-
# completed 2 repeats of 'blocks'
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
# --- End experiment ---
|
|
317
|
-
# Flip one final time so any remaining win.callOnFlip()
|
|
318
|
-
# and win.timeOnFlip() tasks get executed before quitting
|
|
319
|
-
win.flip()
|
|
320
|
-
|
|
321
|
-
# these shouldn't be strictly necessary (should auto-save)
|
|
322
|
-
thisExp.saveAsWideText(filename+'.csv', delim='auto')
|
|
323
|
-
thisExp.saveAsPickle(filename)
|
|
324
|
-
logging.flush()
|
|
325
|
-
# make sure everything is closed down
|
|
326
|
-
if eyetracker:
|
|
327
|
-
eyetracker.setConnectionState(False)
|
|
328
|
-
thisExp.abort() # or data files will save again on exit
|
|
329
|
-
win.close()
|
|
330
|
-
core.quit()
|
|
Binary file
|
|
Binary file
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import random
|
|
3
|
-
from PIL import Image, ImageDraw
|
|
4
|
-
|
|
5
|
-
# Grid parameters
|
|
6
|
-
grid_size = 100 # Size of each grid square
|
|
7
|
-
gap_size = 5 # Size of the gap between grid squares
|
|
8
|
-
num_rows = 3 # Number of rows in the grid
|
|
9
|
-
num_cols = 3 # Number of columns in the grid
|
|
10
|
-
total_grids = num_rows * num_cols
|
|
11
|
-
num_images = 10 # Number of images to create
|
|
12
|
-
|
|
13
|
-
# Specify the number of white and pink squares you want in each image
|
|
14
|
-
# Possibly to use 0 if you don't want that colour
|
|
15
|
-
num_white_squares = 1
|
|
16
|
-
num_pink_squares = 1
|
|
17
|
-
|
|
18
|
-
# Create the "stimuli" folder if it doesn't exist
|
|
19
|
-
if not os.path.exists("stimuli"):
|
|
20
|
-
os.makedirs("stimuli")
|
|
21
|
-
|
|
22
|
-
# Calculate total image size including gaps
|
|
23
|
-
image_width = num_cols * (grid_size + gap_size) - gap_size
|
|
24
|
-
image_height = num_rows * (grid_size + gap_size) - gap_size
|
|
25
|
-
|
|
26
|
-
# Create 10 images
|
|
27
|
-
for image_index in range(1, num_images + 1): # Start indexing from 1
|
|
28
|
-
# Create a new blank image
|
|
29
|
-
image = Image.new("RGB", (image_width, image_height), "white")
|
|
30
|
-
draw = ImageDraw.Draw(image)
|
|
31
|
-
|
|
32
|
-
# Randomly choose positions for the white grids
|
|
33
|
-
white_grid_indices = random.sample(range(total_grids), num_white_squares)
|
|
34
|
-
|
|
35
|
-
# Randomly choose positions for the pink grids, excluding white grid positions
|
|
36
|
-
pink_grid_indices = random.sample([i for i in range(total_grids) if i not in white_grid_indices], num_pink_squares)
|
|
37
|
-
|
|
38
|
-
# Fill the grids with black, white, and pink colors
|
|
39
|
-
for row in range(num_rows):
|
|
40
|
-
for col in range(num_cols):
|
|
41
|
-
x0 = col * (grid_size + gap_size)
|
|
42
|
-
y0 = row * (grid_size + gap_size)
|
|
43
|
-
x1 = x0 + grid_size
|
|
44
|
-
y1 = y0 + grid_size
|
|
45
|
-
|
|
46
|
-
grid_index = row * num_cols + col
|
|
47
|
-
|
|
48
|
-
if grid_index in white_grid_indices:
|
|
49
|
-
color = "white"
|
|
50
|
-
elif grid_index in pink_grid_indices:
|
|
51
|
-
color = "pink"
|
|
52
|
-
else:
|
|
53
|
-
color = "black"
|
|
54
|
-
|
|
55
|
-
draw.rectangle([x0, y0, x1, y1], fill=color)
|
|
56
|
-
|
|
57
|
-
# Save the image in the "stimuli" folder
|
|
58
|
-
image_path = os.path.join("stimuli", f"grid_image_{image_index}.png")
|
|
59
|
-
image.save(image_path)
|
|
60
|
-
|
|
61
|
-
print("Images created and saved in the 'stimuli' folder.")
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
<PsychoPy2experiment encoding="utf-8" version="3.2.0">
|
|
2
|
-
<Settings>
|
|
3
|
-
<Param name="Audio latency priority" updates="None" val="Use prefs" valType="str" />
|
|
4
|
-
<Param name="Audio lib" updates="None" val="Use prefs" valType="str" />
|
|
5
|
-
<Param name="Completed URL" updates="None" val="" valType="str" />
|
|
6
|
-
<Param name="Data filename" updates="None" val="u'data/%s_%s' % (expName, expInfo['date'])" valType="code" />
|
|
7
|
-
<Param name="Enable Escape" updates="None" val="True" valType="bool" />
|
|
8
|
-
<Param name="Experiment info" updates="None" val="{'rows': '[2,3]'}" valType="code" />
|
|
9
|
-
<Param name="Force stereo" updates="None" val="True" valType="bool" />
|
|
10
|
-
<Param name="Full-screen window" updates="None" val="True" valType="bool" />
|
|
11
|
-
<Param name="HTML path" updates="None" val="html" valType="str" />
|
|
12
|
-
<Param name="Incomplete URL" updates="None" val="" valType="str" />
|
|
13
|
-
<Param name="JS libs" updates="None" val="packaged" valType="str" />
|
|
14
|
-
<Param name="Monitor" updates="None" val="testMonitor" valType="str" />
|
|
15
|
-
<Param name="Save csv file" updates="None" val="False" valType="bool" />
|
|
16
|
-
<Param name="Save excel file" updates="None" val="False" valType="bool" />
|
|
17
|
-
<Param name="Save log file" updates="None" val="True" valType="bool" />
|
|
18
|
-
<Param name="Save psydat file" updates="None" val="True" valType="bool" />
|
|
19
|
-
<Param name="Save wide csv file" updates="None" val="True" valType="bool" />
|
|
20
|
-
<Param name="Screen" updates="None" val="1" valType="num" />
|
|
21
|
-
<Param name="Show info dlg" updates="None" val="True" valType="bool" />
|
|
22
|
-
<Param name="Show mouse" updates="None" val="False" valType="bool" />
|
|
23
|
-
<Param name="Units" updates="None" val="pix" valType="str" />
|
|
24
|
-
<Param name="Use version" updates="None" val="" valType="str" />
|
|
25
|
-
<Param name="Window size (pixels)" updates="None" val="[1920, 1080]" valType="code" />
|
|
26
|
-
<Param name="blendMode" updates="None" val="avg" valType="str" />
|
|
27
|
-
<Param name="color" updates="None" val="$[0,0,0]" valType="str" />
|
|
28
|
-
<Param name="colorSpace" updates="None" val="rgb" valType="str" />
|
|
29
|
-
<Param name="expName" updates="None" val="shapeMaker" valType="str" />
|
|
30
|
-
<Param name="exportHTML" updates="None" val="on Sync" valType="str" />
|
|
31
|
-
<Param name="logging level" updates="None" val="exp" valType="code" />
|
|
32
|
-
<Param val="0" valType="code" updates="constant" name="runMode" /></Settings>
|
|
33
|
-
<Routines>
|
|
34
|
-
<Routine name="trial">
|
|
35
|
-
<CodeComponent name="code">
|
|
36
|
-
<Param name="Begin Experiment" updates="constant" val="baseShape = visual.Rect(win, units="pix", size=(600,600), fillColor="white")&#10;&#10;def randCol():&#10; if random() >=.5:&#10; return "black"&#10; return "white"&#10;&#10;def createGrid(rows, size, pos, names):&#10; inc = (size/rows)/2&#10; if rows == 2:&#10; rowStart = pos[0] - size/4&#10; colStart = pos[1] + size/4&#10; else:&#10; rowStart = pos[0] - size/2&#10; colStart = pos[1] + size/2&#10; row, col = rowStart/rows, colStart/rows&#10; counter = 0&#10; &#10; grid = []&#10; for i in range(rows):&#10; for j in range(rows):&#10; grid.append(visual.Rect(win, name=names[counter], units='pix', size = [size/rows, size/rows], pos= [row,col], lineColor= 'lightgrey', fillColor=randCol()))&#10; row += inc&#10; counter += 1&#10; col -= inc&#10; row = rowStart/rows&#10; return grid&#10;&#10;def drawGrid(grid):&#10; for i in grid:&#10; i.draw()&#10;&#10;imageCounter = 0" valType="extendedCode" />
|
|
37
|
-
<Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode" />
|
|
38
|
-
<Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode" />
|
|
39
|
-
<Param name="Begin Routine" updates="constant" val="grid = createGrid(int(expInfo['rows']), 600, (0,0), names=[1,2,3,4,5,6,7,8,9])&#10;captured = False" valType="extendedCode" />
|
|
40
|
-
<Param name="Code Type" updates="None" val="Py" valType="str" />
|
|
41
|
-
<Param name="Each Frame" updates="constant" val="for i in range(60):&#10; baseShape.draw()&#10; drawGrid(grid)&#10; if i == 20 and not captured:&#10; win.getMovieFrame(buffer='back')&#10; captured = True&#10; " valType="extendedCode" />
|
|
42
|
-
<Param name="Each JS Frame" updates="constant" val="" valType="extendedCode" />
|
|
43
|
-
<Param name="End Experiment" updates="constant" val="" valType="extendedCode" />
|
|
44
|
-
<Param name="End JS Experiment" updates="constant" val="" valType="extendedCode" />
|
|
45
|
-
<Param name="End JS Routine" updates="constant" val="" valType="extendedCode" />
|
|
46
|
-
<Param name="End Routine" updates="constant" val="win.saveMovieFrames('design{}_{}pieces.jpg'.format(imageCounter,int(expInfo['rows'])**2))&#10;imageCounter += 1" valType="extendedCode" />
|
|
47
|
-
<Param name="disabled" updates="None" val="False" valType="bool" />
|
|
48
|
-
<Param name="name" updates="None" val="code" valType="code" />
|
|
49
|
-
</CodeComponent>
|
|
50
|
-
<TextComponent name="text">
|
|
51
|
-
<Param name="color" updates="constant" val="white" valType="str" />
|
|
52
|
-
<Param name="colorSpace" updates="constant" val="rgb" valType="str" />
|
|
53
|
-
<Param name="disabled" updates="None" val="False" valType="bool" />
|
|
54
|
-
<Param name="durationEstim" updates="None" val="" valType="code" />
|
|
55
|
-
<Param name="flip" updates="constant" val="" valType="str" />
|
|
56
|
-
<Param name="font" updates="constant" val="Arial" valType="str" />
|
|
57
|
-
<Param name="languageStyle" updates="None" val="LTR" valType="str" />
|
|
58
|
-
<Param name="letterHeight" updates="constant" val="0.1" valType="code" />
|
|
59
|
-
<Param name="name" updates="None" val="text" valType="code" />
|
|
60
|
-
<Param name="opacity" updates="constant" val="1" valType="code" />
|
|
61
|
-
<Param name="ori" updates="constant" val="0" valType="code" />
|
|
62
|
-
<Param name="pos" updates="constant" val="(0, 0)" valType="code" />
|
|
63
|
-
<Param name="saveStartStop" updates="None" val="True" valType="bool" />
|
|
64
|
-
<Param name="startEstim" updates="None" val="" valType="code" />
|
|
65
|
-
<Param name="startType" updates="None" val="time (s)" valType="str" />
|
|
66
|
-
<Param name="startVal" updates="None" val="0.0" valType="code" />
|
|
67
|
-
<Param name="stopType" updates="None" val="duration (s)" valType="str" />
|
|
68
|
-
<Param name="stopVal" updates="constant" val=".4" valType="code" />
|
|
69
|
-
<Param name="syncScreenRefresh" updates="None" val="True" valType="bool" />
|
|
70
|
-
<Param name="text" updates="constant" val="" valType="str" />
|
|
71
|
-
<Param name="units" updates="None" val="from exp settings" valType="str" />
|
|
72
|
-
<Param name="wrapWidth" updates="constant" val="" valType="code" />
|
|
73
|
-
</TextComponent>
|
|
74
|
-
</Routine>
|
|
75
|
-
</Routines>
|
|
76
|
-
<Flow>
|
|
77
|
-
<LoopInitiator loopType="TrialHandler" name="trials">
|
|
78
|
-
<Param name="Selected rows" updates="None" val="" valType="str" />
|
|
79
|
-
<Param name="conditions" updates="None" val="None" valType="str" />
|
|
80
|
-
<Param name="conditionsFile" updates="None" val="" valType="str" />
|
|
81
|
-
<Param name="endPoints" updates="None" val="[0, 1]" valType="num" />
|
|
82
|
-
<Param name="isTrials" updates="None" val="True" valType="bool" />
|
|
83
|
-
<Param name="loopType" updates="None" val="random" valType="str" />
|
|
84
|
-
<Param name="nReps" updates="None" val="5" valType="code" />
|
|
85
|
-
<Param name="name" updates="None" val="trials" valType="code" />
|
|
86
|
-
<Param name="random seed" updates="None" val="" valType="code" />
|
|
87
|
-
</LoopInitiator>
|
|
88
|
-
<Routine name="trial" />
|
|
89
|
-
<LoopTerminator name="trials" />
|
|
90
|
-
</Flow>
|
|
91
|
-
</PsychoPy2experiment>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
frame_cycles.thisRepN,frame_cycles.thisTrialN,frame_cycles.thisN,frame_cycles.thisIndex,trials.startVal,trials.startValSd,trials.label,trials.thisIndex,trials.thisRepN,trials.thisN,trials.direction,trials.stepSize,trials.stepType,trials.intensity,trials.response,participant,session,date,expName,psychopyVersion,frameRate,
|
|
2
|
-
,,,,0.8,0.2,start low,0,1,0,start,4,lin,0.8,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
3
|
-
,,,,3,0.2,start high,1,1,1,start,4,lin,3,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
4
|
-
,,,,0.8,0.2,start low,0,2,2,start,4,lin,0.9742382824467385,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
5
|
-
,,,,3,0.2,start high,1,2,3,start,4,lin,2.9939328828188576,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
6
|
-
,,,,0.8,0.2,start low,0,3,4,start,4,lin,1.0829717988169412,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
7
|
-
,,,,3,0.2,start high,1,3,5,start,4,lin,2.9543043722999296,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
8
|
-
,,,,0.8,0.2,start low,0,4,6,start,4,lin,1.17081333883496,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
9
|
-
,,,,3,0.2,start high,1,4,7,start,4,lin,2.9191776572267263,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
10
|
-
,,,,3,0.2,start high,1,5,8,start,4,lin,3.0469823681526607,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
11
|
-
,,,,0.8,0.2,start low,0,5,9,start,4,lin,1.2470220577784352,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
12
|
-
,,,,0.8,0.2,start low,0,6,10,start,4,lin,1.316132170465703,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
13
|
-
,,,,3,0.2,start high,1,6,11,start,4,lin,3.021452166430676,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
14
|
-
,,,,0.8,0.2,start low,0,7,12,start,4,lin,1.3022729364739205,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
15
|
-
,,,,3,0.2,start high,1,7,13,start,4,lin,3.119441751241255,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
16
|
-
,,,,3,0.2,start high,1,8,14,start,4,lin,3.097244825678901,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
17
|
-
,,,,0.8,0.2,start low,0,8,15,start,4,lin,1.289403232336042,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
18
|
-
,,,,3,0.2,start high,1,9,16,start,4,lin,3.185617137511655,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
19
|
-
,,,,0.8,0.2,start low,0,9,17,start,4,lin,1.342119422611197,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
20
|
-
,,,,0.8,0.2,start low,0,10,18,start,4,lin,1.3926118925672575,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
21
|
-
,,,,3,0.2,start high,1,10,19,start,4,lin,3.166022700065317,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
22
|
-
,,,,0.8,0.2,start low,0,11,20,start,4,lin,1.381350089846174,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
23
|
-
,,,,3,0.2,start high,1,11,21,start,4,lin,3.24599595749914,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
24
|
-
,,,,3,0.2,start high,1,12,22,start,4,lin,3.228460757314609,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
25
|
-
,,,,0.8,0.2,start low,0,12,23,start,4,lin,1.4273690408286321,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
26
|
-
,,,,0.8,0.2,start low,0,13,24,start,4,lin,1.417165322346265,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
27
|
-
,,,,3,0.2,start high,1,13,25,start,4,lin,3.213040878255229,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
28
|
-
,,,,3,0.2,start high,1,14,26,start,4,lin,3.1992454352827493,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
29
|
-
,,,,0.8,0.2,start low,0,14,27,start,4,lin,1.460758223208908,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
30
|
-
,,,,0.8,0.2,start low,0,15,28,start,4,lin,1.4511913159428556,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
31
|
-
,,,,3,0.2,start high,1,15,29,start,4,lin,3.1871349093881,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
32
|
-
,,,,0.8,0.2,start low,0,16,30,start,4,lin,1.442371565991715,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
33
|
-
,,,,3,0.2,start high,1,16,31,start,4,lin,3.238361057089684,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
34
|
-
,,,,3,0.2,start high,1,17,32,start,4,lin,3.2266413468886985,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
35
|
-
,,,,0.8,0.2,start low,0,17,33,start,4,lin,1.4789059563524067,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
36
|
-
,,,,3,0.2,start high,1,18,34,start,4,lin,3.216211958511995,0,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
37
|
-
,,,,0.8,0.2,start low,0,18,35,start,4,lin,1.4705100761905188,1,,001,2022-05-18_14h18.29.439,gamma_correction_visual,2022.2.0dev3,59.93152834587774,
|
|
38
|
-
,,,,3,0.2,start high,1,19,36,start,4,lin,3.261143633039598,,,,,,,,
|