RatBat - version_tracker.txt ---------------------------- Version numbers are stored in: (1) RatBat.iss file (influences setup display, Control Panel) (2) .rc file (About box) (3) const CString strRatBatConfigVersion (in RatBatControllerConfig.cpp) -- CONFIG VERSION ONLY (4) g_strVersion (in RatBat.h) (5) help (6) web site whatsnew.shtml Version history: ======================================= 0.1 ======================================= - 19/25-26 Jun 2003: RNC started - developed from MonkeyCantab. Original list from "Add Module" dialogue: Reinforcement Familiarization Touch Training Visual Discrimination and Set Shifting (Predefined Style) -- removed Visual Discrimination and Set Shifting (Superimposed Style) -- removed Reversal Learning Delayed Matching/Non-matching To Sample -- modified for max. 2 stimuli (present in centre; test L/R; can't test in a location used for phase 1 presentation; m_iDistractors commented out in places) Spatial Working Memory -- removed Multiple-Choice Serial Reaction Time -- removed Paired-Associates Learning -- modified for max. 3 positions Simple Schedules of Reinforcement Considered but abandoned: Autoshaping -- no, abandoned; have a perfectly good task for this already (VisualAutoshaping) Added: N-Pair Concurrent Visual Discrimination Fixed a bug in CPAL::NewTrial, if (m_iStimulusSelectionTechnique == PAL_SST_RANDOM) {... if (m_vTrialRecord[i].m_vPresentations[k].m_strStimulusPresented == vstrAvailableStimuli[i]) { should have read if (m_vTrialRecord[j].m_vPresentations[k].m_strStimulusPresented == vstrAvailableStimuli[i]) { Also fixed in MonkeyCantab. ======================================= 0.2 ======================================= - horiz scroll listbox - about button - drop down v drop list in sounds (should be drop list) - static -> read-only edit box: done? screenshot? DMTS not needed general not needed n-pair CVD not needed PAL y y RatBat params y y reinffamil not needed reversals y y schedules y y SWM DO IF WE EVER PUT TASK BACK IN three-choice DO IF WE EVER PUT TASK BACK IN touch training not needed VDP DO IF WE EVER PUT TASK BACK IN VDS DO IF WE EVER PUT TASK BACK IN - rnc_random_shuffle - make tasks two-alternative in general (i.e. remove three-stimulus reversal and make PAL two-grid only) - touch training to match monkeycantab (CNewTouchTraining) - removed "adjust for central feeder" option (pointless now) - Pellet dispenser rear/centre (m_iRewardPelletDispenser) - modify ThreeChoice so it doesn't offer a lever option - DO IF WE EVER PUT TASK BACK IN - Trial initiation (m_iBeginTrials) - on rear panel activation - on rear nosepoke - on central nosepoke - on central locomotor beambreak - on completion of the intertrial interval, regardless of where the subject is reversal learning - DONE DMTS - DONE (applies to both phases but not correction phase) PAL - DONE (applies to all stimuli presented) N-Pair - DONE touch training [CNewTouchTraining] - DONE simple schedules - NOT DONE [not applicable] reinf famil - NOT DONE [not applicable] - pellet collection latency (where measurable) reversal learning - DONE PAL - DONE N-Pair - DONE touch training [CNewTouchTraining] - DONE simple schedules - DONE... just record lick and magazine events... DMTS - DONE - bugfix: StartMainSchedule() not always called in ReinfFamil. - bugfix in PAL.cpp: for (int k=0; k < m_vTrialRecord[j].m_vPresentations.size(); ++k) { (previously, [j] was [i]) - Approach criterion (m_iRespondedToStimulus): - Approach stimulus (detected by L/R infrared beam) - Touch stimulus (detected by touchscreen) - Approach or touch stimulus reversal learning - DONE N-Pair - DONE DMTS - DONE (can approach either side for first stimulus, which is central) PAL - DONE simple schedules - DONE (approach to either side works, as response stimulus is central) touch training - L/R approach if stimuli specified; approach either side otherwise. v0.2 released as TEMPORARY copy to Jeff (6 Aug 2003) for reinf familiarization (but known bugs) ======================================= 0.3 (6 Aug 2003) ======================================= - bugfix in NewTouchTraining (wrote to nonexistent m_vTrialRecord.back() in RemoveAndDeleteStimuli) - bugfix in PAL.cpp: for (int k=0; k < m_vTrialRecord[j].m_vPresentations.size(); ++k) { (previously, [j] was [i]) - another bugfix in PAL.cpp: bJustErasedSomething code (prevents cock-up when i is invalidated) - ditto in DMTS.cpp - bugfix on CRecordSetSimpleSchedulesResultSummary: added m_SessionEndTime = CTime(0); - m_bMarking, m_bFingerOn, strEvent_FingerOffTouchscreen in SimpleSchedules plus additional code to cope with IR beam responses. - altered two-way grid so it's 5% at the edges, not 10%. Still 10% between the two stimuli. ======================================= 0.4 (22 Nov 2003) ======================================= - writes version number and compilation date to summary file - (12 Jan 2004 for Olivia) summary data for reversal learning in main window - "number of incorrect and correct resp on corrected and non corrected trials, maybe resp latency as well" Writes this to screen (via StatusMessage) and disk, as part of CReversals::WriteResultsToSummaryFile. - (12 Jan 2004 for Olivia) new correction procedure: "VeryHarsh" - same technique as HARSH but max#trial limit applies to all kinds of trials ======================================= 0.5 (22 Nov 2003) ======================================= - change in method of centring stimuli - see version_tracker for MonkeyCantab - bugfix: couldn't edit first point in a polygon list ======================================= 0.6 (5 July 2004) ======================================= - improved end-of-task on-screen display for reversal learning. ======================================= 0.7 (23/24 October 2004) ======================================= - record all events in separate table, like MonkeyCantab - Making sounds work on mono and stereo systems: Mono system DDF: audio 0 box0 SOUND audio 0 box0 LEFTSOUND audio 0 box0 RIGHTSOUND Stereo system DDF: audio 0 box0 SOUND -- note that this is lateralized, so not ideal to use it as the main device audio 0 box0 LEFTSOUND audio 1 box0 RIGHTSOUND RatBat: (X) Stereo system; play centred sounds to LEFTSOUND+RIGHTSOUND (rather than SOUND) device. - auditory L/R discrimination (copy from n-pair concurrent visual discrimination task) - reversal learning: Olivia requests "to see trial per trial, which trial is it (correction or not) the number of correct/incorrect response in each Client window, you know on the side as you did for the 5choice boxes run by whisker where you can see trial 21, correct resp 19, prem 2 etc or for the autoshaping .....(I asked for that already but I got only the final data written in the comment section of the window, what is already helpful but nor enough)" - reversal learning: Olivia requests "to have in the Antibias correction procedure the option of Max* trials applied only to non corrected trials instead of all trials (to always have 100 non corrected trials performed)" New method is called ANTIBIAS_NONCORRECTIONLIMIT. - audiovisual ID/ED task - warnings: Obligatory: * auditory L/R discrimination attempted with "... touches it only" method of detecting responses [wouldn't work at all] * audiovisual ID/ED task attempted with "... touches it only" method of detecting responses [would work at least sometimes but would encourage responding to visual element] Advisory (oh, what the hell, let's make it obligatory): * auditory L/R discrimination attempted without "stereo" ticked [would work but user should consider it as it probably means the "centred" sounds won't be centred] * audiovisual ID/ED task attempted without "stereo" ticked [would work but user should consider it as it probably means the "centred" sounds won't be centred] Modules only become aware of the owning controller once they've started. So they can't refer back to the "general config" area of the owning controller when they need to. So the controller needs to manage the warnings in CRatBatControllerConfig::IsValid. ======================================= 0.8 (15 Nov/9 Dec 2004) ======================================= - 15 Nov 2004: rnc_random_shuffle random number generator changed - CDisplayComponent_Bitmap::GetBitmapSizeFromFile and thus improved CDisplayComponent_Bitmap::GetBottomRightPoint ... should improve bitmap positioning (if filenames are entered in such a way that both this program and the server can find the bitmap!) - SetAttributes() functions defined for more types of visual object component - n-pair tasks (x 2: visual, auditory) Facility to progress to next pair when X trials out last Y correct. (For Emily, req. 29 Nov 2004.) ... by stopping task when that happens, and allowing the user to sequence several such tasks. ======================================= 0.9 (8 Feb 2005) ======================================= - config version was wrong - minor errors fixed in manual - bugfix: traylight could remain on in link between modules - now it's always forced off by CRatBatController::ResetState(). ======================================= 1.0 (21 Feb 2005) ======================================= - bugfix: NPAIRAUDITORY_CHOICE_QUASIRANDOM and NPAIR_CHOICE_QUASIRANDOM had inappropriate "else" clauses leading to a crash. ======================================= 1.1 (01 May 2005) ======================================= - allow not all stimuli to be set in ID/ED task (in CAudiovisualIDED::IsConfigValid) ======================================= 1.2 (29 June 2005) ======================================= - was no NewTrial_Proper function in audiovisual ID/ED (i.e. waiting for triggering event to start trial) ======================================= 1.3 ======================================= - changes to the AudioVisualIDED task coded by John Earl for Emily Murphy . ======================================= 1.4 (8 March 2007) ======================================= - easier compilation for users ======================================= 2.0 (12 Jan 2009) ======================================= - Server default changed from "loopback" to "localhost" (Windows Vista compatibility and more general standardization). ======================================= TO DO ======================================= ======================================= POSSIBLY TO DO; DEPENDS ON OTHERS ======================================= - consider adding correction procedure(s) to NPair and NPairAuditory, if required (for single-pair discrimination, can use ID/ED task instead).