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 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 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
-
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!
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