PsychoPy Changelog

What's new in PsychoPy 1.77.01

Jun 24, 2013
  • Standalone package changes:
  • pytables downgraded to 2.3.5 on Win32 (to be compatible with WinXP)
  • pyo upgraded to 0.6.6 on OSX and Win32
  • FIXED: The recent files list in Builder now contains recent files!
  • FIXED: Timing issue with LC Tech eye-tracker in iohub

New in PsychoPy 1.77.00 (Jun 24, 2013)

  • ADDED: preview of Sol Simpson’s ioHub for faster (asynchronous) polling of hardware including mouse, keyboard, eyetrackers and other devices. See iohub demos for example usage. This provides many advantages over previous event polling:
  • asynchronous process allows constant polling (not tied to refresh rates) in a way that won’t impact the rendering of your stimuli. It even runs on a separate CPU core if possible.
  • provides up/down/duration for key presses
  • provides unicode character (rather than simply key name for keyboard)
  • provides a unified API for eyetracker classes
  • provides async access to the parallel port
  • provides an alternative data output format (using hdf5) particularly useful for high-output streaming data (e.g. eye-trackers)
  • DEPRECATED: opensslwrap will soon be replaced by pyFileSec, a much-improved version of the same package (= file-oriented encryption)
  • IMPROVED: substantially (~40%) faster loading of RGB images from disk (by using byte format rather than float). May also allow storing of more images on graphics card than previously
  • ADDED: AdvancedMicrophone class to add and retrieve a high-frequency tone to indicate the start of recording (e.g., to allow accurate vocal RT estimation), with demo
  • REFACTORED: parallel port support. Support for Windows via inpout32/inpout64 and Linux via pyparallel added. Existing API maintained for single port usage, but new PParallel classes added to provide more flexibility when dealing with multiple ports. see psychopy.parallel - functions for interacting with the parallel port
  • ADDED: MovieStim now updates its status attribute to FINISHED, in line with other stimuli
  • CHANGED: microphone default file names include milliseconds (to avoid two files with the same name)
  • ADDED: color-word speech-recognition demo (coder > input > speech_recognition.py)
  • ADDED: in Builder components dialog boxes, text that will be interpreted as code is displayed in monospace font
  • ADDED: remove and warn about trailing whitespace in Builder component values (but not Text fields)
  • ADDED: support for pyglet version 1.2 alpha (but 1.1.4 is still recommended - it appears to render faster)
  • ADDED: more sound.SoundPyo methods (get & set duration, volume, looping)
  • FIXED: event.Mouse() can obtain a default visual.Window(), if one has already been created
  • ADDED: Builder components generate a compile-time warning if a field’s value looks dynamic but its updating is constant
  • ADDED: better simulated scanner-noise in launchScan (just for fun)
  • ADDED: RatingScale.getHistory() returns intermediate time-stamped ratings; allows “continuous” ratings
  • CHANGED: RatingScale.getRating() no longer returns False prior to an accepted rating (now returns the currently selected value)

New in PsychoPy 1.76.00 (Jun 24, 2013)

  • ADDED: Window.callOnFlip() function to allow arbitrary functions to be called, timed precisely to the point where the frame flip has occurred (see Coder Demos>Timing>callOnFlip)
  • FIXED: a scaling bug in RatingScale descriptions
  • ADDED: support for mirror-image text, and mirror-image BufferImageStim
  • ADDED: support for lower latency sound with the pyo library. For now pygame remains the default but this can be changed by setting the order in preferences>general>audio
  • CHANGED: PsychoPy Standalone is now being built using python 2.7.3 (rather than 2.6). Under OSX psignifit has been removed from this distribution, as have the libraries to create .mov files using Window.saveMovieFrames(). If you need those features then install the 1.75 Standalone and then update to 1.76 using the auto-update system.
  • ADDED: sound objects (either pygame or pyo) now support autologging
  • FIXED: a bug in the generation of the LMS color space conversion matrix. It seems nobody was actually using this for real, but if you were contact Jon for details.
  • CHANGED: various changes to RatingScale:
  • CHANGED: choices are now displayed at the tick marks by default (instead of above the line). To restore the old behavior set labels=False. This does not affect experiments created in older versions of the builder.
  • ADDED: check box “choiceLabelsAboveLines” to the RatingScale component of the builder (advanced tab) to still have the choice labels above the line.
  • ADDED: arguments tickMarks and labels to RatingScale class to control where tick marks (for quantitative rating scales) should be placed at the line and how these should be labeled.
  • ADDED: argument ticksAboveLine to RatingScale class. Controls where the tick marks should be plotted (above or below the line).
  • FIXED: problem with unset exp.name (was causing wx.Dialog error “TypeError: String or Unicode type required” on new experiments)
  • CHANGED: exp.name is no longer available from Builder scripts (use exp.getExpName() instead)
  • FIXED: problem with tiling of depth values for ElementArrayStim
  • FIXED: Fix to setContrast for certain visual stimuli
  • FIXED: inability to launch scripts/experiments if the Mac Standalone was in a folder with a space in it
  • FIXED: Aperture Component now honours the ‘units’
  • FIXED: stimulus contains/overlaps functions now use stimulus ‘units’ and take stimulus orientation into account (Hiroyuki Sogo) NB if you had code in place to perform these corrections yourself you should now remove it!
  • FIXED: some data outputs were not honouring the ‘matrixOnly’ option
  • FIXED: when loading a psydat file of an ExperimentHandler the file automatically saved new copies of its csv/excel outputs. This no longer occurs (if loaded using misc.fromFile)
  • ADDED: timestamp option to event.waitKeys()
  • ADDED: a first-run wizard to check the system, report as html (somewhat experimental)
  • ADDED: a benchmark wizard (Tools menu) to test hardware & software, option to share on psychopy.org
  • ADDED: info.getRAM()
  • FIXED: Fall back to primary display if a secondary one is specified but unavailable.

New in PsychoPy 1.75.01 (Jun 24, 2013)

  • FIXED: Bug with not being able to play sounds of blank (infinite) duration from Builder

New in PsychoPy 1.75.00 (Jun 24, 2013)

  • CHANGED: New Builder experiments will, by default save a single csv file, a single psydat file and a single log file. Was previously also saving an Excel file (wiht one sheet per loop) and many psydat files (one per loop). This can be changed in settings. Psydat files can still be used to re-output any format of data file.
  • IMPROVED: Experiment info dialog box easier to control now from experiment settings (user doesn’t need to write a dictionary by hand any more)
  • IMPROVED: Components in the Builder are now arranged in categories, including a special ‘Favorites’ category
  • IMPROVED: Code Components now support full syntax highlighting and code folding (but still aren’t quite big enough!)
  • ADDED: Builder undo/redo now gives info about what is going to be un/redone
  • ADDED: Window now supports a stereo flag to provide support for quad-buffers (advanced graphics cards only)
  • FIXED: bug with copying/pasting Routines that was breaking Flow in certain situations and corrupting the experiment file
  • FIXED: fatal typo in QuestHandler code
  • FIXED: data outputs for multiple key/mouse presses
  • ADDED: Microphone now supports stop to abort recording early
  • ADDED: beginning of error reporting when generating Builder experiments (thanks Piotr Iwaniuk)
  • FIXED: csv files now generated from Builder as expected not dlm files (tab-delimited)

New in PsychoPy 1.70.02 (Apr 2, 2012)

  • 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 stimuli (now limit is 1,000,000)
  • 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)
  • 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

New in PsychoPy 1.70.01 (Apr 2, 2012)

  • FIXED: buglet with Builder (1.70.00) importing older files not quite right and corrupting the ‘allowedKeys’ of keyboard component
  • FIXED: buglet with SimpleImageStim. On machines with no shaders some images were being presented strangely
  • FIXED: buglet with PatchStim. After a call to setSize, SF was scaling with the stimulus (for unit types where that shouldn’t happen)

New in PsychoPy 1.70.00 (Apr 2, 2012)

  • 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

New in PsychoPy 1.65.02 (Apr 2, 2012)

  • 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

New in PsychoPy 1.65.01 (Apr 2, 2012)

  • FIXED buglets in QUEST handler (thanks Gerrit Maus)
  • FIXED absence of pygame in 1.65.00 Standalone release
  • ADDED shelve module to Standalone (needed by scipy.io)
  • ADDED warnings about going outside the monitor gamut for certain colors (thanks Alex Holcombe)

New in PsychoPy 1.65.00 (Jul 4, 2011)

  • ADDED improved gamma correction using L=a+(b+kI)**G formula (in addition to industry-standard form). Existing gamma calibrations will continue to use old equation but new calibrations will take the new extended formula by default.
  • ADDED MultiStairHandler to run multiple interleaved staircases (also from the Builder)
  • ADDED createFactorialTrialList, a convenience function for full factorial conditions (thanks Marco Bertamini)
  • CHANGED Builder keyboard components now have the option to discard previous keys (on by default)
  • CHANGED RatingScale: ◦ADDED: argument to set lineColor independently (thanks Jeff Bye)
  • CHANGED default marker is triangle (affects windows only)
  • ADDED single-click option, custom-marker support
  • FIXED: bug with precision=1 plus auto-rescaling going in steps of 10 (not 1)
  • FIXED errors with importing from ‘ext’ and ‘contrib’
  • FIXED error in joystick demos
  • FIXED bug in ElementArrayStim depth
  • FIXED bug in misc.maskMatrix. Was not using correct scale (0:1) for the mask stage
  • FIXED buglet in StairHandler, which was only terminating during a reversal
  • FIXED bug when loading movies - they should implicitly pause until first draw() (thanks Giovanni Ottoboni)
  • IMPROVED handling of non-responses in Builder experiments, and this can now be the correct answer too (corrAns=None). ie. can now do go/no-go experiments. (Non-responses are now empty cells in excel file, not “–” as before.)