Skip to content

Releases: jspsych/jsPsych

v5.0

07 Jan 22:09
Compare
Choose a tag to compare

This is a significant update to the library. If you are a veteran jspsych user, you will need to reacquaint yourself with some of the new syntax, which is conceptually similar but simplified for the ease of new users. Old experiments from v4.x will not work with v5.0.

Major changes

  • Completely overhauled the system for constructing trials, blocks, and chunks. All trials are now declared through a common system: the timeline. The timeline can contain nested timelines, replicating the features of blocks and chunks, while simplifying the syntax and improving the flexibility. Conditional and looping timelines are much easier to build. For more information, read the docs page on the new timeline.
  • Greatly simplified plugin files. There is no longer a need to define a .create method in the plugin file. Parameters are passed directly from the timeline into the .trial method.
  • New button-response plugin for showing a stimulus and getting a response via a button press. Buttons are highly customizable.
  • Automatic preloading. Most image and audio files will now automatically preload at the start of the experiment.
  • New survey-multi-choice plugin for answering multiple choice questions.
  • Option to run the experiment in fullscreen mode.

Minor changes

  • Greater flexibility in options for multi-stim-multi-response plugin.
  • Mouse responses are valid for single-stim plugin.
  • Improved CSS styling of buttons in general.
  • Audio playback works in Safari.
  • New function to generate a random subject ID.
  • Option to display a message when using endExperiment to terminate the experiment early.
  • New function to recover URL string variables.
  • Plugin files now live in the jsPsych.plugins namespace to provide better organization.
  • New .dataAsJSON method.
  • Option to override the DOM target for jsPsych at the trial level.
  • Fixed many small bugs throughout the library.

v4.3

27 Jun 00:56
Compare
Choose a tag to compare

Changes

  • jsPsych.pluginAPI.getKeyboardResponse has been redesigned to enable prevention of held down keys if desired. Plugins have been adjusted to take advantage of this new feature. The parameters for the method have been changed, and plugin developers should consult the documentation.
  • New method jsPsych.data.addDataToLastTrial allows data to be added to the most recently recorded trial.
  • New method jsPsych.randomization.shuffleNoRepeats shuffles an array with the constraint the neighboring items cannot be identical.
  • Extra parameters added to jspsych-categorize to implement a timeout if subject takes too long to respond.
  • New parameters for survey-text to allow for control over the size of the text fields.
  • Miscellaneous bug fixes

v4.2

08 Jun 16:40
Compare
Choose a tag to compare

Major Changes

  • There is a new plugin for displaying instructions to subjects. The plugin allows subjects to navigate forward and backward through multi-page instructions, using the keyboard or a mouse.
  • Data can now be appended to multiple trials at the chunk level
  • The on_finish parameter for trials now receives data from the trial as a parameter
  • Two methods added for navigating through the experiment: endExperiment ends an experiment immediately; endCurrentChunk ends the current chunk immediately.
  • Additional documentation added about data parameters, creating a new plugin, and default data collected by plugins
  • New method jsPsych.data.addProperties allows for data to be added to all trials, such as a subject ID or condition assignment.
  • New method to get data from a particular trial by trial index.
  • Internal handling of data and timing_post_trial parameters has been centralized, so plugin development no longer needs to worry about implementing those parameters.

Minor Changes

  • pluginAPI.normalizeTrialVariables renamed to pluginAPI.evaluateFunctionParameters
  • rt value in single-audio plugin is now reported in ms instead of seconds.
  • multiple uses of the same audio file will no longer cause the audio file to be loaded multiple times.
  • bug in which localSave method didn't work with JSON formatted data is fixed
  • More informative error messages for some common mistakes
  • continue_after_response parameter has been renamed to response_ends_trial in all plugins that use it

v4.1

19 Feb 17:42
Compare
Choose a tag to compare

Major changes

  • There is now a plugin for playing audio files: jspsych-single-audio. The plugin uses the WebAudio API, which allows for relatively precise control over the timing. To support this plugin, several changes and additions were made to the main jspsych.js library. Audio files are automatically preloaded when used with this plugin.
  • All raphael.js dependencies have been migrated to the snap.svg library.
  • A new plugin, jspsych-reconstruction, was added. This plugin allows subjects to interact with a dynamic stimulus to adjust a parameter value.
  • A folder called tests&examples was added to the repository. It contains simple examples for each of the plugins for both testing and instructional purposes.
  • A new method called jsPsych.randomization.sample was added to allow for sampling with and without replacement from an array.

Minor changes

  • The same-different, xab, and similarity plugins were modified so that they record the stimulus in a single field in the data.
  • The dataAsCSV() function was fixed after being broken in version 4.0.
  • The displayData() function will no longer render HTML content on the screen.
  • The survey-text and survey-likert plugins now support a parameter called 'preamble' which allows for additional content to be shown at the top of the page.
  • The single-stim plugin now allows for the choices parameter to be set to 'none', which disables responding.
  • The check_fn parameter in the HTML plugin now has a default value that always returns true.
  • Bug fixes in the categorize, categorize-animation, and visual-search-circle plugins.

v4.0.1

10 Nov 14:18
Compare
Choose a tag to compare

This is a minor update that fixes a few bugs identified in version 4.0.

  • The jsPsych.data.dataAsCSV method and other CSV related functions were broken after the 4.0 update. This fixes those issues.
  • The default value for the choices parameter in the single-stim plugin has been fixed
  • There was an error in saving responses in the single-stim plugin under certain configurations of the parameters.

This release also adds a new plugin, multi-stim-multi-response. This plugin is a more general version of the single-stim plugin. It allows for displaying multiple stimuli in a trial and collecting more than one response per trial.

v4.0

21 Oct 17:53
Compare
Choose a tag to compare

jsPsych version 4.0

This is a major update that contains a number of new features, updates, and bug fixes.

  • A new documentation site has been built, at http://docs.jspsych.org. Documentation files are now included in the GitHub repository, in the docs directory.
  • Looping and conditional designs are now possible, using the new chunk structure. See the documentation for more details.
  • A progress bar can be automatically generated for an experiment and displayed at the top of the page. See the documentation for more details.
  • Callback functions can be specified at the block level.
  • Added support for randomizing and repeating trials within a block.
  • The dataAPI module has been renamed data and several new functions were added. See the documentation for more details.
  • Improvements were made to the process of creating plugins, by centralizing some of the parameters that are used in all plugins, and removing un-necessary parameters to the plugin.trial method.
  • A set of default data is now collected for every plugin.
  • Many minor changes were made to plugins to fix various bugs and make improvements.

v3.1

16 Jul 17:49
Compare
Choose a tag to compare
  • Adds the jsPsych.dataAPI.displayData method, which is a simple way to view data in the browser for testing purposes.
  • A few assorted bug fixes related to the introduction of modules in the core library with v3.0

v3.0

09 Jul 16:10
Compare
Choose a tag to compare

This is a major update that changes the API of the core library, adds several new features, and contains bug fixes.

  • Functions in the core library have been organized into modules. All functions that are critical for running an experiment are still scoped to the base jsPsych object, i.e. jsPsych.init(), while plugins that offer optional features have been moved into modules off the base object. The four modules are: jsPsych.dataAPI, jsPsych.pluginAPI, jsPsych.randomization, and jsPsych.turk. Several new functions were added. More information on the functions contained within the modules is available on the project wiki.
  • A basic style sheet has been added to the project. Adding this CSS file will add minimal styling to make jsPsych experiments look polished without any additional style rules.
  • A new plugin, jspsych-visual-search-circle, has been added. This plugin can be used for running simple visual search experiments where the stimuli are presented equidistant from a fixation point.

v2.4

23 May 15:24
Compare
Choose a tag to compare
  • Removed /dev folder from plugins directory. All /dev content can be found on the plugin-dev-old branch. As plugins from the /dev folder are updated and tested, they will be merged into the main repository branch.
  • Added enforceArray method to the core library, to handle cases where blocks have a single trial and therefore the array specification for certain trial parameters is tedious. Currently, only the text plugin has been modified to take advantage of this method. Other plugins will be updated soon.
  • The variables parameter was removed from the text plugin, since passing the parameter value as a function can achieve the same purpose and is easier to understand.

v2.3.2

15 May 18:32
Compare
Choose a tag to compare
  • Updated the normalizeTrialVariables method in the core library to allow for some variables to be protected, and thus preserve their status as functions. This was crucial for the HTML plugin, which needs a function parameter to check if the consent form has been correctly filled out. This change is only relevant for developing plugins (it provides more options on how to treat trial parameters) and for people who are using the HTML plugin in v2.3 and v2.3.1