Note
Version numbers
In general, when a new feature is added the second number is incremented (e.g. 1.00.05 -> 1.01.00). Those releases might break previous code you’ve written because new features often need slight changes to other things. Changes to the final digit (1.00.05 -> 1.00.06) indicate a bug-fixing release or very minor new features that shouldn’t require code changes from the user.
Changes in red typically indicate things that alter the PsychoPy behaviour in a way that could could break compatibility. Be especially wary of those!
(on github)
(released Jan 2012)
(released Jan 2012)
(released Jan 2012)
(rc1 released Nov 2011)
FIXED: error with DotStim when fieldSize was a tuple and fieldShape was ‘sqr’
FIXED: calibration plots in Monitor Center now resize and quit as expected
FIXED: conditions files can now have lists of numbers [0,0]
FIXED: buglet with flushing mouse events (thanks Sebastiaan Mathot)
FIXED: Builder components now draw in order, from top to bottom, so lower items obscure higher ones
FIXED: problem with Patch Component when size was set to be dynamic
FIXED: problem with Builder loops not being able to change type (e.g. change ‘random’ into ‘staircase’)
FIXED: data from TrialHandler can be output with unicode contents (thanks Henrik Singmann)
(released Oct 2011)
(released Sept 2011)
CHANGED: Depth testing is now disabled. It was already being recommended that depth was controlled purely by drawing order (not depth settings) but this is now the *only* way to do that
CHANGED: The Builder representation of the Components onset/offset is now based on ‘estimatedStart/Stop’ where a value has been given. NB this does not affect the actual onset/offset of Components merely its representation on the timeline.
ADDED: RatingScale method to allow user to setMarkerPosition()
ADDED: Builder dialogs display a ‘$’ to indicate fields that expect code/numeric input
ADDED: Text Component now has a wrapWidth parameter to control the bounding box of the text
ADDED: Opacity parameter to visual stimulus components in the Builder, so you can now draw plaids etc from the builder
FIXED: can edit or delete filename from loop dialog
FIXED: bug in RunTimeInfo (no longer assumes that the user has git installed)
FIXED: bug in BufferImageStim
FIXED: bug in Builder Ratingscale (was always ending routine on response)
FIXED: problem with nested loops in Builder. Inner loop was not being repeated. Loops are now only created as they are needed in the code, not at the beginning of the script
FIXED: rendering of many stimuli was not working beyond 1000 elements (fixed by removal of depth testing)
FIXED: mouse component now using start/duration correctly (broken since 1.70.00)
FIXED: when changing the texture (image) of a PatchStim, the stimulus now ‘remembers’ if it had been created with no size/sf set and updates these for the new image (previously the size/sf got set according to the first texture provided)
FIXED: putting a number into Builder Sound Component does now produce a sound of that frequency
FIXED: added ‘sound’,’misc’,’log’ to the component names that PsychoPy will refuse. Also a slightly more informative warning when the name is already taken
FIXED: Opacity parameter was having no effect on TextStim when using shaders
FIXED bug with MovieStim not starting at beginning of movie unless a new movie was added each routine
(Released Aug 2011)
(Released Aug 2011)
NB This version introduces a number of changes to Builder experiment files that will prevent files from this version being opened by earlier versions of PsychoPy
CHANGED use of allowedKeys in Keyboard Component. You used to be able to type ynq to get those keys, but this was confusing when you then needed ‘space’ or ‘left’ etc. Now you must type ‘y’,’n’,’q’, which makes it more obvious how to include ‘space’,’left’,’right’...
CHANGED dot algorithm in DotStim. Previously the signalDots=same/different was using the opposite to Scase et al’s terminology, now they match. Also the default method for noiseDots was ‘position’ and this has been changed to ‘direction’. The documentation explaining the algorithms has been clarified. (see Dots (RDK) Component)
CHANGED MovieStim.playing property to be called MovisStim.status (in keeping with other stimuli)
CHANGED names:
- data.importTrialTypes is now data.importConditions
- forceEndTrial in Keyboard Component is now forceEndRoutine
- forceEndTrialOnPress in Mouse Component is now forceEndRoutineOnPress
- trialList and trialListFile in Builder are now conditions and conditionsFile, respectively
- ‘window units’ to set Component units is now ‘from exp settings’ for less confusion
CHANGED numpy imports in Builder scripts:
- only a subset of numpy features are now imported by default: numpy: sin, cos, tan, log, log10, pi, average, sqrt, std, deg2rad, rad2deg, linspace, asarray, random, randint, normal, shuffle
- all items in the numpy namespace are available as np.*
- if a pre-v1.70 script breaks due to this change, try prepending ‘np.’ or ‘np.random.’
CHANGED: Builder use of $. $ can now appear anywhere in the field (previously only the start). To display a ‘$’ character now requires ‘\$’ in a text field (to prevent interpretation of normal text as being code).
ADDED flexibility for start/stop in Builder Components. Can now specify stimuli according to;
- variable values (using $ symbol). You can also specify an ‘expected’ time/duration so that something is still drawn on the timeline
- number of frames, rather than time (s), for greater precision
- an arbitrary condition (e.g. otherStim.status==STOPPED )
ADDED the option to use a raised cosine as a PatchStim mask (thanks Ariel Rokem)
ADDED a preference setting for adding custom path locations to Standalone PsychoPy
ADDED Dots Component to Builder interface for random dot kinematograms
ADDED wide-format data files (saveAsWideText()) (thanks Michael MacAskill)
ADDED option for full randomization of repeated lists (loop type ‘fullRandom’) (Jeremy)
ADDED builder icons can now be small or large (in prefs)
ADDED checking of conditions files for parameter name conflicts (thanks Jeremy)
ADDED emulate sync pulses and user key presses for fMRI or other scanners (for testing); see hardware/launchScan in the API reference, and Coder demos > experimental control > fMRI_launchScan.py (Jeremy)
ADDED right-clicking the expInfo in Experiment Settings tests & previews the dialog box (Jeremy)
ADDED syntax checking in code component dialog, right-click (Jeremy)
IMPROVED documentation (thanks Becky Sharman)
IMPROVED syntax for using $ in code snippets (e.g., “[$xPos, $yPos]” works) (Jeremy)
IMPROVED Flow and Routine displays in the Builder, with zooming; see the View menu for key-board shortcuts (Jeremy)
IMPROVED Neater (and slightly faster) changing of Builder Routines on file open/close
FIXED demos now unpack to an empty folder (Jeremy)
FIXED deleting an empty loop from the flow now works (Jeremy)
FIXED further issue in QUEST (the addition in 1.65.01 was being used too widely)
FIXED bug with updating of gamma grid values in Monitor Center
Released July 2011
FIXED Builder keyboard component was storing ‘all keys’ on request but not all RTs
FIXED Aperture Component in Builder, which was on for an entire Routine. Now supports start/stop times like other components
IMPROVED Sound stimuli in Builder:
- FIXED: sounds could be distorted and would repeat if duration was longer than file
- ADDED volume parameter to sound stimuli
- FIXED: duration parameter now stops a file half-way through if needed
FIXED buglet preventing some warning messages being printed to screen in Builder experiments
FIXED bug in the copying/pasting of Builder Routines, which was previously introducing errors of the script with invalid _continueName values
(Released July 2011)
(Released July 2011)
Released April 2011
ADDED option to return field names when importing a trial list (thanks Gary Lupyan)
ADDED Color-picker on toolbar for Coder and context menu for Builder (Jeremy Gray)
ADDED CustomMouse to visual (Jeremy Gray)
ADDED Aperture object to visual (thanks Yuri Spitsyn) and as a component to Builder (Jeremy Gray)
ADDED user-configurable code/output font (see coder prefs to change)
ADDED gui.Dlg now automatically uses checkboxes for bools in inputs (Yuri Spitsyn)
ADDED RatingScale component for Builder (Jeremy Gray)
ADDED option for Builder components to take code (e.g. variables) as start/duration times
ADDED support for RGBA files in SimpleImageStim
IMPROVED namespace management for variables in Builder experiments (Jeremy Gray)
IMPROVED prefs dialog
IMPROVED test sequence for PsychoPy release (so hopefully fewer bugs in future!)
FIXED bug with ElementArrayStim affecting the subsequent color of ShapeStim
FIXED problem with the error dialog from Builder experiments not being a sensible size (since v1.63.03 it was just showing a tiny box instead of an error message)
FIXED Coder now reloads files changed outside the app when needed (thanks William Hogman)
FIXED Builder Text Component now respects the font property
FIXED problem with updating to a downloaded zip file (win32 only)
FIXED bug with ShapeStim.setOpacity when no shaders are available
FIXED long-standing pygame scaling bug
FIXED you can now scroll Builder Flow and still insert a Routine way to the right
Released Feb 2011
Released Feb 2011
ADDED scrollbar to output panel
FIXED small bug in QUEST which gave an incorrectly-scaled value for the next() trial
FIXED ElementArrayStim was not drawing correctly to second window in multi-display setups
FIXED negative sound durations coming from Builder, where sound was starting later than t=0
FIXED a problem where Builder experiments failed to run if ‘participant’ wasn’t in the experiment info dialog
Released Feb 2011
ADDED clearFrames option to Window.saveMovieFrames
ADDED support for Spectrascan PR655/PR670
NB. this is likely to become the default unit for new users (set in prefs) but for existing users the unit set in their prefs will remain. That means that your system may behave differently to your (new user) colleague’s
IMPROVED handling of damaged experiments in Builder (they don’t crash the app any more!)
IMPROVED performance of autoLogging (including demos showing how to turn of autoLog for dynamic stimuli)
Released Jan 2011
FIXED bug with ElementArrayStim.setFieldPos() not updating
FIXED mouse release problem with pyglet (since in 1.63.00)
This is possible even though you may not retrieve the mouse event until later (e.g. waiting for a frame flip). Thanks Dave Britton
FIXED bug with filters.makeGrating: gratType=’sqr’ was not using ori and phase
if users selected ‘skip ths version’)
CHANGED optimisation routine from fmin_powell to fmin_bfgs. It seems more robust to starting params.
Released Dec 2010
FIXED bug in color calibration for LMS color space (anyone using this space should recalibrate immediately) Thanks Christian Garber for picking up on this one.
FIXED bug with excel output from StairHandler
FIXED bug in ElemetArray.setSizes()
FIXED bug in running QuestHandler (Zarrar Shehzad)
FIXED bug trying to remove a Routine from Flow when enclosed in a Loop
FIXED bug with inseting Routines into Flow under Linux
FIXED bug with playing a MovieStim when another is already playing
CHANGED default values for Builder experiment settings (minor)
CHANGED ShapeStim default fillColor to None (from (0,0,0))
FIXED DotStim now supports a 2-element fieldSize (x,y) again
CHANGED phase of RadialStim to be ‘sin’ instead of ‘cosine’ at phase=0
FIXED rounding issue in RadialStim phase
FIXED ElementArrayStim can now take a 2x1 input for setSizes(), setSFs(), setPhases()
ADDED packages to standalone distributions: pyserial, pyparallel (win32 only), parallel python (pp), IPython
CHANGED Builder demos are now back in the distributed package. Use >Demos>Unpack... to put them in a folder you have access to and you can then run them from the demos menu
FIXED bug with ShapeStim initialisation (since 1.62.02)
UPDATED: Builder demos
Released Oct 2010
Released Sept 2010
ADDED: clicking on a Routine in the Flow window brings that Routine to current focus above
ADDED: by setting a loop in the Flow to have 0 repeats, that part of your experiment can be skipped
CHANGED: builder hides mouse now during fullscreen experiments (should make this a pref or setting though?)
FIXED: rendering problem with the Flow and Routine panels not updating on some platforms
ADDED: added .pause() .play() and .seek() to MovieStim (calling .draw() while paused will draw current static frame)
FIXED: bug in MovieStim.setOpacity() (Ariel Rokem)
FIXED: bug in win32 - shortcuts were created in user-specific start menu not all-users start menu
CHANGED: data output now uses std with N-1 normalisation rather than (scipy default) N
FIXED: bug when .psyexp files were dropped on Builder frame
FIXED: bug with Builder only storing last letter or multi-key button (e.g. ‘left’->’t’) under certain conditions
FIXED: when nReps=0 in Builder the loop should be skipped (was raising error)
CHANGED: mouse icon is now hidden for full-screen Builder experiments
FIXED: Builder was forgetting the TrialList file if you edited something else in the loop dialog
ADDED: visual.RatingScale and a demo to show how to use it (Jeremy Gray)
ADDED: trial loops in builder can now be aborted by setting someLoopName.finished=True
ADDED: improved timing. Support for blocking on VBL for all platforms (may still not work on intel integrated chips)
FIXED: minor bug with closing Coder windows generating spurious error messages
ADDED: ‘allowed’ parameter to gui.fileOpeNDlg and fileCloseDlg to provide custom file filters
Released: August 2010
CHANGED: for builder experiments the trial list for a loop is now imported from the file on every run, rather than just when the file is initially chosen
CHANGED: data for TrialHandler are now stored as masked arrays where possible. This means that trials with no response can be more easily ignored by analysis
FIXED: bug opening loop properties (bug introduced by new advanced params option)
FIXED: bug in Builder code generation for keyboard (only when using forceEnd=True but store=’nothing’)
CHANGED: RunTimeInfo is now in psychopy.info not psychopy.data
CHANGED: PatchStim for image files now defaults to showing the image at native size in pixels (making SimpleImageStim is less useful?)
CHANGED: access to the parameters of TrialList in the Builder now (by default) uses a more cluttered namespace for variables. e.g. if your TrialList file has heading rgb, then your components can access that with ‘$rgb’ rather than ‘$thisTrial.rgb’. This behaviour can be turned off with the new Builder preference ‘allowClutteredNamespace’.
FIXED: if Builder needs to output info but user had closed the output window, it is now reopened
FIXED: Builder remembers its window location
CHANGED: Builder demos now need to be fetched by the user - menu item opens a browser (this is slightly more effort, but means the demos aren’t stored within the app which is good)
CHANGED: loops/routines now get inserted to Flow by clicking the mouse where you want them :-)
ADDED: you can now have multiple Builder windwos open with different experiments
ADDED: you can now copy and paste Routines form one Builder window to another (or itself) - useful for reusing ‘template’ routines
FIXED: color of window was incorrectly scaled for ‘named’ and ‘rgb256’ color spaces
ADDED: quicktime movie output for OSX 10.6 (10.5 support was already working)
ADDED: Mac app can now receive dropped files on the coder and builder panels (but won’t check if these are sensible!!)
ADDED: debugMode preference for the app (for development purposes)
ADDED: working version of RatingStim
Patch released July 2010
Patch released June 2010
Patch released May 2010
Released May 2010
Released Feb 2010
Released Feb 2010
Released Feb 2010
Released Feb 2010
ADDED: full implementation of staircase to Builder loops and included a demo for it to Builder
CHANGED: builder components now have a ‘startTime’ and ‘duration’ rather than ‘times’
ADDED: QuickTime output option for movies (OSX only)
ADDED: script is saved by coder before running (can be turned off in prefs)
ADDED: coder checks (and prompts) for filesave before running script
ADDED: setHeight to TextStim objects, so that character height can be set after initialisation
ADDED: setLineRGB, setFillRGB to ShapeStim
ADDED: ability to auto-update form PsychoPy source installer (zip files)
ADDED: Monitor Center can be closed with Ctrl-W
ADDED: visual.Window now has a setRGB() method
ADDED: visual.Window now has a clearBuffer() method
ADDED: context-specific help buttons to Builder dialogs
ADDED: implemented of code to flip SimpleImageStim (added new methods flipHoriz() and flipVert())
ADDED: Butterworth filters to psychopy.filters (thanks Yaroslav Halchenko)
ADDED: options to view whitespace, EOLs and indent guides in Coder
ADDED: auto-scaling of time axis in Routines panel
IMPROVED: Splash screen comes up faster to show the app is loading
FIXED: bug in RadialStim .set functions (default operation should be “” not None)
FIXED: on mac trying to save an unchanged document no longer inserts an ‘s’
FIXED: bug with SimpleImageStim not drawing to windows except #1
FIXED: one bug preventing PsychoPy from running on vista/win7 (are there more?)
CHANGED: psychopy.filters.makeMask() now returns a mask with values -1:1, not 0:1 (as expected by stimulus masks)
RESTRUCTURED: the serial package is no longer a part of core psychopy and is no longer required (except when hardware is actually being connected). This should now be installed as a dependency by users, but is still included with the Standalone packages.
RESTRUCTURED: preparing for further devices to be added, hardware is now a folder with files for each manufacturer. Now use e.g.:
from psychopy.hardware.PR import PR650
from psychopy.hardware.cedrus import RB730
(released Nov 2009)
NB. The changes to gamma handling should need no changes to your code, but could alter the gamma correction on some machines. For setups/studies that require good gamma correction it is recommended that you recalibrate when you install this version of PsychoPy.
(released Sep 09)
(released Sep 09)
(released Sep 09)
(released Sep 09)
(released Jul 09)
(released Jul 09)
(released Jun 09)
FIXED bug in text rendering (ATI/win32/pyglet combo only)
FIXED minor bug in handling of images with alpha channel
added rich text ctrl to IDE output, including links to lines of errors
IDE now only opens one copy of a given text file
improved (chances of) sync-to-vertical blank on windows without adjusting driver settings (on windows it’s still better to set driver to force sync to be safe!)
added center and radius arguments to filters.makeMask and filters.makeRadialMatrix
If you leave winType as None PsychoPy tries to use Pygame, Pyglet, GLUT in that order (when Pyglet can handle gamma funcs it will become default). Can be overridden by specifying winType.
turned off depth testing for drawing of text (will simply be overlaid in the order called)
changes to TextStim: pyglet fonts are loaded by name only, not filename. PsychoPy TextStim now has an additional argument called ‘fontFiles=[]’ to allow the adding of custom ttf fonts, but the font name should be used as the font=” ” argument.
updated some of the Reference docs
Known Problems: * The IDE isn’t collecting all errors that are returned - a problem with the process redirection mechanism? FIXED in 0.92.3
sounds now in stereo and a new function to allow you to choose the settings for the sound system.
LMS colors (cone-isolating stimuli) are now tested and accurate (when calibrated)
added minVal and maxVal arguments to data.StairHandler so that range can be bounded
@import psychopy@ no longer imports anything other than core
NEW post-install script for Win32 installs shortcuts to your >>Start>Programs menu
NEW parallel port code (temporary form) using DLportIO.dll can be found under _parallel
NEW hardware module with support for fORP response box (for MRI) using serial port
for thisTrial in allTrials:
but a consequence was that .nextTrial() will be deprecated in favour of .next(). Also, when the end of the trials is reached a StopIteration is raised. * added the ability to seed the shuffle mechanism (and trial handler) so you can repeat experiments with the same trial sequence