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 Matlab 7.x and Octave 3.2.x on Mac OSX, Linux and Windows.

Psychtoolbox News

PTB BETA "Bring in the cat! (+SP5)" released


The new BETA “Bring in the cat!” and its Service Pack 2-5 update was released at 14th May 2016.

As usual, the complete development history can be found in our GitHub repository. The release tag is “PTB_Beta-2016-05-14_V3.0.12”, with the full tree and commit logs under the URL:

Release: https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/PTB_Beta-2016-05-14_V3.0.12

New features:

  • TurnTableDemo: Fix for compatibility with Matlab R2015b and later.
  • BitsPlusPlus: Add new subfunction ‘UseFE1StereoGoggles’ to automatically drive those CRS goggles.
  • BitsStereoDemo: Make use of modern PTB features like UseFE1StereoGoggles.
  • Some file permission cleanups by Yaroslav.
  • Fixed some typo in ComputeCIEConeFundamentals() help text by git user spitschan.
  • Screen(‘DrawTextures’) speed improvements, only for 64-Bit Screen for Matlab and Octave on Linux for now.
  • Screen, PsychHID for RaspberryPi updated.
  • XOrgConfCreator now can also setup xf86-video-modesetting, the generic video driver for Linux.
  • PsychGPUControl now can deal with Compiz single-x-screen multi-display setups for Ubuntu’s standard “Unity” GUI.
  • rpath fixes for mex files on Octave-3/4 for 64-Bit OSX to make PTB for Octave on OSX work with different Octave versions.
  • VC4 DRI3/Present Mesa 11.2 workaround for Screen() on RaspberryPi.
  • Allow normal users PTB low-level access to modern AMD gpu’s, e.g., the R9 380 Tahiti Pro.
  • Additional performance improvements to Screen(‘AsyncFlipBegin/End/…’) - So far only for 64-Bit Linux.
  • Performance improvements to PsychProPixx.
  • KDE-5 multi-x-screen “pointer gets stuck” workaround for KDE-5 Plasma on KUbuntu 16.04.0-LTS.
  • Minor fixes and improvements to various M-Files.

PTB BETA "Bring in the cat! (+SP1)" released


The new BETA “Bring in the cat!” and its Service Pack 1 update was released at 14th April 2016.

As usual, the complete development history can be found in our GitHub repository. The release tag is “PTB_Beta-2016-04-14_V3.0.12”, with the full tree and commit logs under the URL:

Release: https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/PTB_Beta-2016-04-14_V3.0.12

New features:

  • Add (almost) complete support for 64-Bit Octave-4.0.1 on MS-Windows. (Datapixx does not work yet.)
  • Add good support for Griffin PowerMate USB on Linux, limited/deficient support for Windows and OSX.
  • DrawFormatttedText: Add new horizontal alignment option ‘centerblock’. Always use ‘yPositionIsBaseline’ for vertical text positioning for consistency.
  • New demo TurnTableDemo to show off PsychPowerMate() function and some PsychPortAudio live stream updates on Linux. Works not so great with PowerMate on OSX.
  • PR670 photometer code robustness improvements by David Brainard.
  • Maintenance work and small fixes and improvements here and there.

PTB BETA "Nothing but the rain SP1" released


The new BETA “Nothing but the rain” and its Service Pack 1 update was released at 15th March 2016.

As usual, the complete development history can be found in our GitHub repository. The release tag is “PTB_Beta-2016-03-15_V3.0.12”, with the full tree and commit logs under the URL:

Release: https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/PTB_Beta-2016-02-21_V3.0.12

SP1: https://github.com/Psychtoolbox-3/Psychtoolbox-3/tree/PTB_Beta-2016-03-15_V3.0.12

New experimental features:

  • Basic alpha-quality support for Psychtoolbox on the Raspberry Pi model 2B. This requires the brand-new experimental/alpha-quality open-source OpenGL graphics/display drivers written by Eric Anholt for the Pi’s VideoCore-4 gpu on Broadcom’s SoC. These drivers are now backported to the February 2016 update of Raspbian, the Debian GNU/Linux variant for Raspberry Pi. This is more of a sneak preview to work in progress than production quality for neuro-science applications atm. See http://anholt.livejournal.com/45752.html for current driver status.

Text drawing improvements:

  • Screen(‘TextTransform’) allows application of a 2D affine transform only to drawn text strings. Currently supported on the standard FTGL drawtext text renderer with high performance and good quality, and on the unsupported/deprecated legacy Apple OSX Coretext text renderer at the cost of a drastic performance loss and almost completely useless Screen(‘TextBounds’) bounding box results. Screen TextTransform? explains some of the gotchas and traps you will run into if you really think you want to use this function.

  • Screen(‘DrawText’) now returns more accurate/useful new text cursor position and a new optional ‘textHeight’ for “newline” vertical spacing. These enhancements only with the standard FTGL drawtext plugin renderer, not on the legacy renderers.

  • Support for sub-pixel anti-aliasing (“LCD filtering”) on the legacy Apple CoreText renderer 0, if that renderer is manually selected, and ‘TextAntialiasing’ preference setting 2 is selected and preference ‘TextAlphaBlending’ is enabled via setting 1 and a solid opaque ‘TextBackgroundColor’ is selected. Sub-pixel anti-aliasing only works on OSX under those special conditions. In all other cases, only regular per-pixel anti-aliasing is used, as in the past.

  • Fix memory leak in legacy OSX CoreText renderer and other OSX text renderer bugs.

  • Other small text quality improvements.

  • “help DrawTextPlugin” Update for latest OSX + Matlab trouble.

Small improvements:

  • Replace ‘clear all’ in many demos with a more harmless clear; Probably also not great, but better than that other disaster. Also replace some calls to GetChar/CharAvail, as we don’t want to give too many bad examples.

  • Add option ListenChar(-1): This only disables spilling of typed characters into the Matlab/Octave command window (like ListenChar(2)) but without enabling keyboard listening (GetChar et al.). This allows to use character suppression in parallel to use of Keyboard queues.

  • Add replacements psychwavread/psychwavwrite for wavread/wavwrite which were removed in Matlab R2015b. Used in our audio demos to provide a less brain-dead approach to basic backward compatibility than Mathworks.

  • Robustness improvements and/or bug fixes and/or help text updates to AutoBrightness, GazeContingentDemo/BubbleDemo, HighColorPrecisionDrawingTest, MeasureDpi, Kbqueues, BitsPlusIdentityClutTest, KbCheck, Screen(‘CopyWindow’), OSX legacy CoreText renderer, FrameSequentialStereoTest, GetEchoString, GetKbChar, DrawFormattedText, PsychHIDTest…

  • Windows: Allow Screen(‘LoadNormalizedgammatable’) to load > 256 slots gamma tables to devices like CRS Bits# or VPixx Datapixx. GPU hw gamma tables are still limited to 256 slots due to OS restrictions.

  • GetEchoString and AutoBrightness: Cosmetic and help text fixes.

  • XOrgConfCreator: Slightly more robust error handling against broken graphics setups.

  • Screen(‘DrawDots’): Make shader-based path more friendly to gpu drivers.

  • Add udev rule for potentially simplified use of Griffin Powermate on Linux.

  • Some improvements by the Brainard lab to PsychColorimetric utility routines.

  • Other small improvements here and there.

News Archive