OpenSesame Changelog

What's new in OpenSesame 4.0.0

Jul 11, 2023
  • Important: Backwards incompatible changes:
  • Logging of variables has changed slightly. Specifically, variables that are defined in the user interface, such as columns in a loop table or explicitly selected variables in a logger, are always logged. Variables that are defined in an inline_script or inline_javascript are only logged if they are numbers (int and float), strings (str and bytes), and None values. This is to avoid log files from becoming unreasonably large due to logging of long lists and other large values.
  • The content of <script> tags in inline_html items is not evaluated. This is no longer necessary, because you can simply refer to experimental variables as you would elsewhere in JavaScript (see below).
  • Conditional expressions are only interpreted as OpenSesame script if they contain variable references using the square-bracket notation or the words 'always' or 'never'. Otherwise they are interpreted as Python expressions as described below.
  • New OpenSesame Python module (no GUI):
  • For those of you who prefer coding over using a GUI: You can now use OpenSesame as a Python module.
  • Improved integration with Python and JavaScript:
  • The integration between OpenSesame and Python (on the desktop)/ JavaScript (in the browser) is now more intuitive. Specifically, OpenSesame-specific syntax has partly been replaced by standard Python/ JavaScript syntax, and there is no longer a distinction between experimental variables and global variables in Python/ JavaScript.
  • {} instead of []: Support for formatted string literals (f-strings)
  • The preferred notation for referring to variables in the user interface is now using curly braces ({my_var}), rather than square brackets ([my_var]).
  • You can even include full Python expressions within curly braces. For example, the following text on a sketchpad will include the text 'Well done!' if accuracy is above 70% and the text 'Try harder!' otherwise.
  • When running an experiment with OSWeb in a browser, the Python code inside curly braces is automatically converted to JavaScript. This means that you can use the same Python expressions inside curly braces on the desktop and in a browser.
  • Support for Python-style conditional expressions:
  • The preferred syntax for run-if, break-if, show-if, and other conditional expressions is Python, rather than OpenSesame script. This means that the following run-if expression results in an item only being run when the variable correct equals 1, that is, after a correct response. (This is also related to the fact that experimental variables are now globals, see below.)
  • When running an experiment with OSWeb in a browser, Python conditional expressions are automatically converted to JavaScript. This means that you can use the same Python run-if, break-if, show-if, and other conditional expressions on the desktop and in a browser.
  • Persistent JavaScript workspace:
  • The JavaScript workspace is now persistent. This means that you can define a function or variable in one inline_javascript and then refer to it in another inline_javascript.
  • Experimental variables are globals:
  • Experimental variables, such as response_time and variables defined in loop items, are now global variables within Python and JavaScript. This means that you no longer have to use the var (Python) or vars object, but can directly refer experimental variables by their name.
  • Improved user interface:
  • There have been usability improvements through the user interface:
  • Improved icons: The open and save icons have been redesigned because they were experienced as unclear by some users
  • Run-if, break-if, show-if, and other conditional expressions are annotated for clarity ('Always run')
  • OSWeb now appears as a backend
  • Items that are not compatible with the experiment settings are disabled
  • Items in an experiment can be disabled. This is mostly useful for development purposes, for example to temporarily disable the instructions.
  • Error messages are now much more informative.
  • A new updater extension automatically checks for updates to selected packages. This provides an easy way to keep OpenSesame up to date without having to re-download and re-install the software.
  • Interleaved Quest staircase:
  • The quest_staircase_init and quest_staircase_next items now accept a name, which allows you to run multiple Quest procedures in parallel. This is mostly useful if you want to run independent, interleaved Quest procedures for different experimental conditions.
  • Linked sketchpad in mouse_response supported in OSWeb:
  • The mouse_response now supports linked sketchpad items in OSWeb, making it just as easy to work with regions of interest in browser-based experiments as in lab-based experiments!

New in OpenSesame 4.0.0a41 Pre-release (Jun 26, 2023)

  • Important: Backwards incompatible changes
  • New OpenSesame Python module (no GUI)
  • Improved integration with Python and JavaScript:
  • {} instead of []: Support for formatted string literals (f-strings)
  • Support for Python-style conditional expressions
  • Persistent JavaScript workspace
  • Experimental variables are globals
  • Improved user interface
  • Interleaved Quest staircase
  • Linked sketchpad in mouse_response supported in OSWeb
  • For developers: Improved plugin and extension API

New in OpenSesame 4.0.0a25 Pre-release (Apr 13, 2023)

  • Sounddevice gives problems because of portaudio

New in OpenSesame 3.3.12 (May 24, 2022)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.3.12
  • rapunzel:
  • Updated to 0.5.37
  • python-datamatrix:
  • Updated to 0.14.3
  • pyqode.core:
  • Updated to 3.2.25
  • osweb:
  • Updated to 1.4.11
  • open-cogsci/osweb#82
  • open-cogsci/osweb#83
  • open-cogsci/osweb#84
  • open-cogsci/osweb#85
  • open-cogsci/osweb#86
  • open-cogsci/osweb#87
  • open-cogsci/osweb#89
  • open-cogsci/osweb#90
  • open-cogsci/osweb#91
  • open-cogsci/osweb#92
  • open-cogsci/osweb#93
  • open-cogsci/osweb#94
  • open-cogsci/osweb#95
  • open-cogsci/osweb#96
  • opensesame-extension-osweb
  • Updated to 1.4.11.0
  • pygaze:
  • Update to 0.7.5a5

New in OpenSesame 3.3.11 (Feb 6, 2022)

  • opensesame:
  • Updated to 3.3.11
  • rapunzel:
  • Updated to 0.5.35
  • python-datamatrix:
  • Updated to 0.13.2
  • pyqode.core:
  • Updated to 3.2.24
  • open-cogsci/pyqode.core#16
  • open-cogsci/pyqode.core#15
  • osweb:
  • Updated to 1.4.4
  • open-cogsci/osweb#69
  • open-cogsci/osweb#70
  • open-cogsci/osweb#71
  • open-cogsci/osweb#72
  • open-cogsci/osweb#73
  • open-cogsci/osweb#74
  • open-cogsci/osweb#75
  • open-cogsci/osweb#79
  • open-cogsci/osweb#80
  • opensesame-extension-osweb
  • Updated to 1.4.4.0
  • open-cogsci/opensesame-extension-osweb#29
  • pygaze:
  • Update to 0.7.4
  • Fix compatibility with new EyeLink SDK

New in OpenSesame 3.3.11 Pre-release (Jan 27, 2022)

  • OpenSesame 3.3.11 Lentiform Loewenfeld is the eleventh maintenance release in the 3.3 series. It contains bug fixes and minor improvements, and should be a pleasant and safe upgrade for everyone who is using the 3.3 series.

New in OpenSesame 3.3.10a9 Pre-release (Jul 30, 2021)

  • Bug fixes and imprvements:
  • pensesame:
  • Updated t 3.3.10
  • rapunzel:
  • Updated t 0.5.27
  • Issue #33: Shw the same files in quick-pen menu and flder brwser (enhancement)
  • Issue #35: Trying t clse the Rapunzel tab results in infinite lp (bug)
  • Issue #36: DataDckWidgets stay accessible by right-clicking n the tlbar after clsing them (bug)
  • Issue #37: Pythn kernels that are nt called Pythn shuld still be recgnized as Pythn (enhancement)
  • Issue #38: Make image previews resizable (enhancement)
  • Issue #39: Dn't keep executing cells after an Exceptin has ccurred (enhancement)
  • pensesame-extensin-sweb:
  • Updated t 1.3.13.3
  • Issue #27: inline_javascript incmpatible with pensesamerun (bug)
  • Issue #28: Cmpatibility check crashes n numeric clrs in sketchpad (bug)
  • pyqde.cre:
  • Updated t 3.2.11
  • Issue #12: After splitting the editr, the encding menu shws the wrng encding (bug)
  • Issue #13: Pasting a file n empty space (in flder brwser) results in warning that file already exists (bug)
  • Issue #14: Flder brwser mnitrs files and flders at the level abve the rt flder (bug)
  • pythn-datamatrix:
  • Updated t 0.12.0
  • pythn-qdatamatrix:
  • Updated t 0.1.31
  • Issue #8: Und results in alphabetical rdering f clumns (bug)

New in OpenSesame 3.3.10a6 Pre-release (Jun 25, 2021)

  • Bug fixes and improvements:
  • Opensesame:
  • Updated to 3.3.10
  • Opensesame-extensin-osweb:
  • Updated to 1.3.13.3
  • Issue #27: inline_javascript incompatible with opensesamerun (bug)
  • Issue #28: Compatibility check crashes on numeric colors in sketchpad (bug)
  • Pyqode.core:
  • Updated to 3.2.9

New in OpenSesame 3.3.5 (Jun 25, 2021)

  • Bug fixes and improvements:
  • Opensesame:
  • Updated to 3.3.10
  • Opensesame-extensin-osweb:
  • Updated to 1.3.13.3
  • Issue #27: inline_javascript incompatible with opensesamerun (bug)
  • Issue #28: Compatibility check crashes on numeric colors in sketchpad (bug)
  • Pyqode.core:
  • Updated to 3.2.9

New in OpenSesame 3.3.5 (Oct 12, 2020)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.3.5
  • log.open() does not update var.logfile or list of data files
  • form_base triggers RuntimeError when preload_items extension is enabled
  • pyqode.core
  • Updated to 3.0.9

New in OpenSesame 3.3.4 (Oct 6, 2020)

  • Bug fixes and improvements:
  • undo_manager is broken
  • Pressing a key in the overview area when no item is selected results in AttributeError
  • Dragging something onto the overview area with numeric mimetype data results in TypeError
  • JupyterConsole gives AttributeError after running an experiment in the inprocess runner
  • Sometimes the item script is disconnected from the item controls
  • External runner is broken
  • Checkbox being checked is not registered if text is empty
  • Dragging an item down in the overview area results in misplacement
  • Converting indentation between spaces and tabs ignores first line
  • Auto-detect indentation mode does not adjust the indentation width
  • avoid shader error for Linux with Nvidia drivers
  • "Help" in menubar not loading, stuck on " Please Wait"
  • pyqode.core:
  • Updated to 3.0.8
  • pyqode.python:
  • Updated to 3.0.2
  • open-cogscipyqode.python#1
  • rapunzel:
  • Updated to 0.4.11
  • datamatrix:
  • Updated to 0.11.0
  • qnotifications:
  • Updated to 2.0.6
  • open-cogsci/QNotifications#14
  • opensesame-extension-osweb:
  • Updated to 1.3.9.0

New in OpenSesame 3.3.3 (Jul 9, 2020)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.3.3
  • Better management of subprocesses
  • rapunzel:
  • Updated to 0.4.7
  • Better management of subprocesses
  • pyqode.core
  • Updated to 3.0.0
  • pyqode.python
  • Updated to 3.0.0
  • opensesame-plugin-media_player_mpy:
  • Updated to 0.1.11
  • QOpenScienceFramework:
  • Updated to 1.3.1

New in OpenSesame 3.3.1 (May 9, 2020)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.3.1
  • 690
  • 694
  • rapunzel:
  • Updated to 0.4.5
  • opensesame-extension-osweb
  • Updated to 1.3.8.0
  • smathot/opensesame-extension-osweb#17
  • smathot/opensesame-extension-osweb#19
  • osweb
  • Updated to 1.3.8
  • smathot/osweb#2
  • smathot/osweb#3
  • smathot/osweb#6
  • smathot/osweb#8
  • qdatamatrix:
  • Updated to 0.1.27
  • datamatrix
  • Updated to 0.10.16
  • pyqode.core
  • Updated to 2.15.0a5
  • opensesame-plugin-media_player_mpy
  • Included 0.1.8
  • Fixes compatibility with OpenSesame 3.3

New in OpenSesame 3.3.0 (Apr 25, 2020)

  • OpenSesame 3.3 several major improvements that make it even easier to develop experiments. OpenSesame 3.2 is fully backwards compatible with 3.1.
  • Rapunzel: a new code editor:
  • Rapunzel is a code editor, focused on numerical computing with Python and R. Technically, Rapunzel is a set of extensions for OpenSesame. But it looks and behaves as a standalone program. Happy coding!
  • A new inline_script editor:
  • Related to the development of Rapuznel: The inline_script item now uses a different library (PyQode) for the code editor. As a result, the code editor now supports many of the features that you would expect from a modern code editor, including code introspection and static code checking.
  • More color spaces:
  • OpenSesame now natively supports the HSV, HSL, and CIElab color spaces.
  • New sound backend based on PsychoPy:
  • The default backend is now psycho. One of the advantages of this backend is that the timing of sound presentation should be better. If you experience stuttering (clicky sound playback), you can still fall back to the the psycho_legacy backend, which uses the old PyGame-based sound system.
  • Support for inline_script items in coroutines:
  • You can now use inline_script items in coroutines. This makes it easier to combine Python scripting with coroutines, as compared to the old method of writing a custom generator function.

New in OpenSesame 3.2.7 (Jun 28, 2019)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.2.7
  • Issue #635: Canvas.copy() doesn't work for legacy backend (Bug)
  • Issue #643: Go back to loop tab after closing loop preview (Enhancement)
  • Issue #650: Text_input widget freezes after a while when using xpyriment backend (Bug)
  • Issue #651: Text_input form widget does not accept all characters with psycho backend (Bug)
  • Issue #652: Killing a killed experiment triggers Exception (Bug)
  • Issue #655: Cannot refer to canvas attribute of a sketchpad in coroutines before sketchpad onset (Bug)
  • Issue #656: Psycho back-end interprets orientation of Gabors horizontally mirrored. (Bug)
  • python-datamatrix:
  • Updated to 0.9.14
  • python-qprogedit:
  • Updated to 4.1.2
  • opensesame-extension-osweb:
  • Updated 1.3.0.1

New in OpenSesame 3.2.5 (Jul 30, 2018)

  • A new Japanese translation by Yuya Kinzuka (@aldichollow)
  • A revised Spanish translation by Roberto de Cecilio
  • Canvas.show() emits a warning when flipping took more than 16 ms
  • Canvas.elements_at() now uses proper geometry to check the borders of elements
  • A new standards-compliant logging system
  • Reduced start-up time by deferred loading of Jupyter Console

New in OpenSesame 3.2.4 (Apr 10, 2018)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.2.4
  • Issue #610: 3.2.1 disallows item name 'response' and fails to open older experiments (Bug)
  • Issue #615: Canvas.elements_at wrong for circles (Bug)
  • Issue #616: Fix canvas element group add (Bug)
  • Issue #617: Form(focus_widget=[...]) broken with WidgetFactory (Bug)
  • Issue #613: Fix canvas.set_bgcolor (Bug)
  • python-qosf:
  • Updated to 1.2.3

New in OpenSesame 3.2.2 (Mar 23, 2018)

  • Bug fixes and minor improvements

New in OpenSesame 3.2.1 (Feb 16, 2018)

  • Bug fixes and improvements:
  • opensesame:
  • Updated to 3.2.1
  • #580
  • #581
  • #583
  • Minor translation updates
  • datamatrix:
  • Updated to 0.8.1

New in OpenSesame 3.2.0 (Feb 9, 2018)

  • OpenSesame 3.2 brings several major improvements that make it even easier to develop experiments. OpenSesame 3.2 is fully backwards compatible with 3.1.
  • Forcibly kill your experiment!
  • You can now forcibly end your experiment by clicking on the Kill button in the main toolbar. This means that you no longer need to open a process/ task manager to end run-away experiments!
  • A better, PEP-8-compliant Python API
  • PEP-8 is a style guide for Python. Much modern Python software follows the PEP-8 guidelines—but, for historical reasons, OpenSesame didn't. As of 3.2, the public API now follows the guideline that the names of classes (and factory functions that generate classes) should be CamelCase, while names of objects and functions should be underscore_case. Practically speaking, this means that you now create Canvas object as follows:
  • my_canvas = Canvas() # Note the capital C!
  • my_canvas.fixdot()
  • my_canvas.show())
  • Of course, the old underscore_case names are still available as aliases, so backwards compatibility is preserved.
  • The API for forms has also been simplified. You no longer need to import libopensesame.widgets, and you no longer need to pass exp as the first argument:
  • form = Form()
  • button = Button(text=u'Ok!')
  • form.set_widget(button, (0, 0))
  • form._exec()
  • Improvements to the sketchpad and Canvas
  • Access and modify Canvas elements
  • Elements of a Canvas are now objects that can be named, accessed, and modified. This means that you no longer need to redraw an entire canvas to change a single element. For example, you can draw a rotating arm as follows:
  • my_canvas = Canvas()
  • my_canvas['arm'] = Line(0, 0, 0, 0)
  • for x, y in xy_circle(n=100, rho=100):
  • my_canvas['arm'].ex = x
  • my_canvas['arm'].ey = y
  • my_canvas.show()
  • clock.sleep(10)
  • The sketchpad also allows you to name elements.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/canvas
  • Improved support for HTML and non-Latin script
  • Text is now rendered by Qt, which is a modern library (the same library that is also used for the graphical interface). This means that you can now use real HTML in your text. This also means that left-to-right script and other non-Latin scripts are rendered much better.
  • Images can be rotated
  • Images can now be rotated. This work both in sketchpad items and Canvas objects.
  • Work with polar coordinates
  • If you right-click on a sketchpad elements, you can select 'Specify polar coordinates'. This allows you to calculate cartesian (x, y) coordinates based on polar coordinates, which is especially useful if you want to create circular configurations.
  • Form improvements
  • Improved form performance
  • Forms are now much faster when using the psycho and xpyriment backends. This is due to the fact that Canvas elements can now be updated individually, as described above.
  • Validation of form input
  • You can now validate the input of a form; that is, you can prevent a form from closing until certain criteria are met. In addition, you can exclude characters as input from TextInput widgets.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/forms/validation
  • Keyboard Improvements
  • Support for key-release events
  • The Keyboard() object now has a get_key_release() function, which allows you to collect key releases. Due to limitations of the underlying libraries, the function has two important limitations:
  • The returned key may be incorrect on non-QWERTY keyboard layouts
  • The function has not been implemented for the psycho backend
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/response/keyboard
  • Mouse Improvements
  • Support for mouse-release events
  • The Mouse() object now has a get_click_release() function, which allows you to collect mouse-click releases. This function is currently not implemented for the psycho backend.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/response/mouse
  • Use sketchpads to define regions of interest
  • You can now define a linked sketchpad in a mouse_response item. If you do this, the names of the elements on the sketchpad will be automatically used as regions of interest (ROIs) for the mouse clicks.
  • Changes in 3.1
  • OpenSesame 3.1 brings many improvements that make it even easier to develop experiments. OpenSesame 3.1 is fully backwards compatible with 3.0.
  • A new look!
  • OpenSesame has a new icon theme, based on Moka by Sam Hewitt. In addition, the user interface has been redesigned based on consistent human-interface guidelines. We hope you like the new look as much as we do!
  • A redesigned loop
  • The loop is now easier to use, and allows you to constrain randomization; this makes it possible, for example, to prevent the same stimulus from occurring twice in a row.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/structure/loop
  • Coroutines: doing things in parallel
  • The coroutines plugin is now included by default. coroutines allows you to run multiple other items in parallel; this makes it possible, for example, to continuously collect key presses while presenting a series of sketchpads.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/structure/coroutines
  • Open Science Framework integration
  • You can now log into the Open Science Framework (OSF) from within OpenSesame, and effortlessly synchronize experiments and data between your computer and the OSF. Thanks to the Center for Open Science for supporting this functionality!
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/osf
  • A responses object
  • There is a new standard Python object: responses. This keeps track of all responses that have been collected during the experiment.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/responses
  • Changes in 3.0
  • OpenSesame 3.0 has brought many improvements that make it even easier to develop experiments. Most changes are backwards compatible. That is, you can still do things the old way. However, a handful of changes are backwards incompatible, and it's important to be aware of those.
  • Backwards incompatible changes
  • Sampler properties
  • The sampler object has a number of properties that were previously functions. This concerns:
  • sampler.fade_in
  • sampler.pan
  • sampler.pitch
  • sampler.volume
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/sampler
  • CSS3-compatible colors
  • You can now use CSS3-compatible color specifications, as described here:
  • http://osdoc.cogsci.nl/3.2/manual/python/canvas
  • If you use color names (e.g. 'red', 'green', etc.), this may result in slightly different colors. For example, according to CSS3, 'green' is #008000 instead (as was the case previously) of #00FF00.
  • New file format (.osexp)
  • OpenSesame now saves experiments in .osexp format. Of course, you can still open the old formats (.opensesame and .opensesame.tar.gz). For more information, see:
  • http://osdoc.cogsci.nl/3.2/dev/fileformat
  • Simplified Python API
  • No more self and exp
  • It is no longer necessary to prefix self. or exp. when calling commonly used functions. For example, this will programmatically set the subject number to 2:
  • set_subject_nr(2)
  • For a list of common functions, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/common
  • The var object: Easy getting and setting of experimental variables
  • The old way of using self.get() to get, and exp.set() to set experimental variables has been replaced by a simpler syntax. For example, to set the variable condition, so that you can refer to it as [condition] in sketchpads, etc.:
  • var.condition = 'easy`'
  • And to get an experimental variable condition that was, for example, defined in a loop:
  • print('Condition is %s' % var.condition)
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/var
  • The clock object: Time functions
  • Time functions are now available through the clock object:
  • print('Current timestamp: %s' % clock.time())
  • clock.sleep(1000) # Sleep for 1 s
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/clock
  • The pool object: Accessing the file pool
  • The file pool is now accessible through the pool object, which supports a dict-like interface (but is not really a Python dict):
  • path = pool['image.png']
  • print('The full path to image.png is: %s' % path)
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/pool
  • No more from openexp.* import *
  • It is no longer necessary to import openexp classes, and to pass exp as the first argument. Instead, to create a canvas object, you can simply do:
  • my_canvas = canvas()
  • There are similar factory functions (as these are called) for keyboard, mouse, and sampler.
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/python/common
  • The synth is now a sampler
  • The synth is no longer a class of its own. Instead, it's a function that returns a sampler object that has been filled with a synthesized sample.
  • User-interface improvements
  • An IPython debug window
  • IPython, an interactive Python terminal for scientific computing, is now used for the debug window.
  • A live variable inspector
  • The variable inspector now shows the actual values of your variables while your experiment is running, and after your experiment has finished.
  • Undo
  • You can finally undo actions!
  • A new color scheme
  • The default color scheme is now Monokai. Again a dark color scheme, but with a higher contrast than the previous default, Solarized. This increased should increase legibility. And it looks good!
  • Consistent coordinates
  • Previously, OpenSesame used mixed, inconsistent screen coordinates: 0,0 was the display top-left when using Python code, and the display center when working in sketchpad items etc. As of 3.0, the display center is always 0,0, also in Python code.
  • If you want to switch back to the old behavior, you can disable the 'Uniform coordinates' option in the general tab. For backwards compatibility, 'Uniform coordinates' are automatically disabled when you open an old experiment.
  • Using Python in text strings
  • You can now embed Python in text strings using the [=...] syntax. For example, the following text string in a sketchpad:
  • Two times two equals [=2*2]
  • ... will show:
  • Two times two equals 4
  • For more information, see:
  • http://osdoc.cogsci.nl/3.2/manual/stimuli/text
  • Support for Python 3
  • OpenSesame now supports Python >= 3.4. However, many of OpenSesame's dependencies, notably PsychoPy and Expyriment, are Python 2-only. Therefore, Python 2.7 remains the default version of Python.

New in OpenSesame 3.1.9 (Sep 26, 2017)

  • OpenSesame 3.1.9 Jazzy James is the ninth maintenance release in the 3.1 series. It contains bug fixes and minor improvements, and should be a pleasant and safe upgrade for everyone who is using the 3.1 series.
  • An interesting feature of this release is the inclusion of QtPip, a graphical package manager for PyPi (pip install). This package is a tech preview, and should be used with caution.
  • Bug Fixes:
  • opensesame:
  • Updated to 3.1.9
  • Issue #553: Set audiosystem_autostart to False for Expyriment (Bug)
  • Fix an issue with sorting the loop table after generating a full-factorial design
  • qtpip:
  • Newly added 0.1.5 as tech preview

New in OpenSesame 3.1.0 (Jul 15, 2016)

  • A new look!:
  • OpenSesame has a new icon theme, based on Moka by Sam Hewitt. In addition, the user interface has been redesigned based on consistent human-interface guidelines. We hope you like the new look as much as we do!
  • A redesigned loop:
  • The loop is now easier to use, and allows you to constrain randomization; this makes it possible, for example, to prevent the same stimulus from occurring twice in a row.
  • Coroutines: doing things in parallel:
  • The coroutines plugin is now included by default. coroutines allows you to run multiple other items in parallel; this makes it possible, for example, to continuously collect key presses while presenting a series of sketchpads.
  • Open Science Framework integration:
  • You can now log into the Open Science Framework (OSF) from within OpenSesame, and effortlessly synchronize experiments and data between your computer and the OSF. Thanks to the Center for Open Science for supporting this functionality!
  • A responses object:
  • There is a new standard Python object: responses. This keeps track of all responses that have been collected during the experiment.
  • Changes in 3.0:
  • OpenSesame 3.0 has brought many improvements that make it even easier to develop experiments. Most changes are backwards compatible. That is, you can still do things the old way. However, a handful of changes are backwards incompatible, and it's important to be aware of those.
  • Backwards incompatible changes
  • Sampler properties:
  • The sampler object has a number of properties that were previously functions. This concerns:
  • sampler.fade_in
  • sampler.pan
  • sampler.pitch
  • sampler.volume
  • CSS3-compatible colors:
  • You can now use CSS3-compatible color specifications, as described here:
  • If you use color names (e.g. 'red', 'green', etc.), this may result in slightly different colors. For example, according to CSS3, 'green' is #008000 instead (as was the case previously) of #00FF00.
  • New file format (.osexp):
  • OpenSesame now saves experiments in .osexp format. Of course, you can still open the old formats (.opensesame and .opensesame.tar.gz). For more information:
  • SIMPLFIED PYTHON API:
  • No more self and exp:
  • It is no longer necessary to prefix self. or exp. when calling commonly used functions.
  • The var object: Easy getting and setting of experimental variables
  • The old way of using self.get() to get, and exp.set() to set experimental variables has been replaced by a simpler syntax. For example, to set the variable condition, so that you can refer to it as [condition] in sketchpads, etc.:
  • var.condition = 'easy`'
  • The pool object: Accessing the file pool
  • and to pass exp as the first argument.
  • The synth is no longer a class of its own. Instead, it's a function that returns a sampler object that has been filled with a synthesized sample.
  • UI IMPROVEMENTS:
  • An IPython debug window:
  • IPython, an interactive Python terminal for scientific computing, is now used for the debug window.
  • A live variable inspector:
  • The variable inspector now shows the actual values of your variables while your experiment is running, and after your experiment has finished.
  • Undo:
  • You can finally undo actions!
  • A new color scheme:
  • The default color scheme is now Monokai. Again a dark color scheme, but with a higher contrast than the previous default, Solarized. This increased should increase legibility. And it looks good!
  • Consistent coordinates:
  • Previously, OpenSesame used mixed, inconsistent screen coordinates: 0,0 was the display top-left when using Python code, and the display center when working in sketchpad items etc. As of 3.0, the display center is always 0,0, also in Python code.
  • If you want to switch back to the old behavior, you can disable the 'Uniform coordinates' option in the general tab. For backwards compatibility, 'Uniform coordinates' are automatically disabled when you open an old experiment.
  • Using Python in text strings:
  • You can now embed Python in text strings using the [=...] syntax.
  • SUPPORT FOR PYTHON 3:
  • OpenSesame now supports Python >= 3.4. However, many of OpenSesame's dependencies, notably PsychoPy and Expyriment, are Python 2-only. Therefore, Python 2.7 remains the default version of Python.

New in OpenSesame 3.0.7 (Mar 16, 2016)

  • Bugs fixed:
  • Fix ‘sound’ duration in sampler and sketchpad
  • Correctly escape slashes in OpenSesame syntax
  • Don’t crash on viewing remote urls ending in .md
  • Fix crashing help menu when off-line
  • Improvements:
  • Preserve cursor position when switching to and from inline_script items
  • Give better error message when missing end-of-block line for multiline variables

New in OpenSesame 3.0.6 (Feb 25, 2016)

  • Bugs fixed:
  • Fix a crash when adding an empty list to the file pool
  • Handle exotic variable types better in variable inspector
  • Fix initial state of auto_example plug-in
  • Catch errors in file pool
  • Fix background-color changes with psycho backend
  • Catch non osexception Exceptions during script validation
  • Add console property to sketchpad base_element
  • Avoid setting config values to QPyNullVariant
  • Don’t set fullscreen as property of experiment in opensesamerun
  • Don’t allow line breaks in sketchpad-element scripts
  • Improvements:
  • Add experiment_file experimental variable, which contains the file name of the experiment
  • Catch warnings when creating a new item and provide an informative message
  • Update default logfile location after save as
  • Improve file-type icons in file pool
  • Add deprecation warning to parallel plugin (use coroutines instead)
  • Allow external links in user hints
  • Move image element to top in sketchpad to make it more easily discoverable

New in OpenSesame 3.0.5 (Feb 17, 2016)

  • Bugs fixed:
  • Fix catching of unexpected errors in multiprocess runner (#382)
  • Don’t crash when entering numeric break-if statement in loop
  • Register ‘self’ when executing conditional statements (for backwards compatibility)
  • Fix missing py3compat import in joystick
  • Fix keyboard timestamps for older versions of PsychoPy (#381)
  • Show .osexp files while browsing with opensesamerun GUI (#385)
  • Fix rectangular envelope in noise patches
  • Fix too-many-files-open error with gabor and noise elements in sketchpad
  • Remove Python-3-incompatible relative imports from plugin_manager
  • Improvements:
  • Add unit test for required py3compat import and encoding declaration
  • Show version info in opensesamerun GUI
  • Improve Python 3 compatibility

New in OpenSesame 2.9.4 (Feb 12, 2015)

  • Prevent indirect recursion errors in overview area.
  • Don't crash on empty loop items.

New in OpenSesame 2.9.3 (Feb 10, 2015)

  • Bugs fixed:
  • Font size was specified in points instead of pixels in GUI
  • Legacy back-end crashed when specifying system font in general properties
  • Show arrow-size field in sketchpad
  • Fix a bug where description changes weren't applied
  • Improvements:
  • Allow descriptions to wrap over multiple lines for better screen use
  • Massively improved performance for large experiments

New in OpenSesame 2.9.2 (Jan 14, 2015)

  • Bugs fixed:
  • Fix numeric textline elements in sketchpad (#292)
  • 'Reset feedback variables' option restored in feedback item (#297)
  • Safely print unicode debug output (convert to ascii)
  • Fix unicode bug in opensesamerun gui
  • Convert backspace key to key name (#286)
  • Fix a bug with variably defined properties of circle elements in sketchpad GUI (#300)
  • Fix circle properties in xpyriment back-end (#299)
  • Fix a bug with variably defined properties of Gabor and noise patches in sketchpad GUI
  • Fix a bug when permanently deleting an item that is present in multiple sequence items
  • Improvements:
  • Use better fallback image in sketchpad
  • Deprecate transparent variable management (#294)
  • Add custom icon to debian packaging (#296)
  • Form_base plug-in shows script by default (#298)
  • Add custom icon to debian packaging
  • Deprecate transparent variable management option
  • More comprehensive translation possible
  • Hide xpyriment-gst back-end (not ready for production)
  • Custom cursor in sketchpad for increased visibility
  • Indicate whether python-bidi is available in general properties tab
  • List variables in alphabetical order in OpenSesame script
  • Add PsychoPy API menu to help extension

New in OpenSesame 0.27.4 Pre 2 (Sep 3, 2013)

  • New features and enhancements:
  • Chinese translation (zh_CN), contributed by Zhongquan Li and Gabriel Chan
  • HTML parsing is now optional in sketchpad items
  • Bugs fixed:
  • Prevent key names like ‘[1]’ to avoid variable errors
  • Fix color keyword argument in canvas.arrow()
  • Fix advanced_delay plug-in to work with Unicode
  • Intercept psychopy.core.quit() to prevent PsychoPy from killing OpenSesame
  • Windows packaging:
  • All dependencies have been updated to most recent version

New in OpenSesame 0.27.3 (Jul 9, 2013)

  • New features and enhancements:
  • French translation
  • Add screen parameter to psycho backend settings
  • Provide more detailed version information through modules()
  • Bugs fixed:
  • Fix many Unicode errors
  • Fix variable setting in checkbox form widgets
  • Forms respect item/ experiment background and foreground
  • Fix a bug where self always referred to the first inline_script of the experiment
  • Allow custom fonts in legacy backend
  • Windows packaging:
  • Use Python 2.7.5
  • All dependencies have been updated to most recent version

New in OpenSesame 0.27.2 (Jul 5, 2013)

  • New features and enhancements:
  • Support for Android
  • Add mouse.set_pos() and mouse.get_pressed() functions
  • Add new plug-in API
  • Support Markdown for help files
  • Add touch_response plug-in
  • Bugs fixed:
  • Warn when form widgets are too small
  • Allow 0 ms timeout in mouse objects
  • Allow variably defined foreground color in sketchpad
  • Expose more variables to variable inspector
  • Change name in script tab on name change
  • Fix translation issues in Gabor and noise patches
  • Allow capitalization changes when renaming items
  • Fix many Unicode errors
  • Windows packaging:
  • Use Python 2.7.4
  • All dependencies have been updated to most recent version

New in OpenSesame 0.27.1 (Jul 5, 2013)

  • Bugs fixed:
  • Fix numeric values in form checkboxes
  • Do not show start-up tab when opening a file directly
  • Catch errors due to missing closing quotations when editing a sketchpad element
  • Fix super() error in form plug-ins
  • Fix variable background color in sketchpad item
  • Catch recursion errors in general script
  • More comprehensive HTML and font implementation in psycho and legacy back-ends
  • Do not interpret special character sequences in script
  • Fix joystick plug-in
  • Fix exp.get_file() in opensesamerun
  • Fix option splitting by return in form_multiple_choice plug-in
  • Fix a bug where timeouts where always counted as incorrect
  • Windows packaging:
  • Include joystick plug-in

New in OpenSesame 0.27 (Jul 5, 2013)

  • Notable changes:
  • Added Expyriment backend
  • Added form functionality
  • Improved Unicode support
  • Improved internationalization
  • Added quick run button
  • Add ecological alternative to S&V template
  • Numerous bug-fixes
  • Improved compatibility with Nexus 7 tablet