Skip to content

Releases: psychopy/psychopy

2024.2.5

14 Jan 16:30
e64d50f
Compare
Choose a tag to compare

Fixes

New Contributors

Full Changelog: 2024.2.4...2024.2.5

2024.2.4

28 Oct 14:17
Compare
Choose a tag to compare

Fixes this release

  • Recreate .js file on run when piloting in JS by @TEParsons in #6920
  • App failing to start on MacOS if all windows closed on last app close by @peircej in #6926
  • Fix nonslip timing issue in Builder-generated PsychoJS code by @TEParsons in #6921

Full Changelog: 2024.2.3...2024.2.4

2024.2.3

14 Oct 13:09
1d98ce7
Compare
Choose a tag to compare

Bugs fixed and minor tweaks

  • Fixed machine-specific crashing of the app on launch for MacOS by building app bundle with setuptools==70.3.0 by @peircej in #6901
  • Fix routine clock resetting in JS by @TEParsons in #6861
  • Fix default audio device not being found by @TEParsons in #6863
  • Fix error writing Polygon initial colors in JS by @TEParsons in #6865
  • ensure window focus for the first win.flip() with pyglet backend on Windows OS by @mh105 in #6874 and #6876
  • fix startView across OS platforms that opens psychopyApp.py by @mh105 in #6869
  • if PsychoPy version includes "postN" then strip from PsychoJS version number by @peircej in #6873
  • Handle when record of last open app windows is an invalid value (e.g. from old version) by @TEParsons in #6885
  • suppress pip version check in package manager by @mh105 in #6868
  • Added beta sticker to Counterbalance Component icon by @TEParsons in #6890
  • Counterbalance Routine conditions file chooser wasn't updating the value properly by @TEParsons in #6892
  • Silence unnecessary warning about unrecognised params by @TEParsons in #6896
  • moviepy and egi_pynetstation now included in standalone not as a plugin by @peircej in #6905

Full Changelog: 2024.2.2...2024.2.3

2024.2.2

19 Sep 10:13
4fe80c2
Compare
Choose a tag to compare

Bug Fixes

  • Fix ribbon buttons showing label on Mac by @TEParsons in #6767
  • Builder files were marked as modified as soon as opened by @TEParsons in #6778
  • Builder getting start/stop times when using non-slip timing by @mh105 in #6739
  • Restore backwards-compatability to psychopy.gui.dlg by @TEParsons in #6792
  • Routines were still writing their end experiment code in JS even when removed from the flow by @TEParsons in #6780
  • Fix whisper transcriber sometimes being initialised twice (and breaking as a result) by @TEParsons in #6796
  • DlgFromDict was erroneously adding keys when given "order" or "fixed" by @TEParsons in #6818
  • Make output of Dlg.show backwards compatible with older versions by @TEParsons in #6809 #6792
  • pyglet controls of macOS NSWindow with multiple screens by @mh105 in #6799
  • Fixed detection of installed packages in standalone app for py3.10 by @mh105 in #6771
  • Smoother output from background jobs to stdout by @mh105 in #6833

Full Changelog: 2024.2.1...2024.2.2

PsychoPy 2024.2.1

02 Aug 06:59
872d0a6
Compare
Choose a tag to compare

Fixes

  • TrialHandler2 was starting thisRepsN at 1 rather than 0 by @TEParsons in #6747
  • The py3.10 standalone app failed to launch on macos-arm chips (due to broken tables release 0.9.2)
  • Updated translations for Spanish variants by @carosamu in #6763 #6737
  • Fixed a typo in Trials routine template .psyexp file by @mh105 in #6738
  • Set MovieComponent.status to FINISHED when playback finishes by @mh105 in #6740

FYI the windows py3.10 version didn't originally include git binaries, and the updated version number post4 simply indicates that it wasn't the original build, but compiled 4 commits later.

Full Changelog: 2024.2.0...2024.2.1

PsychoPy 2024.2.0

19 Jul 16:15
Compare
Choose a tag to compare

For this 2024.2.0 although there are many changes and therefore potential for some slight changes in behaviour we have focussed more this release on just making existing functionality smoother rather than adding new big fetaures.

New and Improved 🎉

  • Added "force nonslip" parameter to Routine Settings so that you can now use non-slip timing for a Routine using a variable by @TEParsons in #6603
  • Fix opacity not applying properly to border colors by @TEParsons in #6704
  • User can set the online end message from Builder rather than relying on JS default by @TEParsons in #6258
  • Performance improvements for MovieStim (parituclarly noticeable for larger videos) by @aforren1 in #6449
  • Added functions to MicrophoneDevice to continuously monitor volume by @TEParsons in #6444
  • Added function to check whether a speaker is working by @TEParsons in #6446
  • Builder can now set logging level for app console, independently of log file by @TEParsons in #6510
  • Added Keyboard.getState() to get current state of a key by @TEParsons in #6537
  • Added text-to-speech synthesis by @mdcutone in #6588
  • Eyetracking: Various fixes to plugin- and eyetracker-detection by @TEParsons @mdcutone @EyeLogicSolutions @mh105 @KirstenWilliams
  • Eyetracking: New support for EyeLogic Solutions eyetrackers with plugin (alongside existing Tobii, SRR, Pupil Labs, and Gazepoint support)
  • Eyetracking: Fixes and more flexible settings for calibration routines @KirstenWilliams @mdcutone @EyeLogicSolutions @TEParsons @RebeccaHirst
  • Eyetracking: can now save dwell times from ROI component by @RebeccaHirst in #6500
  • If storing all valid mouse clicks, still show invalid clicks explicitly in the list as None (or Null online) e.g. [None, "foil", "target"] for 3 clicks ending in target by @TEParsons in #6516 #6548
  • Some loops/form/counterbalance were not fetching the correct xlsx templates by @TEParsons in #6514
  • Implement orientation parameter for TextBox2 by @TEParsons in #6513
  • New changelog dialog on app start by @TEParsons in #6445
  • Improved error message for iohub connection error (issue #1226) by @MarkellaEgglezou in #6354
  • Visual stimuli now draggable attribute accessible from Builder by @TEParsons in #6337
  • Improved TrialHandler2 for more flexible adding/cancelling and retrieving info about trials @TEParsons in #6425 #6408 #6590
  • Using PhotoDiodes Components in experiments (e.g. in BBTK T-pad) #6432 #6442
  • Provide PsychoPy experiment filename to the ioHub server by @mh105 in #6555
  • Allow experiment to pause on the current frame by @TEParsons in #6584
  • Allow plugins to be uninstalled via the manager by @mdcutone in #6587
  • Store/update Routine parameters live in an object, rather than hardcoding them to the experiment file by @TEParsons in #6597
  • Make save speech onset/offset only available to supporting transcribers by @kimDundas in #6672

🐛 Bug Fixes

  • Fixed error sampling microphone volume even when buffer is full by @TEParsons in #6488
  • Fixed plugins page sometimes failed to load cached plugins file due to encoding error by @peircej in #6428
  • Fixed the launch of PsychoPy App on conda envs without pythonw by @mh105 in #6436
  • Allowed Static Component to update params by @TEParsons in #6462
  • Fixed TextStim letter height wasn't settable each frame/Routine in JS by @TEParsons in #6511
  • Fixed check for pythonw executable on macOS in psychopyApp.py by @mh105 in #6521
  • Fixed .js file not being found when using "Use version" (removed _legacy from suffix) by @RebeccaHirst in #6515
  • Hide dollar sign on start/stop controls when one is hidden by @TEParsons in #6528
  • Removed unused %s string format in MenuFrame to avoid unrecognized accel key by @mh105 in #6523
  • Remove incorrect code on removing eyetracker generated by builder by @mh105 in #6526
  • Fixed import backend_pysound after module name change by @mh105 in #6524
  • Caught AttributeError for sound.getDevices() when opening PreferenceDlg by @mh105 in #6522
  • Unregister event monitors during iohub calibration by @mh105 in #6466
  • Fixed plugin discovery algorithm not finding user package entry points correctly by @mdcutone in #6539
  • Allow enough time for all ioHub device._close() to finish by @mh105 in #6540
  • Use default speaker device if index is default by @mh105 in #6538
  • Fixed eyetracker record stop/start by @TEParsons in #6545
  • Fixed duplicate dependency install on MacOS and package installation in virtual environments by @mdcutone in #6529
  • Fixed size and pos of Line by @TEParsons in #6543 and @mh105 in #6525
  • Fied bug setting Sound in static period online by @TEParsons in #6546
  • Fixed ioHub finding eyetracker configuration files by @TEParsons in #6547
  • Fixed the issue that speaker index could jump over integers by @mh105 in #6559
  • Fixed crash when mono is specified if the microphone device expects stereo as default by @mdcutone in #6564
  • Fixed csv conditions file loading by @TEParsons in #6552
  • Get correct speech onset/offset times and write them to data file by @mdcutone in #6566
  • Fixed dict keys for setting sample filter levels by @mh105 in #6554
  • Add default duration to eyetracker record component by @RebeccaHirst in #6599
  • Remove second whisper option from mic transcriber backend drop down by @RebeccaHirst in #6604
  • Fixed remove the use of currentlyRecording in EyetrackerControl by @mh105 in #6567
  • Fixed syntax for mic max recording parameter by @RebeccaHirst in #6598
  • Decouple setting status from triggering playback/clock resets/etc. by @TEParsons in #6562
  • Fixed starting and stopping times for EyetrackerRecordComponent by @mh105 in #6607
  • Don't change self.param in getStartAndDuration of et component by @mh105 in #6615
  • Typo in JS boilerplate (True rather than true) by @wakecarter in #6625
  • Builder: Ensure frame rate is stored. by @aforren1 in #6619
  • Allow Sound to stop on a condition rather than just time by @TEParsons in #6631
  • Fix obj.contains is not a function error in JS by @TEParsons in #6635
  • Enable correct behavior of entry-points to load eyetrackers by @mh105 in #6610
  • Movie component Volume inputType should be single instead of float by @mh105 in #6643
  • Use inspect.getfile to check path of plugin entry points by @mh105 in #6660
  • UI wasn't fully refreshing after changing theme by @TEParsons in #6673
  • Coder GUI fixes by @aforren1 in #6678
  • Allow keyboard allowedKeys to be set as an int by @TEParsons in #6676
  • Enable mouse clickable from variable when running online by @RebeccaHirst in #6668
  • Fixed crash when clearEvents(device_label=None) by @mdcutone in #6669
  • Fix JS translation of .pop() when there's no index by @TEParsons in #6651
  • Allow polygon outline opacity to be persistent across frames by @mdcutone in #6657
  • Sound Component code was using the wrong set function name in JS by @TEParsons in #6649
  • Fixed files being marked as modified as soon as opened by @TEParsons in #6679
  • Re-add distro as a runtime dependency for linux & remove deprecated function. by @aforren1 in #6686
  • Save mouse.corr for online studies by @RebeccaHirst in #6701
  • Creating project from ribbon raised error by @TEParsons in #6706
  • Plugin Components weren't recognised if experiment loaded with app by @TEParsons in #6707
  • Original types for "UnknownPluginComponent"s were being lost after loading and saving again by @TEParsons in #6708
  • Start/Stop controls had lost their tooltip by @TEParsons in #6711
  • Update flow button style when switching theme by @TEParsons in #6712
  • Conditions file wasn't updated when chosen from file browser for multistair loops by @TEParsons in #6714
  • Save to the color cache when rendering. by @aforren1 in #6720
  • BF/RF: Code to load Builder-relevant entry points was broken and obsolete by @TEParsons in #6717
  • maxDurationReached in Routine Settings False should be false online by @wakecarter in #6724
  • fix trial data writing when there are multiple key presses including None by @mh105 in #6718
  • Fixed units for mouse gaze calibration targets (pix -> height) by @KirstenWilliams in #6443
  • Standardise tDown attribute between ioHub and ptb Keyboard backends (follow ioHub behaviour) by @TEParsons in #6417
  • Improved audio resampling method by @mdcutone in #6605
  • Change iohub port to avoid conflicts with Whisper transcription by @mdcutone in #6661
  • Fixed 'best match' mic settings not being used to init recording buffer by @mdcutone in #6670
  • Prompt user to reconsider if they try to close plugin window mid-install by @TEParsons in #6705

📓 Docs & Demos

Translations

New Contributors

Full Changelog: 2024.1.5...2024.2.0

PsychoPy 2024.1.5

03 Jun 16:00
98c2bae
Compare
Choose a tag to compare

Bug fixes on top of 2024.1 highlights

  • Standalone distribution on Windows wasn't starting due to incompatible pandas/numpy versions
  • Failing to find Eyetracker Components (Eyelink by @KirstenWilliams in #6406 and Gazepoint by @mdcutone in #6424 )
  • Installed plugins were not being found on Linux/MacOS by @mdcutone in #6441
  • Faster MovieStim rendering (don't call play() when already playing) by @aforren1 in #6448
  • Fixed eyetracker calibration target units (height -> pix) by @peircej in #6451
  • KeyboardComponent allowed keys from spreadsheet caused namespace errors by @TEParsons in #6458
  • hide that visible mouse, please by @mh105 in #6465
  • Fix an issue with etRecord component for Stop Only (not stopping the eytracker) by @mh105 in #6463
  • Only change Mouse visibility if explicitly asked to by @TEParsons in #6467
  • Fix "Stop only" issue regardless of Component order by @TEParsons in #6468
  • Clear keys to initialize keyboard when starting a routine by @mh105 in #6471
  • Allow getKeys() to return the same key pressed multiple times by @mh105 in #6479

Documentation fixes and updates

Full Changelog: 2024.1.4...2024.1.5

PsychoPy 2024.1.4

29 Apr 09:00
05babf9
Compare
Choose a tag to compare

Bug fixes on top of 2024.1 highlights

  • ioHub keyboard was registering key releases before presses, so duration was always None. We now have a test in place that confirms keyboard RT timing using hardware which will be used on each new release going forwards. By @TEParsons in #6416
  • fixed some translation issues by @hsogo in #6409
  • Fixed JSON encoding error when opening plugin dialog by @mdcutone in #6411

Docs

New Contributors

Full Changelog: 2024.1.3...2024.1.4

PsychoPy 2024.1.3

24 Apr 17:01
Compare
Choose a tag to compare

What's Changed

  • BF: Telling Mouse Component to check new clicks without clickable stim raised syntax error by @TEParsons in #6398
  • BF: Keyboard responses in ioHub weren't using relative time by @TEParsons in #6407

Full Changelog: 2024.1.2...2024.1.3

NB the version of the windows installer initially uploaded was inadvertantly an un-signed version. That will likely raise a security warning on Windows during the install. This was updated 25th Apr 2024 at 09:10 (UTC) to a code-signed version that will not raise the security warning

2024.1.2

22 Apr 09:26
607045e
Compare
Choose a tag to compare

Enhancements

  • Default TextStim font set to Arial (TextBox default was already Arial) by @wakecarter in #6378

Bug fixes

  • Keyboard clock wasn't being reset properly, so .rt values were from exp start by @TEParsons in #6360
  • Safer (and faster) behaviour when copying a param, avoids "infinite recursion" (app hangs) by @TEParsons in #6362
  • Make line spacing specific to just one TextBox2 object by @Catherine9811 in #6356
  • Fixes to the Gazepoint eyetracker plugin by @mdcutone in #6365
  • Fixed error when camera tries to close when it's already closed by @mdcutone in #6364
  • Fixed editable TextBox2 cursor location with line breaks by @Catherine9811 in #6358
  • Remove "constant" updates option from SoundComponent (as it wasn't used) by @TEParsons in #6351
  • Python 3.8 was falsely marked as incompatible with 2024.1.x onwards in "use version" interface by @TEParsons in #6366
  • Form Component wasn't finding the correct table template by @TEParsons in #6381
  • Remove blank rows from form template by @wakecarter in #6382
  • Error saving icons from plugin details by @TEParsons in #6368
  • Transparent colours online by @wakecarter in #6386
  • Button numclicks defined by timesOn.length by @wakecarter in #6385

Documentation and testing improvements by...

New contributors

Full Changelog: 2024.1.1...2024.1.2