PTB beta released 6.6.2010 (SVN Revision 1737)
This summarizes all new beta features from 11.1.2010 up to 6.6.2010. The list of improvements is likely incomplete as always. For detailed logs, click this link.
Some users of Microsoft Windows may encounter an error during update or download of the toolbox. On failure, the installer will give you instructions on how to download and install updated copies of the Microsoft Visual C runtime libraries to make Psychtoolbox work again. This is a required upgrade, forced by some changes in Microsofts OS.
These updates introduce various bug fixes and enhancements. Especially
the Screen
and PsychPortAudio
and Datapixx
drivers as well as the
image processing pipeline and many demos and drawing functions have been
improved again.
PsychPortAudio
sound driver
- Bugfix for audio artifacts due to “wraparound errors” in the Portaudio sample converters. Could cause audio artifacts if sound samples reached the (legal) signal level 1.0 and the soundcard expected audio data converted to 24 bit integer or 32 bit integer format. This mostly affected some ASIO soundcards on Windows.
- Perform clamping of audio output signals to valid -1.0 to +1.0 range in all modes by default, instead of only in non-low-latency mode as in previous versions of the driver. Allow to change defaults for dithering and clamping in the ‘Open’ function.
- On Windows with some ASIO soundcards and on Mac OS with some
external soundcards, direct input monitoring is supported. This
requires hardware support by the soundcard and allows to feed back
sound from the soundcards inputs (microphone etc.) to its outputs
with minimal latency. Most soundcards don’t support this feature, so
you’ll need to use
PsychPortAudio's
software implementation which has a slightly higher latency. - Improved support for sound schedules: Now allows to specify and
schedule onset/offset/pauses of sounds wrt. to the system clock,
i.e., in the same timebase as
GetSecs
and all other timestamps in Psychtoolbox. - Support for virtual audio devices and mixing: Allows to open a
physical soundcard as a master device, then create multiple “slave
devices” which attach to different channels of the master device.
Output of multiple slave devices is combined/merged/mixed and send
to the master device. This allows to play back multiple independent
soundtracks simultaneously and with independent control of content,
timing and volume. Also allows to address each channel or set of
channels on a card separately. New function
PsychPortAudio('OpenSlave')
controls this functionality. - Support for capturing and recording the mixed output stream as it gets sent to the real soundcard, e.g., for feedback, testing, debugging and documentation purpose.
- Support for per device and per channel gain and volume control via the new ‘Volume’ function.
- Support for precisely timed amplitude modulation (AM) of each
virtual audio output slave device by definition of time series of
gain values which can be applied with sample-accurate timing. Cfe.
BasicAMAndMixScheduleDemo
for demo of AM modulation, volume control, mixing and scheduling support. - Option to resume playback in a ‘Start’ call where it was last ’Stop’ped, instead of restarting at the beginning.
Serial port hardware support
- Some performance improvements to
IOPort
and some parameters to allow to workaround operating system / serial port driver bugs on some setups. CMUBox
driver for serialport or USB response boxes now supports also thefORP
device when connected via a serial port and to use theUBW32/Bitwhacker
as a response button box.
Improvements and bug fixes to Screen and other drawing functions – The Visuals
- Further improvements to high precision visual stimulus onset timing and timestamping. Also added new tests and workarounds for various broken graphics drivers on Windows and Mac OS.
- Experimental support for
OpenML
based visual stimulus onset scheduling and timestamping for GNU/Linux. This is an opt-in, work in progress. Not yet ready for mainstream use, but will allow to take advantage of Linux special facilities, once they are completed and stable. - Support for NV_swap_group and SGIXX_swap_group extensions on
Linux and Windows. Some professional grade graphics cards, e.g.,
some AMD
FireGL/FirePro
cards and some cards do support these extensions in hardware. These allow to perfectly synchronize bufferswaps and visual stimulus timing across multiple windows, displays, graphics cards or even different nodes on visualization clusters.Screen
will automatically use these extensions if they are present and a dual-display stereo mode or other dual display / multi window mode is used. - Support for creation and writing of Quicktime movie files on Mac OS
and Windows. Allows to create and write movie files. Currently only
supports one video track per movie and doesn’t support soundtrack.
Works with any codec supported by Quicktime.
ImagingStereoDemo
contains test- and example code to demonstrate usage. Can create a movie which records the animated stereo display. - Various bugfixes and help text updates.
- The imaging pipeline
PsychImaging
in conjunction withPsychColorCorrection
now also allows to apply automatic display vignetting correction aka shading correction to automatically compensate for spatially varying differences in luminance or per color gains of display devices, e.g., due to lense vignetting on projectors.VignetCalibration
implements an interactive calibration procedure,VignettingCorrectionDemo
andAdditiveBlendingForLinearSuperpositionTutorial
demonstrate how a calibration is applied for realtime vignetting correction. ScreenDrawDots
is a reimplementation for theScreen('DrawDots')
function to allow smooth dot drawing on broken Mac OS 10.6.3 systems.PsychDrawSprites2D
allow for drawing of large numbers of similar textures, so called Sprites. It behaves exactly likeScreen('DrawDots')
, except that it doesn’t draw dots, but little copies of a given texture, with selectable size, position, rotation and color. This is demonstrated inDotDemo
by passing an optional flag.- A new
Sadowski-Illusion
demo. - Full support for the VPixx technologies DataPixx device on all
platforms, except Apple
PowerPC
and Windows with Matlab versions before V7.4 (R2007a). All special graphics display functions (stereo, multi-display, mirroring, high precision color and luminance display) are supported viaPsychImaging
, e.g., demonstrated inBitsPlusCSFDemo
,AdditiveBlendingForLinearSuperpositionTutorial
andImagingStereoDemo
. Timestamping functionality and other convenience functions, as well as audio capture and voice keys are available viaPsychDataPixx
andDatapixxAudioKey
,PsychPortAudioDatapixxTimingTest
. Seehelp DatapixxToolbox
. All low-level features are supported via theDatapixx
mex file driver. - OpenGL for Matlab and Octave: Add support for GLU tesselator functions.
- New
DotRotDemo
for rotating dot fields by Keith Schneider.
Misc stuff
- Many new and improved display calibration, gamma correction and color handling routines by David Brainard’s lab.
- Some improvements to general toolbox routines by Diederick Niehorster.
- Support for later models of the
RTBox
response button box in thePsychRTBox
driver. - Bugfixes and workarounds for the latest collection of bugs in Mac OS/X Snow Leopard 10.6.3 and MS-Windows.
- Compatibility fixes to mex files to provide good support for Ubuntu Linux 10.04 LTS “Lucid Lynx”.
Enjoy!