A presenter for human subject experiments currently tuned for fMRI
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A presenter for human subject experiments currently tuned for fMRI.

NOTE: This package is currently broken by a Chicken bug in the bind egg. Patches to it have been submitted, but until they are accepted this is not useable without a custom bind egg.


To compile you'll need a few chicken eggs which can be installed with:

  chicken-install -s xlib random-bsd format traversal scheme2c-compatibility linear-algebra qobischeme-ui

You can then run make which will build a presenter binary in the current directory.


You'll need an fMRI experiment generated by our scripts whose root directory is <root></root>

  ./presenter \
     -runs-directory &lt;root&gt;/design&#45;for&#45;8&#45;blocks/presenter/ \
     &amp;lt;root&amp;gt;&amp;lt;/root&amp;gt&amp;lt;/stimuli/&amp;gt;&lt;/root&gt;&lt;stimulus&#45;video&#45;fps&gt;&lt;/stimulus&#45;video&#45;fps&gt; &lt;stimulus&#45;video&#45;length&gt;&lt;/stimulus&#45;video&#45;length&gt; \
     -tr &lt;triggers&#45;per&#45;tr&gt;&lt;/triggers&#45;per&#45;tr&gt; &lt;seconds&#45;per&#45;tr&gt;&lt;/seconds&#45;per&#45;tr&gt; \
     -disable-preview \
     -window-position 800 0

Triggers are keypresses (5 or T). It's best not to use the keyboard while the experiment is running.

The presenter brings up two windows: a viewer and a UI. The viewer is what the subjects are intended to see.

When the UI comes up it will be configured for the 9events experiment by default. The '-run' and '1+' buttons decrement/increment the current run number for the experiment. Select the run you want to do, click start, it will print 'setting up' in the UI for about a minute or so and then say 'starting'. (Wait until the localizer scans are done before clicking 'start' as any stray triggers might start the experiment early.) Once it prints 'starting' in the UI will will also print 'waiting for trigger' on the console. Once you see that you can fire up the scan.

As the scan progresses it will print what it thinks is the current TR to the console. At the end of the scan it should stop and write a log file that looks like:


If it doesn't stop on its own, just click the stop button.


Andrei Barbu, andrei@0xab.com

   Copyright 2013 Andrei Barbu, Purdue University. All rights reserved.
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   GNU Lesser General Public License for more details.
   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see http://www.gnu.org/licenses.