Below is some of the software that I've put together over the last few years to help with various aspects of my academic work. All of it is available for free, under a creative common (share-alike) licence. Much of this code continues to be developed, and you are welcome to email me for the latest versions. I'd love to hear about what you're up to, and if you make any improvements/modifications then please let me know!

Further code (including more complex projects) can be found at:

LaTeX ----------------------------------------------------------------------------

ihr-thesis  ·

A class for formatting a PhD thesis, loosely inspired by classes provided by University of Edinburgh and the University of Cambridge. It supports PdfLatex and Latex.

JASA-EL  ·  jasaExpressTemplate_v5.tex

JASA-EL publications have a 6-page limit, but it is not obvious how that translates to word-count/content. To help with manuscript preparation, this LaTeX template reproduces the JASA-EL typesetting. It is accurate to within about 1 line per page. It's also just a really ncie looking letter template (imho)

Matlab ----------------------------------------------------------------------------

wiibalance  ·

A class for interfacing with the Nintendo Wii Balance Board, via WiiLab.

QUEST+  ·  QuestPlus.m

An implementation of Beau Watson's extremely efficient/flexible QUEST+ algorithm for adaptive psychophysical parameter estimation. The future is now!

ivis  ·

A toolbox for eye-gaze conditional psychophysical experiments. It automates much of the data processing, and provides simple commands for handling common tasks associated with eye-tracking.

fig-matlab  ·

A toolbox for producing publication-quality figures. It initially started as a collection of the most useful entries on FileExchange, but has grown to have some handy features of its own. It is particularly well suited to producing Lattice plots (matrices of contiguous subpanels). This code is buggy in places, but excels at specific tasks (examples included).

Tobii Eye-X Binding  ·

Some proof-of-concept code, showing how to retrieve data from a Tobii Eye-X (budget) eye-tracker, in near real-time. The trick is that the Tobii EyeX relies on callbacks, but the Tobii C library is unable to invoke Matlab functions directly. It is therefore necessary to construct an intermediate 'mex' layer, which buffers the incoming data, and can be manually 'polled' by the user's Matlab code. More details and discussion of this code can also be found on the Tobii EyeX developer forum

Matlab/Arduino LED Pixels  ·

Code for controlling Adafruit 12mm LED Pixels using Matlab (via Arduino). More details and discussion of this code can also be found in the following paper: Digital LED Pixels: Instructions for use and a characterization of their properties

EIZOSensor  ·

Code for controlling EIZO's built-in photometer. Raw c++ code includes instructions for use, and how to compile (requires EIZO's official SDK). A precompiled .mex32 version is included (for 32-bit Matlab running on Windows) .

Sn  ·  RousseeuwCrouxSn.m

An implementation of Rousseeuw & Croux's Sn factor (a non-parametric measure of spread, useful for identifying numerical outliers).

VfPlot  ·  VfPlot.m

Code for plotting HFA (Humphrey Field Analyzer) style greyscales based on raw DLS values (Differential Light Sensitivity, in dB). Includes the ability to automatically compute and display the Integrated Visual Field (IVF) based on specified left/right monocular values.

Java ----------------------------------------------------------------------------

Qube  ·

Abandon-ware. Qube was my attempt to make a 'Tetris style' auditory-training game in Java. The tricky bit was implementing some kind of real-time audio engine. The game mostly works, but frankly, I got a bit bored and gave up with it. Anybody is welcome to the sourcecode if they want to mess about with it.