PTB BETA update released...

...about a week ago. These are the highlights i can remember:

* Various bug fixes and small improvements.

* Some new demos and functions.

* Quest: Now handle multiple interleaved Quests efficiently without
trashing memory.

Quest maintains internal arrays with the selected stimulus levels and subject responses for each trial. Up to now these arrays were grown dynamically at each trial. This can cause memory fragmentation and lead to Matlab out-of-memory errors, and sometimes even hard crash of Matlab, even if there is enough memory available. The specific troublemaker was an 18-fold interleaved quest. From now on, Quest allocates memory in large chunks to avoid or reduce memory fragmentation and potential slow down. Quest allocates space for 10000 trials as soon as QuestUpdate is called the 1st time. It will reallocate for 20000 trials if a total of 10000 trials is exceeded and so on.

In practice this means that Quest's q data structure will now occupy at least 160 Kb of memory instead of 1 Kb or so, with most of the q.intensity and q.response arrays zero-filled and only the first q.trialCount elements containing meaningful values. But 160 Kb is not a big price to pay on todays hardware for speed and stability gains.

* Timing precision poster for PTB's visual onset scheduling and timestamping included in PsychDocumentation/ subfolder.

* GStreamer based movie playback support for GNU/Linux.
Experimental GStreamer support for Windows.

Movie playback is now supported on Linux as well via the free software GStreamer multi-media framework. This is a first working implementation and i'm sure there are still some bugs or suboptimal behaviours for some use cases, but it works already pretty well and should be quite useable for most standard applications. Getting Quicktime to work as well as it does now took over a year of tuning and refinement and i'm happy to say that the GStreamer implementation is already almost as good after only one weekend of coding - A very pleasant toolkit to use. The plan is to implement video capture from consumer devices, video recording and movie creation based on GStreamer as well, so Linux implementation of these features should be as good as or better than the current Quicktime OS/X implementation pretty soon.

The plan is to use GStreamer on all platforms for these functions in the future, as soon as the Linux implementation is mature and feature complete enough, and then to get rid of Quicktime and other strong dependencies on Apple proprietary technology and their annoying arbitrary technical decisions in the recent past. This should result in added functionality and no loss in existing functionality.

Especially the future 64 bit versions of PTB won't support Quicktime anymore. I will add GStreamer support to the OS/X ptb soon and there is already experimental support for MS-Windows. This is currently optional, but people who want to test it already, feel free to give feedback.

The Linux PTB will no longer work on systems without GStreamer installation, but the installer should abort the download and provide installation instructions for GStreamer if needed. Typing "help GStreamer" provides these instructions as well. For reference, this is the link to the help text:

<http://svn.berlios.de/wsvn/osxptb/trunk/Psychtoolbox/PsychDocumentation/GStreamer.m>

* PsychKinect driver for the Microsoft XBOX360 Kinect on Linux and Windows.

Finally we have a first prototype version of a driver for Microsoft's XBOX360 Kinect, currently only tested on Windows and Linux, may or may not work on OS/X (i didn't manage to get the underlying library to work on my slightly outdated OS/X system). You need to install the free Kinect driver library libfreenect for this to work. See "help InstallKinect" for installation instructions. See KinectDemo and Kinect3DDemo for demos.

The Kinect <http://en.wikipedia.org/wiki/Kinect> is a cheap (150$) but powerful "depth camera", a webcam that doesn't only capture color images at 640x480 pixels RGB with 30 fps, but also corresponding depth images of the scene. It was meant as a new input controller exclusively for the Xbox 360 game console, but since somebody managed to write an open source driver for using it on normals pc's, the hacker community went wild and found lots of interesting new applications for it. It's the latest darling of the computer vision, robotics and human gesture input research communities, because it makes some applications tremendeously cheap which required really expensive (multiple 10k $$) equipment just a month ago. For inspiration, see for example:

<http://www.youtube.com/watch?v=ppHcj15LypM>
<http://www.youtube.com/watch?v=Brpu30vjCa4&feature=related>
<http://www.youtube.com/watch?v=KW9of1Ud0uo&feature=related>
<http://www.youtube.com/watch?v=3EeJCln5KYg&feature=related>

Background info:

<http://openkinect.org/wiki/Main_Page>
<http://www.openni.org/>

enjoy,
-mario