Psychtoolbox interfaces between Matlab or Octave and the computer hardware. The PTB core routines provide high performance 2D and 3D graphics with the highest color and luminance precision, timing precision and control. This both on standard displays, as well as with special visual stimulators, and with High Dynamic Range displays, and with a wide variety of Virtual/Augmented Reality devices. They expose raw OpenGL commands, support video playback and capture, as well as low-latency precisely timed audio playback and capture. They facilitate the collection of observer responses with high timing precision via various input modalities like keyboard, mouse, game controllers, multi-touch touch screens, response boxes, gaze trackers, and digital / analog i/o equipment. Ancillary helper routines support common needs like color space transformations, calibration, and psychometric procedures like, e.g., the QUEST threshold seeking algorithm and others.

Various 3rd party frameworks and higher level toolboxes are built on top of Psychtoolbox to make implementation of research data collection especially easy in specific sub-domains of neuroscience. For beginners or certain domains there also exist user friendly 3rd party graphical user interfaces, e.g., PsyBuilder.

You can also run some of your Psychtoolbox studies online, via VPixx Labmaestro service under https://vpixx.com/products/labmaestro-packngo.

Psychtoolbox has many active users, an active forum, and is widely cited. The current version supports at least Matlab R2024b on Linux, Windows and macOS, and Octave 5 and later on Linux, and Octave 7.3 on Windows, and Octave 9 on macOS.

Psychtoolbox News

Psychtoolbox updated

kleinerm

Psychtoolbox 3.0.20.3 “Appletizer SP3” was released at 3rd February 2025.

The complete development history can be found in our GitHub repository. The release tag is “3.0.20.3”, with the full tree and commit logs under the URL:

https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.3

This Psychtoolbox release was sponsored by Mathworks under the year 2024/2025 contract for small enhancements and bug fixes.

Compatibility changes wrt. Psychtoolbox 3.0.20.2:

  • None expected. Identical to 3.0.20.2, except for a small improvement in our statistics for macOS Apple Silicon to account for Rosetta2.

Highlights:

  • None. This release contains minor functional and quality improvements, bug fixes, and refinement of license management support for macOS and Windows in the run-up to the launch of the actual paid license model / end of free trial period.

All:

  • PsychLicenseHandling(): Add auto download and install for LM client libs. Detect absence of required license manager client libraries during ‘Setup’ and try to auto-download and install the missing crucial libraries.

    This is relevant for non-standard Psychtoolbox installations via GitHub clone or checkout, download of source tree zip/tgz files, or maybe even when the deficient Matlab Add-On manager will be reenabled and used in a future release, if we are lucky.

    Should fix multiple trouble reports on the forum from both Windows and macOS users, encountered if they download the “wrong” (ie., not recommended for beginners) zip or tar.gz files for a Psychtoolbox release, instead of the recommended zip file.

  • Update license management libraries to Cryptlex Runtime v3.31.2. Apart from minor bug fixes, the main improvement is support for system-wide activations on macOS, which should be quite useful for our users on Apple macOS, as one user account on a Apple machine can activate a machine license, and all users on that machine should be able to use it, instead of having to repeat the procedure for each user account on a machine. This was so far only possible on MS-Windows.

  • DrawFormattedText() and DrawFormattedText2(): Improve formatting/layout of Unicode text. Make it work with double() encoded unicode under Matlab/Octave with ‘wrapat’ and ‘justifytomax’ layout, and per-word bounding boxes. And with text wrapping.

    Over 8 hours of tinkering, but seems to work better, as tested on Ubuntu 20.04 with Octave 5.2 and Matlab R2024a.

  • PsychtoolboxPostInstallRoutine: Prune pointless Octave path removals. These are dead and pointless since a while.

  • Various other smaller refinements, bug fixes and documentation updates.

Linux:

  • Psychtoolbox was built and tested against Matlab R2024b and Octave 5.2 and later.

Windows:

  • Psychtoolbox was built and tested against Matlab R2024b and Octave 7.3.

  • Move all Matlab mexw64 mex files into PsychBasic folder, delete the now unused PsychBasic/MatlabWindowsFilesR2007a subfolder, which is obsolete since a long time, so get rid of it and store the Matlab mex files for Windows in the same location as the Matlab mex files for Linux and macOS - the PsychBasic/ folder. The file extension makes sure everything gets sorted. This may make it possible to reenable “Matlab Toolbox Add-On” MLTBX support sometime in the future, although more work will be needed for that.

  • Screen(): Improve/Fix per-pixel alpha for onscreen window transparency. This used to work on WindowsXP, but got broken by some later version of MS-Windows. This change should fix it on Windows 10+, at least on the tested gpu’s. Right now this improvement is limited to Octave, Matlab will follow in the next release if testing with this does not show problems.

macOS:

  • Psychtoolbox was tested against native Matlab R2024b and against native Octave 9.3 from HomeBrew.

  • PsychtoolboxPostInstallRoutine: Raise minimum macOS version check to 10.13. We need at least macOS 10.13 for Intel Macs and macOS 11 for Apple Silicon Macs.

  • Allow system-wide node-locked machine license activations, so only one user has to do the activation, and then all users on that machine can use Psychtoolbox without need to activate per user account.

  • Datapixx mex for Octave/Matlab on macOS Apple Silicon rebuilt against a more recent VPixx release from 2019 instead of 2014. Still outdated, but better than before, to fix possible interop problems of Apple Silicon Macs with VPixx devices. Not yet tested and confirmed to make things work - Awaiting user feedback.

Enjoy!

Psychtoolbox updated

kleinerm

Psychtoolbox 3.0.20.2 “Appletizer SP2” was released at 1st February 2025.

The complete development history can be found in our GitHub repository. The release tag is “3.0.20.2”, with the full tree and commit logs under the URL:

https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.2

This Psychtoolbox release was sponsored by Mathworks under the year 2024/2025 contract for small enhancements and bug fixes.

Compatibility changes wrt. Psychtoolbox 3.0.20.1:

  • None expected.

Highlights:

  • None. This release contains minor functional and quality improvements, bug fixes, and refinement of license management support for macOS and Windows in the run-up to the launch of the actual paid license model / end of free trial period.

All:

  • PsychLicenseHandling(): Add auto download and install for LM client libs. Detect absence of required license manager client libraries during ‘Setup’ and try to auto-download and install the missing crucial libraries.

    This is relevant for non-standard Psychtoolbox installations via GitHub clone or checkout, download of source tree zip/tgz files, or maybe even when the deficient Matlab Add-On manager will be reenabled and used in a future release, if we are lucky.

    Should fix multiple trouble reports on the forum from both Windows and macOS users, encountered if they download the “wrong” (ie., not recommended for beginners) zip or tar.gz files for a Psychtoolbox release, instead of the recommended zip file.

  • Update license management libraries to Cryptlex Runtime v3.31.2. Apart from minor bug fixes, the main improvement is support for system-wide activations on macOS, which should be quite useful for our users on Apple macOS, as one user account on a Apple machine can activate a machine license, and all users on that machine should be able to use it, instead of having to repeat the procedure for each user account on a machine. This was so far only possible on MS-Windows.

  • DrawFormattedText() and DrawFormattedText2(): Improve formatting/layout of Unicode text. Make it work with double() encoded unicode under Matlab/Octave with ‘wrapat’ and ‘justifytomax’ layout, and per-word bounding boxes. And with text wrapping.

    Over 8 hours of tinkering, but seems to work better, as tested on Ubuntu 20.04 with Octave 5.2 and Matlab R2024a.

  • PsychtoolboxPostInstallRoutine: Prune pointless Octave path removals. These are dead and pointless since a while.

  • Various other smaller refinements, bug fixes and documentation updates.

Linux:

  • Psychtoolbox was built and tested against Matlab R2024b and Octave 5.2 and later.

Windows:

  • Psychtoolbox was built and tested against Matlab R2024b and Octave 7.3.

  • Move all Matlab mexw64 mex files into PsychBasic folder, delete the now unused PsychBasic/MatlabWindowsFilesR2007a subfolder, which is obsolete since a long time, so get rid of it and store the Matlab mex files for Windows in the same location as the Matlab mex files for Linux and macOS - the PsychBasic/ folder. The file extension makes sure everything gets sorted. This may make it possible to reenable “Matlab Toolbox Add-On” MLTBX support sometime in the future, although more work will be needed for that.

  • Screen(): Improve/Fix per-pixel alpha for onscreen window transparency. This used to work on WindowsXP, but got broken by some later version of MS-Windows. This change should fix it on Windows 10+, at least on the tested gpu’s. Right now this improvement is limited to Octave, Matlab will follow in the next release if testing with this does not show problems.

macOS:

  • Psychtoolbox was tested against native Matlab R2024b and against native Octave 9.3 from HomeBrew.

  • PsychtoolboxPostInstallRoutine: Raise minimum macOS version check to 10.13. We need at least macOS 10.13 for Intel Macs and macOS 11 for Apple Silicon Macs.

  • Allow system-wide node-locked machine license activations, so only one user has to do the activation, and then all users on that machine can use Psychtoolbox without need to activate per user account.

  • Datapixx mex for Octave/Matlab on macOS Apple Silicon rebuilt against a more recent VPixx release from 2019 instead of 2014. Still outdated, but better than before, to fix possible interop problems of Apple Silicon Macs with VPixx devices. Not yet tested and confirmed to make things work - Awaiting user feedback.

Enjoy!

Psychtoolbox updated

kleinerm

Happy New Year!

Psychtoolbox 3.0.20.1 “Appletizer SP1” was released at 12th January 2025.

The complete development history can be found in our GitHub repository. The release tag is “3.0.20.1”, with the full tree and commit logs under the URL:

https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/3.0.20.1

This Psychtoolbox release was sponsored by Mathworks under the year 2024/2025 contract for small enhancements and bug fixes.

Compatibility changes wrt. Psychtoolbox 3.0.20.0:

  • None

Highlights:

  • None. This is a minor macOS Apple Silicon maintenance release.

macOS:

  • Psychtoolbox was built and tested against native Matlab R2024b and against native Octave 9.3 from HomeBrew, on macOS 13.7.1 Ventura for Intel Macs, and on macOS 14.5 Sonoma for Apple Silicon Macs.

  • Try to execute same code path on Apple Silicon macOS, regardless if running under native Matlab/Octave for Apple Silicon ARM, or running under Intel Matlab/Octave via Rosetta2 emulation. Our license management aggregate stats tell us that a non-trivial fraction of users still use Matlab for Intel Macs via Rosetta2 emulation on Apple Silicon, instead of the recommended native Matlab/Octave for Apple Silicon. This would cause PTB to misbehave, as it would think it runs on an Intel Mac and acts accordingly, instead of adapting to the special snowflake that is macOS on Apple Silicon. This will especially cause trouble with visual stimulation timing and some visual stimulus presentation. Note that this fix tries to fix this, but Psychtoolbox is not and will not be tested for proper compatibility and quality when running under Matlab/Octave for Intel via Rosetta2 on Apple Silicon! Switching to native Matlab/Octave for Apple Silicon / ARM is strongly recommended.

  • Audio demos and tests: Request standard latency instead of larger latency on Apple Silicon. The lose latency requirement was only meant to accomodate RaspberryPi’s, not Apple Silicon.

Enjoy!

News Archive