About MonkeyCantab

Top  Next





Cognitive test battery for animals.

Written for the University of Cambridge.

The battery includes:


Reinforcement familiarization
Touchscreen training


Ambiguous Cue Task (ACT)
Concurrent Discrimination (CD)
Concurrent Schedules (CS)
Continuous Performance Task (CPT)
Conditional Visual Discrimination (CVD)
Delayed matching and non-matching to sample (D[N]MTS)
Dual-Reward Ambiguous Cue Task (DRACT)
Impulsive choice (delayed/probabilistic reinforcement choice task)
List-based Delayed Matching/Non-matching to Sample (ListDMS)
Multiple-choice serial reaction time (MCSRT[T])
Multireinforcer Search Task (MST)
Paired-associates learning (PAL)
Rapid Visual Information Processing (RVIP)
Reversal learning
Self-ordered [spatial] search (SO[S]S, a.k.a. spatial working memory, SWM)
Simple schedules of reinforcement
Spatial Discrimination (SD)
Stimulus-stimulus paired-associates learning (SSPAL)
Variable delayed response (VDR), a.k.a. delayed matching/non-matching to position (DMTP, DNMTP).
Visual discriminations (simple and compound) with reversal and intradimensional and extradimensional set-shifting
Probabilistic concurrent discrimination (PCD).


Citing MonkeyCantab


Please cite as, for example:


(in text)

The task was implemented in the MonkeyCantab program (version [INSERT VERSION NUMBER], R.N. Cardinal) using the Whisker control system (Cardinal & Aitken, 2010).


(in bibliography)

Cardinal RN, Aitken MRF (2010). Whisker: a client–server high-performance multimedia research control system. Behavior Research Methods 42: 1059–1071. (PubMed ID: 21139173. DOI:10.3758/BRM.42.4.1059.)


Software requirements


Requires Whisker v2.7 or greater (www.whiskercontrol.com).


Data storage


Text-based output to disk.
ODBC data storage to a database (supplied).




Rudolf Cardinal (rudolf@pobox.com).


Some ancestry (for MonkeyCantab, CANTAB, and Whisker) with key references


PMID means PubMed ID (http://www.pubmed.com/).


Roberts AC, Robbins TW, Everitt BJ (1988). The effects of intradimensional and extradimensional shifts on visual discrimination learning in humans and non-human primates. Q J Exp Psychol B 40: 321–341. PMID 3145534. [Human and non-human performance on the same ID/ED paradigm.]
Sahakian BJ, Morris RG, Evenden JL, Heald A, Levy R, Philpot M, Robbins TW (1988). A comparative study of visuospatial memory and learning in Alzheimer-type dementia and Parkinson's disease. Brain 111: 695–718. PMID 3382917. [Early human work using cross-species paradigms.]
Roberts AC, Robbins TW, Everitt BJ, Jones GH, Sirkia TE, Wilkinson J, Page K (1990). The effects of excitotoxic lesions of the basal forebrain on the acquisition, retention and serial reversal of visual discriminations in marmosets. Neuroscience 34: 311–329. PMID 2110326. [Subsequent early marmoset touchscreen task.]
Roberts AC, Robbins TW, Everitt BJ, Muir JL (1992). A specific form of cognitive rigidity following excitotoxic lesions of the basal forebrain in marmosets. Neuroscience 47: 251–264. PMID 1641123. [Another early marmoset touchscreen task.]
Sahakian BJ, Owen AM (1992). Computerized assessment in neuropsychiatry using CANTAB: discussion paper. J R Soc Med 85: 399–402. PMID 1629849. [First review of CANTAB.]
Robbins TW, James M, Owen AM, Sahakian BJ, McInnes L, Rabbitt P (1994). Cambridge Neuropsychological Test Automated Battery (CANTAB): a factor analytic study of a large sample of normal elderly volunteers. Dementia 5: 266–281. PMID 7951684. [Establishing human CANTAB norms in the elderly.]
Cardinal RN, Aitken MRF (2010). Whisker: a client–server high-performance multimedia research control system. Behavior Research Methods 42: 1059–1071. DOI 10.3758/BRM.42.4.1059. PMID 21139173. [Whisker.]




Thanks to Mike Aitken, Shibley Rahman, Hannah Clarke, Susannah Walker, and Laurence Argyle for helpful discussions regarding the ID/ED, PAL, SWM, and reversal learning tasks.




Copyright © Cambridge University Technical Services Ltd


Revision history


27 March 2003. Started (version 0.1).
8 April 2003. Version 0.1 released for spatial working memory researcher. Currently up and running: general parameters, reinforcement familiarization, schedules of reinforcement, spatial working memory. Other tasks disabled.
11 April 2003. Version 0.2: RF, TT, VD-predefined, VD-superimposed, D(N)MTS, SWM, MCSRTT, schedules.
6 May 2003. Version 0.3: reversal learning in; general controller bug fix (punishment sound Y/N mixed up with reward sound Y/N); SDK bug fix (filenames not enclosed by quotes); visual discriminations bug fix (rewarded stimuli left up for too long); PAL in. Display caching added to all tasks. Released within University of Cambridge.
7 May 2003. Version 0.4: changes requested by CamCog. Two additional output lines, REINFORCEMENT_INFO and STIMULUS_INFO, added (see Required Devices); REINFORCEMENT_INFO gives 10ms pulses on reward, 20ms pulses on punishment; STIMULUS_INFO is high when stimuli are being displayed in ID/ED tasks (both varieties) and reversal task (during choice phase only, not when stimuli are left up during reward); option to enforce that an empty box is the last to be displayed in the sample phase of PAL. New configuration file version number. Option to use offset grids with central dispenser (but actual grids for this not yet implemented). Modifications to PAL (4-way edges grid; option to shuffle presentation order when repeating trials). Background touches recorded in SWM.
24 July 2003. Added predefined stimulus sets. Now requires WhiskerServer 2.6.8 or greater (with CamcogQuadStimulus built in to the server).
30 July 2003. Version 0.5: DMTS and TouchTraining (and, indeed, pretty much all tasks) now compatible with previous CamCog as well as University of Cambridge tasks.
11 March 2004 (approx). Version 0.9. Numerous bug fixes and improvements; see www.whiskercontrol.com/version_tracker/MonkeyCantab.txt
6 May 2004. Version 0.91. Changes to PAL stimulus order and WAV file volume selection.
May 2004. Version 0.92. SWM bug fixed (all touches were erroneously punished if there was no "delaying tactic" between consecutive stimuli).
4 June 2004. Version 0.93. For full details see the version tracker (as above). Summary of changes follows. (1) Visual discriminations: if there is an SR (simple reversal) stage, the compound discrimination (+/- compound reversal) stimuli are altered such that there is no longer a reversal upon shifting from SR to CD. Nor is there a reversal moving from SD to CD if no SR stage is used. (2) Visual discriminations and Reversals: ITI touches are recorded, and (optionally) punished. (3) D(N)MTS: task variant with simultaneous presentation of phase 1/2 stimuli. (4) SWM: probe trial facility.
25-29 June 2004. Version 0.94. Several new facilities added to the MCSRT task.
6 July 2004. Version 0.95. Now informs user of problems encountered when saving configuration files.
13 July 2004. Version 0.96. Choice of background colour.
20-31 August 2004. Version 0.97. Record all events (or, at least, all that seem even vaguely relevant, with a generic event-recording facility so if someone decides something else is important it's easy to add!).
15 October 2004. Version 0.98. Bug fixed in DMTS location recording. Allows zero distractors in phase 2 of DMTS (for training). Bug fixed in DMTS: correction procedure failed to wait for finger to be removed from touchscreen (so always registered incorrect touch). Now it requires finger to be removed after end of phase 2 (but will still start correction procedure, i.e. phase 3, if subject removes finger and retouches before start of correction procedure). SWM allows reward to be delivered after every correct touch (not just on completion of trial). Bug fix, MCSRTT: if lever was used as centring response, background touches were treated as if the lever had been released, even with "Ignore other responses..." ticked. Task alteration, MCSRTT: "absent stimulus" markers appear right from the start of the trial, not just at the end of Phase 1. Bug fix, DMTS: correction procedure for simultaneous presentation didn't remove inert target copy from the screen during punishment. Task modification, DMTS: new colour-variation scheme (Seven Colours Per Trial) to mimic Weed et al. (1999) Cognitive Brain Research 8: 185.
Version 0.99 (24 Oct - 16 Nov 2004). ET_REV_OMISSION and ET_VD_OMISSION events added. VDS/VDP, EDSHIFT stage: text instance of "B5A6(+)B6A6(-)" should have read "B5A6(+)B6A5(-)" (no execution bug, just descriptive). Database changed: MonkeyCantab_IndividualEvents.Box now long int, not byte (allows relationship from MonkeyCantab_GeneralConfig); CRecordSetIndividualEvents also changed; tested with database still using BYTE format: works. Comma-delimited output for MCSRT misaligned (no comma between Phase1Given and Phase1Responded in header). MCSRT params shrunk to fit an 800x600 screen. MCSRT bug fix: if premature touches were not punished by ending the trial, movements across/within a premature stimulus were counted incorrectly as multiple premature responses. MCSRT bug fix: "ignore responses during Phase 1" flag partially backwards. DMTS task has draw-without-replacement option for Phase 1 and Phase 2 Target locations (to give pseudorandom rather than random location assignment). DMTS: phase 1 location selection when adjusting for a central feeder was not as advertised (it just alternated between middle-left/middle-right positions, ignoring user preference); fixed. DMTS: explicit recording of Phase 1 and Phase 2 Target locations in database.
Version 1.0 (17 Nov 2004). Up to 7 distractors in DMTS (but note: since the automatic stimulus-varying procedures available to DMTS generate stimuli in groups of 4, the stimuli generated by these procedures with other total numbers of stimuli per trial are not guaranteed to follow the same rules as with 4 total stimuli per trial). Draw-without-replacement system for MCSRT target location. Response location recorded for DMTS.
Version 1.1 (9 Dec 2004). Improved bitmap centring function. Reinforcement Familiarization: background colour now works; bug fixes ("maximum no. reinfs" didn't work with the lick-contingent FR1 option, and spurious fall-though to main schedule caused by ==/= error). MCSRT: option to measure Phase 2 maximum response time from the end (rather than the start) of the stimulus; bugfix (distractor code erroneously removed a location from viNontargetLocations - so the final non-target pulled from an empty vector).
Version 1.2 (26 Jan 2005). DMTS: option to draw levels without replacement. MCSRT: option to draw without replacement for (1) pre-stimulus delay; (2) stimulus duration. Option to have trials initiated by a lever/switch response, for use with dogs (see Use with dogs).
Version 1.3 (10 Feb 2005). Bugfix to DMTS level DWOR.
Version 1.4 (22 Mar - 3 Apr 2005). New DMTS stimulus generation methods to improve performance with >4 stimuli per trial; option to rotate Phase 2 stimuli in DMTS; option to jumble variant order; bugfix for simultaneous option. Attempt at bugfix to MCSRT - lever reported to be responsive at times that it shouldn't have been. Option to allow mouse input as well as touchscreen input.
Version 1.5 (21 Apr - 4 May 2005). Cosmetic/convenience change to ID/ED configuration dialogue. Changes to SimpleSchedules (relating to what was displayed during reinforcement timeouts or during reinforcer-device-busy states.
Version 1.6 (18 May 2005). When levers are used to initiate trials, the lever response now terminates all ongoing sounds, notably the Marker 1 sound.
Version 1.7 (30 May 2005, 4 Sep 2005). 3, not 2, decimal places in DMTS/MCSRT dialogue boxes displaying floating-point values. Lick latency in Touch Training task.
Version 1.8 (21 Sep 2005). ReinfFamil was inappropriately proceeding out of "totally free juice" to FR1.
Version 1.9 (10 Oct 2005). Visual discrimination tasks had a bug in the Harsh correction procedure, such that no stimuli were shown on correction trials.
Version 1.91 (30 Oct 2005). MonkeyCantab_GeneralConfig.ModuleList changed from String(255) to Memo to accommodate very long module lists.
Version 2.0 (7 Jan 2006). Clock on main display. // End-of-task summaries on screen, from Reversals, VDP, and VDS. // Support for extra "debug" views showing touches, with WhiskerServer v2.12.1 and higher. // Ability to specify stimulus locations manually in MCSRT. // Marker 2 sound option in MCSRT. // Option for alternative targets within a single test in MCSRT. // Background rectangles added to Camcog ID/ED stimuli.
Version 2.1 (10 Jan 2006). Option to leave stimuli up during reward in TouchTraining. // Option to punish ITI touches in TouchTraining. // "Copy module" button.
Version 2.2 (11 Jan 2006). Option to punish, rather than reward, touches during TouchTraining. (A rather specialized option!)
Version 2.3 (13 Feb 2006). Option to deliver free rewards manually.
Version 2.4 (16 Feb 2006). Command-line automated execution.
Version 2.5 (21 Feb - 2 March 2006). Option to repeat entire DMTS trial following errors (either at phase 1 or phase 2) until the subject gets the trial right.
Version 2.6 (8 Apr 2006). Bug fixed that could cause delayed non-matching to lock up ("waiting for finger release before starting correction procedure") under some circumstances (responding incorrectly in phase 2 and releasing finger while phase 2 incorrect-target stimulus still on screen). // Option to make S+/S- stimulus selection wholly predictable in DMTS.
Version 2.7 (29 Apr 2006). DMTS problem described above still not fixed - may be a hardware fault. As a workaround, implemented an optional feature: "wait for finger release before proceeding but never for more than X seconds (user can specify X)".
Version 2.8 (24 May 2006). Now autoupdates data file name on first entering subject ID. // Improved error message if data file already exists.
Version 2.9 (July-August 2006). Improvements to DMTS in terms of ability to vary the number of distractor/nontarget objects within a session.
Version 3.0 (9 Sep 2006). Option improvements to reversal learning (limiting the number of reversals possible; improved draw-without-replacement method for spatial randomization).
Version 3.1 (22-28 Dec 2006). In TouchTraining, the stimulus eventually moved when it was the final size, regardless of whether the "Move" option was ticked; this bug has been fixed. // An option has been added to query the size of a stimulus (in units, and as proportions of the active screen size). // "Strict touches" option for all tasks (though mandatory for SimpleSchedules). // Time since last subject response is shown on the main display. // Separate specification of maximum response times for phase 1 and phase 2 in DMTS.
Version 3.2 (22-23 Jan 2007). New monochrome option (monochrome, shape-only discrimination, fixed colour, i.e. colour fixed by the experimenter) for DMTS.
Version 3.3 (27 Jan 2007). Bug fixed in v3.2: monochrome option didn't work properly with shape shuffling.
Version 3.4 (8 March 2007). Easier compilation for users. Option to stop ID/ED tasks after a criterion has been met (not just to increase the stage).
Version 3.5 (30 March 2007). "Side task" (location discrimination) option in Reversal Learning task.
Version 3.6 (21 May 2007). Bug fixed in Spatial Working Memory (SWM or SOSS) task: sometimes, double touches to a stimulus were erroneously ignored because the system failed to notice all finger removals. Fixed.
Version 3.7 (24 July 2007). Minor bugfix: SimpleSchedules miscalculated the cosmetic version of its end time.
Version 3.8 (18 Aug 2007). Made the "assume finger released but the touchscreen missed it" setting easier to configure for SimpleSchedules (for which it is mandatory), and added explicit recording of this event.
Version 3.9 (14 Sep 2007). Bugfix to ensure no attempt is made to play zero-length sounds (they may have created an undesirable "pop"). Also, option to disable houselight entirely.
Version 4.0 (from 25 Oct 2007). Delayed reinforcement ("impulsive choice") task added.
Version 4.1 (21 Dec 2007). Bug fix in SimpleSchedules - "assume finger removed" was not always detected correctly.
Version 4.2 (26 Dec 2007). Two-choice option for multiple-choice serial reaction time task.
Version 4.3 (7 March 2008). Visual stimulus options for reward/punishment.
Version 4.4 (from 30 Apr 2008). Pellet collection latency via the MAGAZINE_DOOR device. Some additional reward collection latency measures. Minor bugfix in text file out from SWM (see version tracker).
Version 4.5 (11 May 2008). MAGAZINE_LAMP device.
Version 4.6 (24 Sep 2008). Enhanced options for leaving stimuli on screen after choice in Reversals, VisualDiscrimPredefined, VisualDiscrimSuperimposed.
Version 4.7 (19 Oct 2008). Option to specify "false feedback" trials more precisely (pseudorandomly, not randomly) in Reversals.
Version 5.0 (12 Jan 2009). (1) Server default now "localhost", not "loopback" (for Windows Vista compatibility and more general standardization). (2) Touch events no longer requested for nontouchable object components. (The check that at least one component is touchable remains as a warning in the "Configure visual objects" dialogue.)
Version 5.1 (26 Apr 2009). Recompilation on Visual Studio 2008, with a couple of very minor bug fixes (see version tracker). Also, change of random number generator (to use the Boost libraries). There was a previous bug requiring, we think (1) MonkeyCantab to use its previous Mersenne Twister library; (2) it to be compiled with Visual C++ 6.0; (3) particular sound card drivers to be active. We can only guess that this was some fault in low-level floating-point code: on about 14 per 100,000,000 iterations, there were errors in converting float to int values, but only when multiple sound cards were being accessed (and the compiler settings as above). The bug manifested itself as a silly number coming back from the random number generator, and MonkeyCantab seeming to wait for ever.
Version 5.2 (8 May 2009). Further work on random numbers versus funny sound cards. Further workaround installed; see version tracker. Also, XML format for CamcogQuadPattern changed for compatibility with other XML parsers; see version tracker.
Version 5.3 (11 May 2009). Option for darkness to accompany reward.
Version 5.4 (11 May 2009-8 June 2009). RVIP task.
Version 5.5 (26 June 2009). Non-target option in five-choice task.
Version 5.6 (27 June 2009-19 July 2009). List-length DMTS task. Also, changed memory delay timing for DMTS in the specific case when Phase 1 responding is rewarded: the memory delay used to begin at the end of the reward, and now it begins at the start of the reward (with an extra check that the memory delays must all exceed the maximum reward time). Also, an off-by-one error in DMTS (in the "avoid stimuli used in the last N trials" option) fixed. And DMTS modification: memory delay now begins at start (not end) of phase 1 reward, if that is used (not that phase 1 rewards are a very sensible option!). See version tracker for full details.
Version 5.7 (July 2009). Concurrent Discrimination and Spatial Discrimination tasks added (currently restricted to Cambridge users).
Version 5.8 (Aug 2009). (1) External tool convert_stm_to_monkeycantab_xml.pl. (2) Help launcher fixed, after some change in Windows broke it. (3) Option to stop VisualDiscrimP/S tasks after a certain stage.
Version 5.9 (Jan 2010). Fix (1) hanging-around-at-the-end bug in ListDMS; (2) occasional crashes in ListDMS. Add (1) option to have "time without distractors" begin at A and increase by B periodically to RVIP and (3) similarly for the "time for which subject must respond" option in MCSRT. (4) PAL training option to allow only one real choice. (5) PAL training option to ignore incorrect choices. (5) Improved scheduling  algorithm for ListDMS.
Version 6.0 (3 Feb 2010). Tightening up the ListDMS scheduling safety margins.
Version 6.1 (19 Feb 2010). Alternative on-the-fly ListDMS scheduling system. Also, correction to Phase 1 latency calculation: was calculated from trial start time, should have been from phase 1 start time (the difference is only relevant for trials starting with a lever press). And, "reward phase 1" was presented as an option but was non-functional, for timing reasons; now added back in. And scheduling-in-clusters option for ListDMS.
Version 6.2 (28 Feb 2010). Fix to dumb bug in ListDMS on-the-fly scheduler; see version tracker. Also, WAV file duration was taken as 0 for the ListDMS scheduler, but taken as the non-WAV sound length for actual live calculations, leading to a timing conflict. From now, task continues not to calculate actual WAV file length (for a variety of pragmatic reasons) but will schedule them, and wait for them, for the time specified by the user (so the duration becomes an editable field even for WAV files).
Version 6.3 (5 Mar 2010). Additional "progressive" options for RVIP and MCSRT.
Version 6.4 (8 Mar 2010). Option to enforce "subnesting" for ListDMS.
Version 6.5 (24 Apr 2010). Performance update to some database stores (e.g. PAL).
Version 6.6 (6 May 2010). Further database performance improvements.
Version 6.7 (15 May 2010). New SHAPE input line required, and used for giving manual rewards from an external digital input.
Version 6.8 (19 May 2010). Option to enable shaping input from the command line.
Version 6.9 (14 Aug 2010). Options for ID/ED tasks (VDS, VDP) to set a criterion for the maximum number of trials per subtask.
Version 7.0 (21-30 Aug 2010). "Kick" function and network integrity test, both for investigating a problem of uncertain cause (?hardware ?software) in PAL.
Version 7.1 (30 Aug-6 Sep 2010). MCSRT latency measurements for non-retractable levers. Ongoing work on hard-to-replicate PAL stimulus positioning bug.
Version 7.2 (8-13 Sep 2010). Ongoing work on PAL stimulus positioning bug. Option whereby touches reset memory delay and/or time between trials for PAL and DNMTS.
Version 7.3 (7 Oct 2010). F1 help key works everywhere, not just help button on main screen.
Version 7.4 (14 Oct 2010). Still working to address an intermittent floating-point overflow error not seen on most machines.
Version 7.5 (4 Nov 2010) and 7.51. Ditto.
Version 7.6 (10-24 Nov 2010). Apparent bug in PAL looks like it is probably not a bug, but an intermittent error in all calculations using the FPU when certain sound card drivers are active (see also version trackers for MonkeyCantab v5.1 and WhiskerServer between v2.12.9 and v2.12.10). As of 20 Nov 2010, it appears that a SoundBlaster Audigy driver (driver itself dated 7/7/2005) intermittently breaks the FPU for unrelated tasks (not even using sound) under Windows XP. The bug was reproducible by using Sound Recorder and simple floating-point test code only (which produced intermittently wrong numbers when two sound cards were in use, one of them the SoundBlaster). We had suspected DirectX (which can mess up floating-point operations), but this should only occur for processes directly or indirectly calling DirectX. Our "bug" involved completely separate processes, which implies a bug at kernel level. It seems likely that this is a kernel-mode driver violating the Microsoft rule that all floating-point operations in kernel-mode drivers must be wrapped in KeSaveFloatintState and KeRestoreFloatingPointState calls; see http://msdn.microsoft.com/en-us/library/ff565388%28VS.85%29.aspx . This was one of the most unusual and difficult bugs to locate (as it was intermittent and caused by the behaviour of apparently unrelated processes). The bug was also responsible for DirectDraw going wrong in Whisker, and possibly for intermittent failures when MonkeyCantab wrote to an SQL Server database via ODBC. // Continuous Performance task.
Version 7.7 (26 Mar 2011). REINFORCEMENT_INFO_PUNISHMENT_PULSE_MS was 10, but version_tracker indicates it should be 20; changed to 20.
Version 8.0 (14 Apr 2011–2 May 2011). Major improvements. Generalization of reinforcer system (including REINFORCEMENT_INFO line control). Generalization of sound system. Corresponding changes to General Parameters, Impulsive Choice configuration, and database (for details, see the version tracker). Configuration version changed to 8.0 (so the program will load, but warn about, older versions - and reinforcer and sound configuration from old files will be lost and need re-entering). Also, XML bug fixed for ImpulsiveChoice, so ImpulsiveChoice delays/probabilities will need re-entering into configurations. ConcurrentDiscrimination and SpatialDiscrimination tasks no longer restricted. Stimulus-triggered trial initiation for those tasks.New Multireinforcer Search Task. Generalization of location system to allow fully user-specifiable locations for all tasks, so some location settings for tasks may need re-entering into configuration files, and option to avoid central feeder has gone (replaced by the option to alter any location to avoid anything). Conversion of tasks to match. Minor change to internal scaling of University of Cambridge stimuli (improves centring precision). ImpulsiveChoice: magazine initiation/magazine light options. SimpleSchedules: range option for maximum session time. TouchTraining: option for initial free rewards, and magazine initiation options.
Version 8.1 (from 3 May 2011). New task: Conditional Visual Discrimination (CVD), also capable of operation as a two-choice vigilance task. Fixed miscounting of total number of rewards (w.r.t. reward limit; it counted each one twice) in ConcurrentDiscrim, Spatial Discrim, VDS, VDP, MST, Reversals. Display caching for initiation stimulus, and minor finger-on detection fixes, for ConcurrentDiscrim, SpatialDiscrim, MST. Option for magazine-based initiation (with magazine light option) and initiation limited hold period for: Reversals, DMTS, VDS, VDP, ConcurrentDiscrim, MCSRT. Option to lock correct/incorrect lists together (allowing e.g. 8-pair concurrent discrimination) for ConcurrentDiscrim. Options to enable and punish perseverative responding in MCSRT. ImpulsiveChoice: option to repeat omission trials.
Version 8.2 (15 Aug 2011). Performance-based stopping criterion for ConcurrentDiscrimination task.
Version 8.3 (from 22 Sep 2011). Bugfix: reinforcer-associated visual stimulus time wasn't contributing to calculated reinforcer duration (in CMonkeyCantabController::DeliverReinforcer). Date/time strings stored in textfiles now include seconds field. New SSPAL task. Option to shuffle module order from main parameters dialogue.
Version 8.4 (from 1 Nov 2011). SSPAL: delay stimulus edit box now freely editable (so you can blank it); delay stimulus made properly optional.
Version 8.5 (from 22 Nov 2011). SWM/SOSS: extended options for screen blanking upon response.
Version 8.6 (from 1 Dec 2011). RVIP: extra target area marker option.
Version 8.7 (from 1 Jan 2012). Alternative cue presentation methods for SSPAL task.
Version 8.8 (5 Jan 2012). Bugfix in SWM (symptom was: crash immediately on task start, when non-scheme method used).
Version 8.9 (from 19 Jan 2012). Cosmetic changes to CPT dialogue. Two CPT bugfixes (see version tracker). New CPT option for "time limit for each attempt".
Version 9.0 (from 24 Jan 2012). Detection of non-number floating point values when reading from XML. CPT bugfix (loose attempt timer on change of stage).
Version 9.1 (22 Mar 2012). Fixed a bug introduced into Reversals task in which the HARSH correction procedure failed to show stimuli.
Version 9.1 (from 29 Mar 2012). Internal code changes to reflect SDK alterations (no change to function).
Version 9.2 (to 22 May 2012). Code changes (no functional change) to reflect WhiskerClientLib v4.1. // CPT bugfix: CCPT::IsCriterionPassed() didn't restrict "consecutive correct" checking to current attempt. // CPT bugfix: if the stage timed out in the ITI immediately following the correct response that should have passed the stage, the timeout trumped the win (incorrectly).
Version 9.3 (from 15 June 2012). Reversals: (1) Option for a different within-session reversal criterion for the first and subsequent discriminations. (2) Summary information for each discrimination (reversal) within a session, on ending and as a database query. (3) Recording of touches to "leftover" stimuli (stimuli left on the screen during reinforcement).
Version 9.4 (from 17 July 2012). Better recording of repeat trials in PAL; stimulus info line support for CPT and DMTS.
Version 9.5 (from 14 Aug 2012). "TrialGroup" recording in PAL. Additional queries in database. Trial repeat option in SSPAL. Option to punish background touches in SSPAL.
Version 9.6 (from 25 Sep 2012). Option to reinforce cue responding in SSPAL. Ambiguous Cue Task.
Version 9.7. Trivial bug fixes to Ambiguous Cue Task. Bug fix to PAL (introduced with recent grid improvements): when creating a new scheme, it was improperly declared invalid.
Version 9.8 (5 Dec 2012). Ability to duplicate/randomize blocks for PAL. Additional SQL for PAL.
Version 9.9 (from 13 Feb 2013). Updates to CPT (extra options for maximum time to present stimulus; changing response window accordingly; background image option). This partially breaks old CPT config files; you should manually check all configs after loading; configuration version changed to 9.9 so the programs warns you.
Version 10.0 (28 Feb 2013). Trivial bugfix: SSPAL started the Marker 1 sound twice at the start of a trial.
Version 10.1 (1 Apr 2013 to 21 May 2013). Autostop facility. Garish alert when MonkeyCantab finishes. CPT bugfix: a timer wasn't being cleared properly. Strict touch support added for tasks that didn't have it (CPT, IC), with minor tweaks for others (see version tracker) and clearer documentation. Touch training lick/pellet latency calculation bugfix.
Version 10.2 (4 Jun 2013). Database transaction support.
Version 10.3 (18 Jun 2013). Bugfix to monkeycantab.com, the pre-launcher.
Version 10.4 (2 Sep 2013). SSPAL option: background touches in ITI restart ITI.
Version 10.5 (20 May to 1 June 2014). ConcurrentSchedules task. Hammond contingency schedules. Internal code changes.
Version 10.6 (3 June 2014). ConcurrentSchedules: bugfix (crashed at startup when only one schedule in use).
Version 10.7 (10 June 2014). ConcurrentSchedules bugfix (relevant when the same stimulus used for two manipulanda). Simpler compilation for end users without restricted tasks/cryptographic code.
Version 10.8 (1 July 2014). More fixes for compilation in different development environments. Also, the fixes that were meant to be in 10.7 but somehow don't seem to have been.
Version 10.9 (1 July 2014). Build directory name error meant v10.7 and v10.8 fixes weren't applied to the Cambridge edition.
Version 11.0 (27 Aug 2014). New contingency schedule (Jackson).
Version 11.1 (4 Sep 2014). Option to disable either half of Jackson schedule.
Version 11.2 (7 Oct 2014 - 5 Dec 2014). Bugfixes; see version tracker. Option to stop after an overall time limit (across all tasks). Logging of module (task) start/stop times to database, along with warnings.
Version 11.3 (24 Feb 2015). Restriction on noncontingent reinforcement for concurrent version of Jackson schedule. Bugfix: m_bPrimeFirstInterval was being ignored in CReinforcementSchedule creation.
Version 11.4 (12 Apr 2015). Rebuild with latest WhiskerClientLib in attempt to prevent occasional initiation failures, potentially related to a socket problem. Also bugfix in that delayed reinforcers on RIGHT schedules were probably not being delivered.
Version 11.5 (from 13 Jun 2015). Multiple "option B" stimuli for ImpulsiveChoice. VDR (DMTP) task.
Version 11.6 (22 July 2015). (1) Field length of MonkeyCantab_ModuleOverview.ModuleType changed from 50 to 100 - was failing with the  Visual Discrimination and Set Shifting (Superimposed Style) task. (2) Critical bugfix: crash occurring due to reentrant StatusMessage() call; likely introduced in v11.4 (so upgrade all v11.4 and v11.5 immediately).
Version 11.7 (26 Nov 2015). Bugfixes to VDR: (a) it wanted n+1 locations for n targets, and should have required only n; (b) an output field (PossibleResponseLocations) contained commas and so messed up CSV imports; changed to semicolons within the field.
Version 11.8 (9-10 Dec 2015): ImpulsiveChoice improvements. VDR improvements. Config version changed; will warn on upgrade.
Version 11.9 (16 Dec 2015). Bugfix to VDR (loose timer).
Version 11.91 (25 Mar 2016). VDR option to punish background touches during cue.
Version 11.92 (March 2017). Probabilistic concurrent discrimination (PCD) task.
Version 11.94 (Dec 2017). New "extra locations" option to SWM.
Version 11.95 (14 Sep 2019). New PR schedule with floating-point stopping time (for training purposes).
Version 11.96 (6 Dec 2020). PAL task now supports "stimulus info" hardware output.
Version 12.00 (6 Feb 2021). Dual-Reward Ambiguous Cue Task (DRACT).
Version 12.01 (21 Nov 2021). New options for PAL task: only one choice / centring response before choice. Distinguish event codes for sample and choice omission (previously lumped together as sample omissions).
Version 12.02 (1 Mar 2022). PAL: option to reward the centring response.
Version 12.03 (15 Apr 2022). DRACT: correction procedure.
Version 12.1 (10 Jul 2022). VDR correction procedure and option for sample stimulus to disappear when touched.