Psychtoolbox interfaces between Matlab or Octave and the computer hardware. The PTB core routines provide access to the display frame buffer and color lookup table, reliably synchronize with the vertical screen retrace, support sub-millisecond timing, expose raw OpenGL commands, support video playback and capture as well as low-latency audio, and facilitate the collection of observer responses. Ancillary routines support common needs like color space transformations and the QUEST threshold seeking algorithm.

Psychtoolbox has many active users, an active forum, and is widely cited. PTB-3 is based on the deprecated Psychophysics Toolbox Version 2 with its Matlab C extensions rewritten to be more modular and to use OpenGL on the back end. The current version supports at least Matlab R2022b, and Octave 5 and later on Linux, and Octave 7.3 on macOS, and Windows.

Psychtoolbox News

Psychtoolbox beta updated

kleinerm

Psychtoolbox 3.0.19 Beta update “Virtuality” SP2 was released at 21st April 2023. As usual, the complete development history can be found in our GitHub repository. The release tag is “3.0.19.2”, with the full tree and commit logs under the URL:

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

All:

  • PsychPaidSupportAndServices now handles users pressing Space or Enter too often. Reported by Giles Holland, thanks!

  • PsychDataPixx: Don’t blank top-left pixel anymore, so the “Viewpixx EEG trigger pixel” works better.

Linux:

  • Our new OpenXR driver now has the ability to provide accurate and trustworthy visual stimulus onset timestamps for VR HMD’s - as tested with Oculus Rift CV-1 and HTC Vive Pro Eye and some photo-diode measurements. This however currently only works with Linux and only with Monado as OpenXR runtime, and only with a special set of Mesa Vulkan drivers for AMD and Intel gpu’s. It also comes at a performance cost. However, this combination of Psychtoolbox 3.0.19.1 and modified Monado + Mesa is to my knowledge the only existing modern VR system that can actually provide accurate and trustworthy timing and timestamping for VR applications on modern VR HMD’s. Read “Help PsychOpenXR” for setup instructions. A proper non-hacky, easy to use solution to VR timing problems is still to be done and will require substantial amounts of work.

    The Monado improvements needed for this timestamping hack have now been upstreamed and integrated into official Monado. A minor update to ‘help PsychOpenXR’ describes required tweaked setup instructions.

macOS:

  • Verified that Psychtoolbox for Octave also works with new Octave 8.2 from HomeBrew on macOS 12.6.5, in addition to previously supported Octave 8.1.

Enjoy!

Psychtoolbox beta updated

kleinerm

Psychtoolbox 3.0.19 Beta update “Virtuality” SP1 was released at 12th April 2023. As usual, the complete development history can be found in our GitHub repository. The release tag is “3.0.19.1”, with the full tree and commit logs under the URL:

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

Compatibility changes wrt. Psychtoolbox 3.0.19.0:

  • Octave 7.3 is required on Windows. Octave 8.1 is required on macOS, but Octave 6.3 - 7.3 may also continue to work on macOS (untested as of 3.0.19.1).

  • Recommended operating systems: Ubuntu 22.04.2-LTS Linux, MS-Windows 10 22H2, macOS 12.6.

  • The macOS 10 (aka Mac OSX) and macOS 11 operating systems should continue to work, but are officially unsupported and unsupportable. Use of macOS 13, or running Psychtoolbox on Apple Silicon (M1, M2, …) is not officially supported by this release. Visual stimulation timing will be totally broken on Apple Silicon Macs, as well as some other features. It is our understanding that currently no vision science toolkit exists that could provide any reliable or trustworthy operation on macOS for Apple Silicon. On Intel based Macs, Psychtoolbox likely continues to be the only toolkit with somewhat trustworthy visual stimulation timing on most Intel Mac configurations.

Highlights:

All:

  • The main new feature, after over 800 hours of development, spread over 13.75 months, is our new OpenXR driver for virtual reality, augmented reality and mixed reality applications, known as eXtended Reality. The new PsychOpenXR driver should work on all VR/AR/MR/XR devices from all vendors on all operating systems which have an OpenXR 1 specification compliant runtime installed on your machine. So far the theory.

    In practice, this means GNU/Linux X11 and MS-Windows 10 and later. This new 3.0.19.1 release has been further refined and now also tested for compatibility with the HTC Vive Pro Eye (and presumably similar HMDs from the Vive series), and the associated “Vive Wand” hand controllers. Proper working of our new driver on HMDs from two different VR hardware vendors - Oculus and HTC - should give good confidence that the new OpenXR driver really works cross-vendor. Testing with the HTC Vive Pro Eye was performed with Valve SteamVR 1.25.7 as OpenXR runtime on both Windows 10 22H2 and on Ubuntu Linux 20.04.6-LTS, and additionally also with Monado (with vive and survive backends) under Ubuntu Linux 20.04.6-LTS.

  • Improvements and fixes to all legacy VR drivers, and to VR test scripts and demos.

  • Minor bug fixes and improvements.

  • Various help text and documentation updates. Also spelling fixes to some code comments and docs contributed by Yaroslav Halchenko from the NeuroDebian project. He contributed some automatic spellchecking for our GitHub CI to reduce such mistakes over time.

  • Fixes by Alex Forrence to allow building Python wheels from source more easily.

Linux:

  • Add support for 64-Bit Octave 8.x, implemented via the shared mex files for Octave 4.4 to Octave 8.x. This enables use with Octave on Ubuntu 20.04 - Ubuntu 23.04, and should also enable use on future Linux distributions. Note though that Octave 8.x compatibility is assumed at the moment, not actually tested, as upcoming Ubuntu 23.04 ships with Octave 7.3.

  • Psychtoolbox was built and lightly tested against Matlab R2022b.

  • Our new OpenXR driver now has the ability to provide accurate and trustworthy visual stimulus onset timestamps for VR HMD’s - as tested with Oculus Rift CV-1 and HTC Vive Pro Eye and some photo-diode measurements. This however currently only works with Linux and only with Monado as OpenXR runtime, and only with a slightly modified Monado runtime and a special set of Mesa Vulkan drivers for AMD and Intel gpu’s. It also comes at a performance cost. However, this combination of Psychtoolbox 3.0.19.1 and modified Monado + Mesa is to my knowledge the only existing modern VR system that can actually provide accurate and trustworthy timing and timestamping for VR applications on modern VR HMD’s. Read “Help PsychOpenXR” for setup instructions. A proper non-hacky, easy to use solution to VR timing problems is still to be done and will require substantial amounts of work.

    As part of this work, the CV1Test.m script has been improved for VR related timing tests, and FlipTimingWithRTBoxPhotoDiodeTest.m now optionally can also test VR HMD’s wrt. stimulus onset timing and timestamping. These test scripts were used to verify timestamping precision and reliability of the proprietary VR drivers (OculusVR, Oculus OpenXR, SteamVR OpenXR) or rather the terrible lack of reliability and precision, and the excellent reliability and precision of the hacked Monado OpenXR runtime on Linux.

  • Basic Vulkan display backend support for RaspberryPi 4 and 400 with VideoCore-6 gpu. This is very basic right now, and requires special setup and use of Mesa Vulkan drivers built from Mesa source code, the build and install automated by use of PiKISS. See instructions under ‘help RaspberryPiSetup’. This currently has little to no advantage over use of the standard OpenGL display backend. In fact, expect way less trustworthy visual timing and reduced graphics performance. The only use case at the moment would be convenient setup on a dual-display RaspberryPi 4/400 setup for experimenter GUI/mirror display + subject stimulus display, a split experimenter + subject configuration currently not supported by the standard display backend.

  • Fixes for Mathworks latest Matlab bugs since R2022b, this time breaking our Vulkan support by shipping a totally outdated and crippled libvulkan.so.1 loader library that overrides the system provided full featured loader. PsychLinuxSetup() will now detect this and rename the library to fix Mathworks latest screwup.

Windows:

  • 64-Bit Intel MSVC GStreamer version 1.20.5 is now required as minimum supported version, and GStreamer 1.22.1 is now recommended as most modern version, and also as the only lightly tested version for 3.0.19. High quality text rendering will fail with any earlier versions!

  • 64-Bit GNU/Octave 7.3 is required for running Psychtoolbox 3.0.19 on Octave, earlier or later versions won’t work! Substantial technical difficulties were encountered when trying to upgrade Psychtoolbox for Windows to the brand-new Octave 8.1, forcing me to give up after over 15 hours of work. The lack of funding for any such troubleshooting and maintenance work means that Psychtoolbox will be frozen/locked to Octave 7.3 until significant funding for such compatibility work becomes available, or until the problem magically resolves itself, in other words possibly never.

  • Psychtoolbox was built and lightly tested against Matlab R2022b.

  • Compatibility fixes for LoadIdentityClut() with AMD graphics card drivers on Windows, contributed by GitHub user @qx1147. The contributor has the following to say about this fix: “Tested with several Windows 10 versions, AMD driver versions, video ports (DP, DVI, DP++/DVI) and AMD cards (HD-7750, R7-250X, R7-260X, RX-550, RX-6400, WX-5100) - although not all combinations of these.” - The old code broke on a subset of these cards, depending on output port, card, driver versions and whatnot. This due to backwards incompatible changes that AMD apparently made to their display drivers gamma table and color conversion handling since summer/autumn 2017, when the same contributer last fixed LoadIdentityClut() for AMD driver changes which broke pixel identity passthrough. Example of a new bug, citing the contributor: “For example, for the Radeon RX550, the codes 9-254 would map to 8-253, but only for DP and DP++/DVI, whereas all is fine with DVI, at least with an older driver. With newer drivers, the mapping is also screwed up with DVI.”

macOS:

  • Upgrade to the brand new 64-Bit GNU/Octave 8.1 is recommended for running Psychtoolbox 3.0.19.1 on Octave. Other Octave versions from the Octave 6.3/6.4 and 7.x series, or future Octave 8.x versions, may work as well, but no guarantees for anything other than Octave 8.1.

  • Psychtoolbox was built and lightly tested against Matlab R2022b.

  • Compatibility fixes for new GStreamer 1.22 releases.

Enjoy!

Psychtoolbox christmas/spring discount is over

kleinerm

Update: The offer is now over, no discount available anymore.

This was another disappointing failure. We sold a total of 45 support memberships in the time between mid-November and mid-March, which is a whopping 10% more than in the previous years, at a 34% reduced profit per license, resulting in a financial loss of 27% compared to the old pricing. What we would have needed for declaring this a success would have been way in excess of 1000 sold memberships instead of 45.

So the final conclusion after almost 2.5 years of trying all kind of incentives is that the paid support membership / community membership program is a failure and nothing we do can incentivize our users to behave decent, or even just rational out of pure self-interest. This even after more than 1000 people confirmed in in-person VSS meetings and online surveys, that this is what we should do and surely they will support us financially! I guess this is how our user “community” expresses sarcasm and I just didn’t get the joke.

There just seems to be no meaningful capacity for rational mid- to long-term thinking in this field, at least not in the majority of over 99% of our users. A big thank you to the ~ 0.5% of decent and supportive people out there though! Unfortunately not enough to save this soft win-win-win approach for everybody to secure funding for PTB’s future maintenance and development.

We will evaluate new options, but it is time to conclude that we are out of “carrots” to incentivize people in a soft and friendly way to behave in their own long-term self-interest.

-mario

News Archive