jspsych 6.2.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -29
- package/css/jspsych.css +39 -39
- package/dist/JsPsych.d.ts +112 -0
- package/dist/TimelineNode.d.ts +34 -0
- package/dist/index.browser.js +3164 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.browser.min.js +2 -0
- package/dist/index.browser.min.js.map +1 -0
- package/dist/index.cjs +3158 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +3152 -0
- package/dist/index.js.map +1 -0
- package/dist/migration.d.ts +3 -0
- package/dist/modules/data/DataCollection.d.ts +45 -0
- package/dist/modules/data/DataColumn.d.ts +15 -0
- package/dist/modules/data/index.d.ts +25 -0
- package/dist/modules/data/utils.d.ts +3 -0
- package/dist/modules/extensions.d.ts +22 -0
- package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
- package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
- package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
- package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
- package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
- package/dist/modules/plugin-api/index.d.ts +8 -0
- package/dist/modules/plugins.d.ts +129 -0
- package/dist/modules/randomization.d.ts +35 -0
- package/dist/modules/turk.d.ts +40 -0
- package/dist/modules/utils.d.ts +7 -0
- package/package.json +32 -15
- package/src/JsPsych.ts +884 -0
- package/src/TimelineNode.ts +536 -0
- package/src/index.ts +71 -0
- package/src/migration.ts +37 -0
- package/src/modules/data/DataCollection.ts +198 -0
- package/src/modules/data/DataColumn.ts +86 -0
- package/src/modules/data/index.ts +174 -0
- package/src/modules/data/utils.ts +75 -0
- package/src/modules/extensions.ts +23 -0
- package/src/modules/plugin-api/HardwareAPI.ts +32 -0
- package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
- package/src/modules/plugin-api/MediaAPI.ts +337 -0
- package/src/modules/plugin-api/SimulationAPI.ts +181 -0
- package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
- package/src/modules/plugin-api/index.ts +28 -0
- package/src/modules/plugins.ts +158 -0
- package/src/modules/randomization.ts +327 -0
- package/src/modules/turk.ts +99 -0
- package/src/modules/utils.ts +30 -0
- package/.github/workflows/jest.yml +0 -20
- package/code-of-conduct.md +0 -56
- package/contributors.md +0 -61
- package/docs/CNAME +0 -1
- package/docs/about/about.md +0 -18
- package/docs/about/contributing.md +0 -43
- package/docs/about/license.md +0 -25
- package/docs/about/support.md +0 -7
- package/docs/core_library/jspsych-core.md +0 -661
- package/docs/core_library/jspsych-data.md +0 -589
- package/docs/core_library/jspsych-pluginAPI.md +0 -510
- package/docs/core_library/jspsych-randomization.md +0 -397
- package/docs/core_library/jspsych-turk.md +0 -102
- package/docs/img/blue.png +0 -0
- package/docs/img/folder-setup.png +0 -0
- package/docs/img/folder-with-html.png +0 -0
- package/docs/img/githubreleases.jpg +0 -0
- package/docs/img/jspsych-favicon.png +0 -0
- package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
- package/docs/img/jspsych-logo.jpg +0 -0
- package/docs/img/orange.png +0 -0
- package/docs/img/palmer_stim.png +0 -0
- package/docs/img/progress_bar.png +0 -0
- package/docs/img/visual_search_example.jpg +0 -0
- package/docs/index.md +0 -9
- package/docs/overview/browser-device-support.md +0 -35
- package/docs/overview/callbacks.md +0 -140
- package/docs/overview/data.md +0 -281
- package/docs/overview/exclude-browser.md +0 -32
- package/docs/overview/experiment-options.md +0 -121
- package/docs/overview/fullscreen.md +0 -36
- package/docs/overview/media-preloading.md +0 -91
- package/docs/overview/mturk.md +0 -77
- package/docs/overview/progress-bar.md +0 -110
- package/docs/overview/record-browser-interactions.md +0 -23
- package/docs/overview/running-experiments.md +0 -95
- package/docs/overview/timeline.md +0 -387
- package/docs/overview/trial.md +0 -142
- package/docs/plugins/creating-a-plugin.md +0 -79
- package/docs/plugins/jspsych-animation.md +0 -40
- package/docs/plugins/jspsych-audio-button-response.md +0 -60
- package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
- package/docs/plugins/jspsych-audio-slider-response.md +0 -53
- package/docs/plugins/jspsych-call-function.md +0 -81
- package/docs/plugins/jspsych-canvas-button-response.md +0 -66
- package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
- package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
- package/docs/plugins/jspsych-categorize-animation.md +0 -60
- package/docs/plugins/jspsych-categorize-html.md +0 -52
- package/docs/plugins/jspsych-categorize-image.md +0 -53
- package/docs/plugins/jspsych-cloze.md +0 -45
- package/docs/plugins/jspsych-external-html.md +0 -70
- package/docs/plugins/jspsych-free-sort.md +0 -55
- package/docs/plugins/jspsych-fullscreen.md +0 -57
- package/docs/plugins/jspsych-html-button-response.md +0 -42
- package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
- package/docs/plugins/jspsych-html-slider-response.md +0 -45
- package/docs/plugins/jspsych-iat-html.md +0 -64
- package/docs/plugins/jspsych-iat-image.md +0 -64
- package/docs/plugins/jspsych-image-button-response.md +0 -46
- package/docs/plugins/jspsych-image-keyboard-response.md +0 -57
- package/docs/plugins/jspsych-image-slider-response.md +0 -52
- package/docs/plugins/jspsych-instructions.md +0 -58
- package/docs/plugins/jspsych-maxdiff.md +0 -42
- package/docs/plugins/jspsych-rdk.md +0 -119
- package/docs/plugins/jspsych-reconstruction.md +0 -48
- package/docs/plugins/jspsych-resize.md +0 -39
- package/docs/plugins/jspsych-same-different-html.md +0 -53
- package/docs/plugins/jspsych-same-different-image.md +0 -66
- package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -50
- package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
- package/docs/plugins/jspsych-survey-html-form.md +0 -50
- package/docs/plugins/jspsych-survey-likert.md +0 -70
- package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
- package/docs/plugins/jspsych-survey-multi-select.md +0 -53
- package/docs/plugins/jspsych-survey-text.md +0 -63
- package/docs/plugins/jspsych-video-button-response.md +0 -52
- package/docs/plugins/jspsych-video-keyboard-response.md +0 -48
- package/docs/plugins/jspsych-video-slider-response.md +0 -58
- package/docs/plugins/jspsych-visual-search-circle.md +0 -52
- package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
- package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
- package/docs/plugins/overview.md +0 -111
- package/docs/tutorials/hello-world.md +0 -144
- package/docs/tutorials/rt-task.md +0 -1107
- package/examples/add-to-end-of-timeline.html +0 -32
- package/examples/conditional-and-loop-functions.html +0 -63
- package/examples/css/jquery-ui.css +0 -1225
- package/examples/data-add-properties.html +0 -40
- package/examples/data-as-function.html +0 -36
- package/examples/data-from-timeline.html +0 -45
- package/examples/data-from-url.html +0 -21
- package/examples/demo-flanker.html +0 -108
- package/examples/demo-simple-rt-task.html +0 -104
- package/examples/demos/demo_1.html +0 -29
- package/examples/demos/demo_2.html +0 -43
- package/examples/demos/demo_3.html +0 -58
- package/examples/display-element-to-embed-experiment.html +0 -73
- package/examples/end-active-node.html +0 -52
- package/examples/end-experiment.html +0 -43
- package/examples/exclusions.html +0 -32
- package/examples/external_html/simple_consent.html +0 -4
- package/examples/img/1.gif +0 -0
- package/examples/img/10.gif +0 -0
- package/examples/img/11.gif +0 -0
- package/examples/img/12.gif +0 -0
- package/examples/img/2.gif +0 -0
- package/examples/img/3.gif +0 -0
- package/examples/img/4.gif +0 -0
- package/examples/img/5.gif +0 -0
- package/examples/img/6.gif +0 -0
- package/examples/img/7.gif +0 -0
- package/examples/img/8.gif +0 -0
- package/examples/img/9.gif +0 -0
- package/examples/img/age/of1.jpg +0 -0
- package/examples/img/age/of2.jpg +0 -0
- package/examples/img/age/of3.jpg +0 -0
- package/examples/img/age/om1.jpg +0 -0
- package/examples/img/age/om2.jpg +0 -0
- package/examples/img/age/om3.jpg +0 -0
- package/examples/img/age/yf1.jpg +0 -0
- package/examples/img/age/yf4.jpg +0 -0
- package/examples/img/age/yf5.jpg +0 -0
- package/examples/img/age/ym2.jpg +0 -0
- package/examples/img/age/ym3.jpg +0 -0
- package/examples/img/age/ym5.jpg +0 -0
- package/examples/img/backwardN.gif +0 -0
- package/examples/img/blue.png +0 -0
- package/examples/img/con1.png +0 -0
- package/examples/img/con2.png +0 -0
- package/examples/img/fixation.gif +0 -0
- package/examples/img/happy_face_1.jpg +0 -0
- package/examples/img/happy_face_2.jpg +0 -0
- package/examples/img/happy_face_3.jpg +0 -0
- package/examples/img/happy_face_4.jpg +0 -0
- package/examples/img/inc1.png +0 -0
- package/examples/img/inc2.png +0 -0
- package/examples/img/normalN.gif +0 -0
- package/examples/img/orange.png +0 -0
- package/examples/img/redX.png +0 -0
- package/examples/img/ribbon.jpg +0 -0
- package/examples/img/sad_face_1.jpg +0 -0
- package/examples/img/sad_face_2.jpg +0 -0
- package/examples/img/sad_face_3.jpg +0 -0
- package/examples/img/sad_face_4.jpg +0 -0
- package/examples/js/snap.svg-min.js +0 -21
- package/examples/jspsych-RDK.html +0 -58
- package/examples/jspsych-animation.html +0 -33
- package/examples/jspsych-audio-button-response.html +0 -52
- package/examples/jspsych-audio-keyboard-response.html +0 -62
- package/examples/jspsych-audio-slider-response.html +0 -55
- package/examples/jspsych-call-function.html +0 -32
- package/examples/jspsych-canvas-button-response.html +0 -95
- package/examples/jspsych-canvas-keyboard-response.html +0 -78
- package/examples/jspsych-canvas-slider-response.html +0 -67
- package/examples/jspsych-categorize-animation.html +0 -46
- package/examples/jspsych-categorize-html.html +0 -38
- package/examples/jspsych-categorize-image.html +0 -38
- package/examples/jspsych-cloze.html +0 -42
- package/examples/jspsych-free-sort.html +0 -97
- package/examples/jspsych-fullscreen.html +0 -44
- package/examples/jspsych-html-button-response.html +0 -46
- package/examples/jspsych-html-keyboard-response.html +0 -42
- package/examples/jspsych-html-slider-response.html +0 -53
- package/examples/jspsych-iat.html +0 -510
- package/examples/jspsych-image-button-response.html +0 -84
- package/examples/jspsych-image-keyboard-response.html +0 -78
- package/examples/jspsych-image-slider-response.html +0 -76
- package/examples/jspsych-instructions.html +0 -37
- package/examples/jspsych-maxdiff.html +0 -33
- package/examples/jspsych-reconstruction.html +0 -43
- package/examples/jspsych-resize.html +0 -34
- package/examples/jspsych-same-different-html.html +0 -28
- package/examples/jspsych-same-different-image.html +0 -33
- package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
- package/examples/jspsych-serial-reaction-time.html +0 -54
- package/examples/jspsych-survey-html-form.html +0 -33
- package/examples/jspsych-survey-likert.html +0 -42
- package/examples/jspsych-survey-multi-choice.html +0 -40
- package/examples/jspsych-survey-multi-select.html +0 -42
- package/examples/jspsych-survey-text.html +0 -34
- package/examples/jspsych-video-button-response.html +0 -57
- package/examples/jspsych-video-keyboard-response.html +0 -53
- package/examples/jspsych-video-slider-response.html +0 -55
- package/examples/jspsych-visual-search-circle.html +0 -58
- package/examples/jspsych-vsl-animate-occlusion.html +0 -29
- package/examples/jspsych-vsl-grid-scene.html +0 -41
- package/examples/lexical-decision.html +0 -132
- package/examples/manual-preloading.html +0 -53
- package/examples/pause-unpause.html +0 -33
- package/examples/progress-bar.html +0 -62
- package/examples/sound/hammer.mp3 +0 -0
- package/examples/sound/sound.mp3 +0 -0
- package/examples/sound/speech_blue.mp3 +0 -0
- package/examples/sound/speech_green.mp3 +0 -0
- package/examples/sound/speech_joke.mp3 +0 -0
- package/examples/sound/speech_red.mp3 +0 -0
- package/examples/sound/tone.mp3 +0 -0
- package/examples/timeline-variables-sampling.html +0 -50
- package/examples/timeline-variables.html +0 -55
- package/examples/video/sample_video.mp4 +0 -0
- package/jspsych.js +0 -2796
- package/license.txt +0 -21
- package/mkdocs.yml +0 -104
- package/plugins/jspsych-animation.js +0 -189
- package/plugins/jspsych-audio-button-response.js +0 -247
- package/plugins/jspsych-audio-keyboard-response.js +0 -204
- package/plugins/jspsych-audio-slider-response.js +0 -262
- package/plugins/jspsych-call-function.js +0 -58
- package/plugins/jspsych-canvas-button-response.js +0 -199
- package/plugins/jspsych-canvas-keyboard-response.js +0 -155
- package/plugins/jspsych-canvas-slider-response.js +0 -207
- package/plugins/jspsych-categorize-animation.js +0 -266
- package/plugins/jspsych-categorize-html.js +0 -220
- package/plugins/jspsych-categorize-image.js +0 -222
- package/plugins/jspsych-cloze.js +0 -112
- package/plugins/jspsych-external-html.js +0 -112
- package/plugins/jspsych-free-sort.js +0 -444
- package/plugins/jspsych-fullscreen.js +0 -104
- package/plugins/jspsych-html-button-response.js +0 -188
- package/plugins/jspsych-html-keyboard-response.js +0 -149
- package/plugins/jspsych-html-slider-response.js +0 -202
- package/plugins/jspsych-iat-html.js +0 -284
- package/plugins/jspsych-iat-image.js +0 -286
- package/plugins/jspsych-image-button-response.js +0 -311
- package/plugins/jspsych-image-keyboard-response.js +0 -247
- package/plugins/jspsych-image-slider-response.js +0 -353
- package/plugins/jspsych-instructions.js +0 -237
- package/plugins/jspsych-maxdiff.js +0 -174
- package/plugins/jspsych-rdk.js +0 -1373
- package/plugins/jspsych-reconstruction.js +0 -134
- package/plugins/jspsych-resize.js +0 -166
- package/plugins/jspsych-same-different-html.js +0 -168
- package/plugins/jspsych-same-different-image.js +0 -169
- package/plugins/jspsych-serial-reaction-time-mouse.js +0 -213
- package/plugins/jspsych-serial-reaction-time.js +0 -247
- package/plugins/jspsych-survey-html-form.js +0 -171
- package/plugins/jspsych-survey-likert.js +0 -195
- package/plugins/jspsych-survey-multi-choice.js +0 -208
- package/plugins/jspsych-survey-multi-select.js +0 -232
- package/plugins/jspsych-survey-text.js +0 -185
- package/plugins/jspsych-video-button-response.js +0 -320
- package/plugins/jspsych-video-keyboard-response.js +0 -279
- package/plugins/jspsych-video-slider-response.js +0 -351
- package/plugins/jspsych-visual-search-circle.js +0 -259
- package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
- package/plugins/jspsych-vsl-grid-scene.js +0 -103
- package/plugins/template/jspsych-plugin-template.js +0 -35
- package/tests/README.md +0 -7
- package/tests/jsPsych/default-iti.test.js +0 -51
- package/tests/jsPsych/default-parameters.test.js +0 -58
- package/tests/jsPsych/endexperiment.test.js +0 -49
- package/tests/jsPsych/events.test.js +0 -369
- package/tests/jsPsych/init.test.js +0 -48
- package/tests/jsPsych/loads.test.js +0 -7
- package/tests/jsPsych/min-rt.test.js +0 -58
- package/tests/jsPsych/progressbar.test.js +0 -202
- package/tests/jsPsych/timeline-variables.test.js +0 -254
- package/tests/jsPsych/timelines.test.js +0 -498
- package/tests/jsPsych.data/datacollection.test.js +0 -116
- package/tests/jsPsych.data/datacolumn.test.js +0 -50
- package/tests/jsPsych.data/datamodule.test.js +0 -152
- package/tests/jsPsych.data/dataparameter.test.js +0 -251
- package/tests/jsPsych.data/interactions.test.js +0 -109
- package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -144
- package/tests/jsPsych.randomization/randomziation.test.js +0 -27
- package/tests/jsPsych.utils/utils.test.js +0 -58
- package/tests/media/blue.png +0 -0
- package/tests/media/orange.png +0 -0
- package/tests/media/sample_video.mp4 +0 -0
- package/tests/media/sound.mp3 +0 -0
- package/tests/plugins/plugin-animation.test.js +0 -35
- package/tests/plugins/plugin-audio-button-response.test.js +0 -15
- package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
- package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
- package/tests/plugins/plugin-call-function.test.js +0 -49
- package/tests/plugins/plugin-categorize-animation.test.js +0 -274
- package/tests/plugins/plugin-categorize-html.test.js +0 -17
- package/tests/plugins/plugin-categorize-image.test.js +0 -17
- package/tests/plugins/plugin-cloze.test.js +0 -140
- package/tests/plugins/plugin-free-sort.test.js +0 -112
- package/tests/plugins/plugin-fullscreen.test.js +0 -41
- package/tests/plugins/plugin-html-button-response.test.js +0 -161
- package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
- package/tests/plugins/plugin-html-slider-response.test.js +0 -155
- package/tests/plugins/plugin-iat-html.test.js +0 -328
- package/tests/plugins/plugin-iat-image.test.js +0 -308
- package/tests/plugins/plugin-image-button-response.test.js +0 -183
- package/tests/plugins/plugin-image-keyboard-response.test.js +0 -154
- package/tests/plugins/plugin-image-slider-response.test.js +0 -183
- package/tests/plugins/plugin-instructions.test.js +0 -66
- package/tests/plugins/plugin-maxdiff.test.js +0 -39
- package/tests/plugins/plugin-rdk.test.js +0 -17
- package/tests/plugins/plugin-reconstruction.test.js +0 -16
- package/tests/plugins/plugin-resize.test.js +0 -16
- package/tests/plugins/plugin-same-different-html.test.js +0 -17
- package/tests/plugins/plugin-same-different-image.test.js +0 -17
- package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
- package/tests/plugins/plugin-serial-reaction-time.test.js +0 -69
- package/tests/plugins/plugin-survey-html-form.test.js +0 -44
- package/tests/plugins/plugin-survey-likert.test.js +0 -48
- package/tests/plugins/plugin-survey-multi-choice.test.js +0 -48
- package/tests/plugins/plugin-survey-multi-select.test.js +0 -72
- package/tests/plugins/plugin-survey-text.test.js +0 -115
- package/tests/plugins/plugin-video-button-response.test.js +0 -35
- package/tests/plugins/plugin-video-keyboard-response.test.js +0 -35
- package/tests/plugins/plugin-video-slider-response.test.js +0 -34
- package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
- package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
- package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
- package/tests/testing-utils.js +0 -13
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# jspsych-audio-button-response
|
|
2
|
-
|
|
3
|
-
This plugin plays audio files and records responses generated with a button click.
|
|
4
|
-
|
|
5
|
-
If the browser supports it, audio files are played using the WebAudio API. This allows for reasonably precise timing of the playback. The timing of responses generated is measured against the WebAudio specific clock, improving the measurement of response times. If the browser does not support the WebAudio API, then the audio file is played with HTML5 audio.
|
|
6
|
-
|
|
7
|
-
Audio files are automatically preloaded by jsPsych. However, if you are using timeline variables or another dynamic method to specify the audio stimulus you will need to [manually preload](/overview/media-preloading/#manual-preloading) the audio.
|
|
8
|
-
|
|
9
|
-
The trial can end when the subject responds, when the audio file has finished playing, or if the subject has failed to respond within a fixed length of time. You can also prevent a button response from being made before the audio has finished playing.
|
|
10
|
-
|
|
11
|
-
## Parameters
|
|
12
|
-
|
|
13
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
14
|
-
|
|
15
|
-
Parameter | Type | Default Value | Description
|
|
16
|
-
----------|------|---------------|------------
|
|
17
|
-
stimulus | audio file | *undefined* | Path to audio file to be played.
|
|
18
|
-
choices | array of strings | *undefined* | Labels for the buttons. Each different string in the array will generate a different button.
|
|
19
|
-
button_html | HTML string | `'<button class="jspsych-btn">%choice%</button>'` | A template of HTML for generating the button elements. You can override this to create customized buttons of various kinds. The string `%choice%` will be changed to the corresponding element of the `choices` array. You may also specify an array of strings, if you need different HTML to render for each button. If you do specify an array, the `choices` array and this array must have the same length. The HTML from position 0 in the `button_html` array will be used to create the button for element 0 in the `choices` array, and so on.
|
|
20
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
21
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, the trial will wait for a response indefinitely.
|
|
22
|
-
margin_vertical | string | '0px' | Vertical margin of the button(s).
|
|
23
|
-
margin_horizontal | string | '8px' | Horizontal margin of the button(s).
|
|
24
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can set this parameter to `false` to force the subject to listen to the stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
25
|
-
trial_ends_after_audio | boolean | false | If true, then the trial will end as soon as the audio file finishes playing.
|
|
26
|
-
response_allowed_while_playing | boolean | true | If true, then responses are allowed while the audio is playing. If false, then the audio must finish playing before the button choices are enabled and a response is accepted. Once the audio has played all the way through, the buttons are enabled and a response is allowed (including while the audio is being re-played via on-screen playback controls).
|
|
27
|
-
|
|
28
|
-
## Data Generated
|
|
29
|
-
|
|
30
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
31
|
-
|
|
32
|
-
Name | Type | Value
|
|
33
|
-
-----|------|------
|
|
34
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
35
|
-
button_pressed | numeric | Indicates which button the subject pressed. The first button in the `choices` array is 0, the second is 1, and so on.
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
#### Displaying question until subject gives a response
|
|
40
|
-
|
|
41
|
-
```javascript
|
|
42
|
-
var trial = {
|
|
43
|
-
type: 'audio-button-response',
|
|
44
|
-
stimulus: 'sound/tone.mp3',
|
|
45
|
-
choices: ['Low', 'High'],
|
|
46
|
-
prompt: "<p>Is the pitch high or low?</p>"
|
|
47
|
-
};
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
#### Using custom button HTML to use images as buttons
|
|
51
|
-
|
|
52
|
-
```javascript
|
|
53
|
-
var trial = {
|
|
54
|
-
type: 'audio-button-response',
|
|
55
|
-
stimulus: 'sound/roar.mp3',
|
|
56
|
-
choices: ['lion.png', 'elephant.png', 'monkey.png'],
|
|
57
|
-
prompt: "<p>Which animal made the sound?</p>",
|
|
58
|
-
button_html: '<img src="%choice%" />'
|
|
59
|
-
};
|
|
60
|
-
```
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# jspsych-audio-keyboard-response
|
|
2
|
-
|
|
3
|
-
This plugin plays audio files and records responses generated with the keyboard.
|
|
4
|
-
|
|
5
|
-
If the browser supports it, audio files are played using the WebAudio API. This allows for reasonably precise timing of the playback. The timing of responses generated is measured against the WebAudio specific clock, improving the measurement of response times. If the browser does not support the WebAudio API, then the audio file is played with HTML5 audio.
|
|
6
|
-
|
|
7
|
-
Audio files are automatically preloaded by jsPsych. However, if you are using timeline variables or another dynamic method to specify the audio stimulus you will need to [manually preload](/overview/media-preloading/#manual-preloading) the audio.
|
|
8
|
-
|
|
9
|
-
The trial can end when the subject responds, when the audio file has finished playing, or if the subject has failed to respond within a fixed length of time. You can also prevent a keyboard response from being recorded before the audio has finished playing.
|
|
10
|
-
|
|
11
|
-
## Parameters
|
|
12
|
-
|
|
13
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of undefined must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
14
|
-
|
|
15
|
-
Parameter | Type | Default Value | Description
|
|
16
|
-
----------|------|---------------|------------
|
|
17
|
-
stimulus | audio file | undefined | Path to audio file to be played.
|
|
18
|
-
choices | array of keycodes | `jsPsych.ALL_KEYS` | This array contains the keys that the subject is allowed to press in order to respond to the stimulus. Keys can be specified as their [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) or as characters (e.g., `'a'`, `'q'`). The default value of `jsPsych.ALL_KEYS` means that all keys will be accepted as valid responses. Specifying `jsPsych.NO_KEYS` will mean that no responses are allowed.
|
|
19
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
20
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, then the trial will wait for a response indefinitely.
|
|
21
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can use set this parameter to `false` to force the subject to listen to the stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
22
|
-
trial_ends_after_audio | boolean | false | If true, then the trial will end as soon as the audio file finishes playing.
|
|
23
|
-
response_allowed_while_playing | boolean | true | If true, then responses are allowed while the audio is playing. If false, then the audio must finish playing before a keyboard response is accepted. Once the audio has played all the way through, a valid keyboard response is allowed (including while the audio is being re-played via on-screen playback controls).
|
|
24
|
-
|
|
25
|
-
## Data Generated
|
|
26
|
-
|
|
27
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
28
|
-
|
|
29
|
-
Name | Type | Value
|
|
30
|
-
-----|------|------
|
|
31
|
-
key_press | numeric | Indicates which key the subject pressed. The value is the [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) corresponding to the subject's response.
|
|
32
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
33
|
-
stimulus | string | Path to the audio file that played during the trial.
|
|
34
|
-
|
|
35
|
-
## Examples
|
|
36
|
-
|
|
37
|
-
#### Displaying trial until subject gives a response
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
40
|
-
var trial = {
|
|
41
|
-
type: 'audio-keyboard-response',
|
|
42
|
-
stimulus: 'sound/tone.mp3',
|
|
43
|
-
choices: ['e', 'i'],
|
|
44
|
-
prompt: "<p>Is the pitch high or low? Press 'e' for low and 'i' for high.</p>",
|
|
45
|
-
response_ends_trial: false
|
|
46
|
-
};
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
#### Play a sound with no user response; trial ends after sound plays
|
|
50
|
-
|
|
51
|
-
```javascript
|
|
52
|
-
var trial = {
|
|
53
|
-
type: 'audio-keyboard-response',
|
|
54
|
-
stimulus: 'sound/tone.mp3',
|
|
55
|
-
choices: jsPsych.NO_KEYS,
|
|
56
|
-
trial_ends_after_audio: true
|
|
57
|
-
};
|
|
58
|
-
```
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# jspsych-audio-slider-response
|
|
2
|
-
|
|
3
|
-
This plugin plays an audio file and allows the subject to respond by dragging a slider.
|
|
4
|
-
|
|
5
|
-
If the browser supports it, audio files are played using the WebAudio API. This allows for reasonably precise timing of the playback. The timing of responses generated is measured against the WebAudio specific clock, improving the measurement of response times. If the browser does not support the WebAudio API, then the audio file is played with HTML5 audio.
|
|
6
|
-
|
|
7
|
-
Audio files are automatically preloaded by jsPsych. However, if you are using timeline variables or another dynamic method to specify the audio stimulus you will need to [manually preload](/overview/media-preloading/#manual-preloading) the audio.
|
|
8
|
-
|
|
9
|
-
The trial can end when the subject responds, or if the subject has failed to respond within a fixed length of time. You can also prevent the slider response from being made before the audio has finished playing.
|
|
10
|
-
|
|
11
|
-
## Parameters
|
|
12
|
-
|
|
13
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
14
|
-
|
|
15
|
-
Parameter | Type | Default Value | Description
|
|
16
|
-
----------|------|---------------|------------
|
|
17
|
-
stimulus | audio file | *undefined* | Audio file to be played
|
|
18
|
-
labels | array of strings | [] | Labels displayed at equidistant locations on the slider. For example, two labels will be placed at the ends of the slider. Three labels would place two at the ends and one in the middle. Four will place two at the ends, and the other two will be at 33% and 67% of the slider width.
|
|
19
|
-
button_label | string | 'Continue' | Label of the button to end the trial.
|
|
20
|
-
min | integer | 0 | Sets the minimum value of the slider
|
|
21
|
-
max | integer | 100 | Sets the maximum value of the slider
|
|
22
|
-
slider_start | integer | 50 | Sets the starting value of the slider
|
|
23
|
-
step | integer | 1 | Sets the step of the slider. This is the smallest amount by which the slider can change.
|
|
24
|
-
slider_width | integer | null | Set the width of the slider in pixels. If left null, then the width will be equal to the widest element in the display.
|
|
25
|
-
require_movement | boolean | false | If true, the subject must move the slider before clicking the continue button.
|
|
26
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
27
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, then the trial will wait for a response indefinitely.
|
|
28
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can set this parameter to `false` to force the subject to listen to the stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
29
|
-
response_allowed_while_playing | boolean | true | If true, then responses are allowed while the audio is playing. If false, then the audio must finish playing before the slider is enabled and the trial can end via the next button click. Once the audio has played all the way through, the slider is enabled and a response is allowed (including while the audio is being re-played via on-screen playback controls).
|
|
30
|
-
|
|
31
|
-
## Data Generated
|
|
32
|
-
|
|
33
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
34
|
-
|
|
35
|
-
Name | Type | Value
|
|
36
|
-
-----|------|------
|
|
37
|
-
response | numeric | The numeric value of the slider.
|
|
38
|
-
rt | numeric | The time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
39
|
-
stimulus | string | The path of the audio file that was played.
|
|
40
|
-
slider_start | numeric | The starting value of the slider.
|
|
41
|
-
|
|
42
|
-
## Examples
|
|
43
|
-
|
|
44
|
-
#### A simple rating scale
|
|
45
|
-
|
|
46
|
-
```javascript
|
|
47
|
-
var trial_1 = {
|
|
48
|
-
type: 'audio-slider-response',
|
|
49
|
-
stimulus: 'sound/speech_joke.mp3',
|
|
50
|
-
labels: ['Not Funny', 'Funny'],
|
|
51
|
-
prompt: '<p>How funny is the joke?</p>'
|
|
52
|
-
}
|
|
53
|
-
```
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# jspsych-call-function
|
|
2
|
-
|
|
3
|
-
This plugin executes a specified function. This allows the experimenter to run arbitrary code at any point during the experiment.
|
|
4
|
-
|
|
5
|
-
The function cannot take any arguments. If arguments are needed, then an anonymous function should be used to wrap the function call (see examples below).
|
|
6
|
-
|
|
7
|
-
## Parameters
|
|
8
|
-
|
|
9
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
10
|
-
|
|
11
|
-
Parameter | Type | Default Value | Description
|
|
12
|
-
----------|------|---------------|------------
|
|
13
|
-
func | function | *undefined* | The function to call.
|
|
14
|
-
async | boolean | `false` | Set to true if `func` is an asynchoronous function. If this is true, then the first argument passed to `func` will be a callback that you should call when the async operation is complete. You can pass data to the callback. See example below.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Data Generated
|
|
18
|
-
|
|
19
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
20
|
-
|
|
21
|
-
Name | Type | Value
|
|
22
|
-
-----|------|------
|
|
23
|
-
value | any | The return value of the called function.
|
|
24
|
-
|
|
25
|
-
## Examples
|
|
26
|
-
|
|
27
|
-
#### Calling a simple function
|
|
28
|
-
|
|
29
|
-
```javascript
|
|
30
|
-
|
|
31
|
-
var myfunc = function() {
|
|
32
|
-
return 'you called?';
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
var trial = {
|
|
36
|
-
type: 'call-function',
|
|
37
|
-
func: myfunc
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
#### Using an anonymous function to pass variables
|
|
42
|
-
|
|
43
|
-
```javascript
|
|
44
|
-
|
|
45
|
-
var myfunc = function(data){
|
|
46
|
-
// data contains all the experiment data so far,
|
|
47
|
-
// so this function could implement code to write
|
|
48
|
-
// the data to a database.
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
var trial = {
|
|
52
|
-
type: 'call-function',
|
|
53
|
-
func: function(){ myfunc(jsPsych.data.get())}
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
#### Async function call
|
|
58
|
-
|
|
59
|
-
```javascript
|
|
60
|
-
var trial = {
|
|
61
|
-
type: 'call-function',
|
|
62
|
-
async: true,
|
|
63
|
-
func: function(done){
|
|
64
|
-
// can perform async operations here like
|
|
65
|
-
// creating an XMLHttpRequest to communicate
|
|
66
|
-
// with a server
|
|
67
|
-
var xhttp = new XMLHttpRequest();
|
|
68
|
-
xhttp.onreadystatechange = function() {
|
|
69
|
-
if (this.readyState == 4 && this.status == 200) {
|
|
70
|
-
var response_data = xhttp.responseText;
|
|
71
|
-
// line below is what causes jsPsych to
|
|
72
|
-
// continue to next trial. response_data
|
|
73
|
-
// will be stored in jsPsych data object.
|
|
74
|
-
done(response_data);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
xhttp.open("GET", "path_to_server_script.php", true);
|
|
78
|
-
xhttp.send();
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
```
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# jspsych-canvas-button-response
|
|
2
|
-
|
|
3
|
-
This plugin can be used to draw a stimulus on a [HTML canvas element](https://www.w3schools.com/html/html5_canvas.asp), and record a button click response and response time. The canvas stimulus can be useful for displaying dynamic, parametrically-defined graphics, and for controlling the positioning of multiple graphical elements (shapes, text, images). The stimulus can be displayed until a response is given, or for a pre-determined amount of time. The trial can be ended automatically if the subject has failed to respond within a fixed length of time. One or more button choices will be displayed under the canvas, and the button style can be customized using HTML formatting.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
8
|
-
|
|
9
|
-
Parameter | Type | Default Value | Description
|
|
10
|
-
----------|------|---------------|------------
|
|
11
|
-
stimulus | function | *undefined* | The function to draw on the canvas. This function automatically takes a canvas element as its only argument, e.g. `function(c) {...}` or `function drawStim(c) {...}`, where `c` refers to the canvas element. Note that the stimulus function will still generally need to set the correct context itself, using a line like `let ctx = c.getContext("2d")`.
|
|
12
|
-
canvas_size | array | [500, 500] | Array that defines the size of the canvas element in pixels. First value is height, second value is width.
|
|
13
|
-
choices | array of strings | [] | Labels for the buttons. Each different string in the array will generate a different button.
|
|
14
|
-
button_html | HTML string | `'<button class="jspsych-btn">%choice%</button>'` | A template of HTML for generating the button elements. You can override this to create customized buttons of various kinds. The string `%choice%` will be changed to the corresponding element of the `choices` array. You may also specify an array of strings, if you need different HTML to render for each button. If you do specify an array, the `choices` array and this array must have the same length. The HTML from position 0 in the `button_html` array will be used to create the button for element 0 in the `choices` array, and so on.
|
|
15
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., what question to answer).
|
|
16
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, the trial will wait for a response indefinitely.
|
|
17
|
-
stimulus_duration | numeric | null | How long to display the stimulus in milliseconds. The visibility CSS property of the stimulus will be set to `hidden` after this time has elapsed. If this is null, then the stimulus will remain visible until the trial ends.
|
|
18
|
-
margin_vertical | string | '0px' | Vertical margin of the button(s).
|
|
19
|
-
margin_horizontal | string | '8px' | Horizontal margin of the button(s).
|
|
20
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can use this parameter to force the subject to view a stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
21
|
-
|
|
22
|
-
## Data Generated
|
|
23
|
-
|
|
24
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
25
|
-
|
|
26
|
-
Name | Type | Value
|
|
27
|
-
-----|------|------
|
|
28
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
29
|
-
button_pressed | numeric | Indicates which button the subject pressed. The first button in the `choices` array is 0, the second is 1, and so on.
|
|
30
|
-
|
|
31
|
-
Note: the canvas stimulus is *not* included in the trial data because it is a function. Any stimulus information that should be saved in the trial data can be added via the `data` parameter.
|
|
32
|
-
|
|
33
|
-
## Examples
|
|
34
|
-
|
|
35
|
-
### Drawing circles based on parameters
|
|
36
|
-
|
|
37
|
-
```javascript
|
|
38
|
-
function filledCirc(canvas, radius, color){
|
|
39
|
-
var ctx = canvas.getContext("2d");
|
|
40
|
-
ctx.beginPath();
|
|
41
|
-
ctx.arc(250, 250, radius, 0, 2 * Math.PI);
|
|
42
|
-
ctx.fillStyle = color;
|
|
43
|
-
ctx.fill()
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var circle_1 = {
|
|
47
|
-
type: 'canvas-button-response',
|
|
48
|
-
stimulus: function (c) {
|
|
49
|
-
filledCirc(c, 100, 'blue');
|
|
50
|
-
},
|
|
51
|
-
choices: ['Red', 'Green', 'Blue'],
|
|
52
|
-
prompt: '<p>What color is the circle?</p>'
|
|
53
|
-
data: {color: 'blue', radius: 100}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
var circle_2 = {
|
|
57
|
-
type: 'canvas-button-response',
|
|
58
|
-
stimulus: function (c) {
|
|
59
|
-
filledCirc(c, 150, 'green');
|
|
60
|
-
},
|
|
61
|
-
choices: ['Larger', 'Smaller'],
|
|
62
|
-
prompt: '<p>Is this circle larger or smaller than the last one?</p>',
|
|
63
|
-
data: {color: 'green', radius: 150}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
```
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# jspsych-canvas-keyboard-response
|
|
2
|
-
|
|
3
|
-
This plugin can be used to draw a stimulus on a [HTML canvas element](https://www.w3schools.com/html/html5_canvas.asp) and record a keyboard response. The canvas stimulus can be useful for displaying dynamic, parametrically-defined graphics, and for controlling the positioning of multiple graphical elements (shapes, text, images). The stimulus can be displayed until a response is given, or for a pre-determined amount of time. The trial can be ended automatically if the subject has failed to respond within a fixed length of time.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
8
|
-
|
|
9
|
-
Parameter | Type | Default Value | Description
|
|
10
|
-
----------|------|---------------|------------
|
|
11
|
-
stimulus | function | *undefined* | The function to draw on the canvas. This function automatically takes a canvas element as its only argument, e.g. `function(c) {...}` or `function drawStim(c) {...}`, where `c` refers to the canvas element. Note that the stimulus function will still generally need to set the correct context itself, using a line like `let ctx = c.getContext("2d")`.
|
|
12
|
-
canvas_size | array | [500, 500] | Array that defines the size of the canvas element in pixels. First value is height, second value is width.
|
|
13
|
-
choices | array of keycodes | `jsPsych.ALL_KEYS` | This array contains the keys that the subject is allowed to press in order to respond to the stimulus. Keys can be specified as their [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) or as characters (e.g., `'a'`, `'q'`). The default value of `jsPsych.ALL_KEYS` means that all keys will be accepted as valid responses. Specifying `jsPsych.NO_KEYS` will mean that no responses are allowed.
|
|
14
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
15
|
-
stimulus_duration | numeric | null | How long to display the stimulus in milliseconds. The visibility CSS property of the stimulus will be set to `hidden` after this time has elapsed. If this is null, then the stimulus will remain visible until the trial ends.
|
|
16
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, then the trial will wait for a response indefinitely.
|
|
17
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can use this parameter to force the subject to view a stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
18
|
-
|
|
19
|
-
## Data Generated
|
|
20
|
-
|
|
21
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
22
|
-
|
|
23
|
-
Name | Type | Value
|
|
24
|
-
-----|------|------
|
|
25
|
-
key_press | numeric | Indicates which key the subject pressed. The value is the [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) corresponding to the subject's response.
|
|
26
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
27
|
-
|
|
28
|
-
Note: the canvas stimulus is *not* included in the trial data because it is a function. Any stimulus information that should be saved in the trial data can be added via the `data` parameter.
|
|
29
|
-
|
|
30
|
-
## Examples
|
|
31
|
-
|
|
32
|
-
### Draw rectangle and wait for response
|
|
33
|
-
|
|
34
|
-
```javascript
|
|
35
|
-
function drawRect(c){
|
|
36
|
-
var ctx = c.getContext('2d');
|
|
37
|
-
ctx.beginPath();
|
|
38
|
-
ctx.rect(30, 30, 200, 50);
|
|
39
|
-
ctx.stroke();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var trial = {
|
|
43
|
-
type: 'canvas-keyboard-response',
|
|
44
|
-
stimulus: drawRect,
|
|
45
|
-
choices: ['e','i'],
|
|
46
|
-
prompt: '<p>Is this a circle or a rectangle? Press "e" for circle and "i" for rectangle.</p>',
|
|
47
|
-
data: {shape: 'rectangle'}
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Draw circle, no response allowed
|
|
52
|
-
|
|
53
|
-
```javascript
|
|
54
|
-
function drawCirc(c){
|
|
55
|
-
var ctx = c.getContext('2d');
|
|
56
|
-
ctx.beginPath();
|
|
57
|
-
ctx.arc(100, 75, 50, 0, 2 * Math.PI);
|
|
58
|
-
ctx.stroke();
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var trial = {
|
|
62
|
-
type: 'canvas-keyboard-response',
|
|
63
|
-
stimulus: drawCirc,
|
|
64
|
-
choices: jsPsych.NO_KEYS,
|
|
65
|
-
trial_duration: 1000,
|
|
66
|
-
data: {shape: 'circle', radius: 50}
|
|
67
|
-
}
|
|
68
|
-
```
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# jspsych-canvas-slider-response
|
|
2
|
-
|
|
3
|
-
This plugin can be used to draw a stimulus on a [HTML canvas element](https://www.w3schools.com/html/html5_canvas.asp) and collect a response within a range of values, which is made by dragging a slider. The canvas stimulus can be useful for displaying dynamic, parametrically-defined graphics, and for controlling the positioning of multiple graphical elements (shapes, text, images). The stimulus can be displayed until a response is given, or for a pre-determined amount of time. The trial can be ended automatically if the subject has failed to respond within a fixed length of time.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
8
|
-
|
|
9
|
-
Parameter | Type | Default Value | Description
|
|
10
|
-
----------|------|---------------|------------
|
|
11
|
-
stimulus | function | *undefined* | The function to draw on the canvas. This function automatically takes a canvas element as its only argument, e.g. `function(c) {...}` or `function drawStim(c) {...}`, where `c` refers to the canvas element. Note that the stimulus function will still generally need to set the correct context itself, using a line like `let ctx = c.getContext("2d")`.
|
|
12
|
-
canvas_size | array | [500, 500] | Array that defines the size of the canvas element in pixels. First value is height, second value is width.
|
|
13
|
-
labels | array of strings | [] | Labels displayed at equidistant locations on the slider. For example, two labels will be placed at the ends of the slider. Three labels would place two at the ends and one in the middle. Four will place two at the ends, and the other two will be at 33% and 67% of the slider width.
|
|
14
|
-
button_label | string | 'Continue' | Label of the button to end the trial.
|
|
15
|
-
min | integer | 0 | Sets the minimum value of the slider.
|
|
16
|
-
max | integer | 100 | Sets the maximum value of the slider.
|
|
17
|
-
slider_start | integer | 50 | Sets the starting value of the slider.
|
|
18
|
-
step | integer | 1 | Sets the step of the slider. This is the smallest amount by which the slider can change.
|
|
19
|
-
slider_width | integer | null | Set the width of the slider in pixels. If left null, then the width will be equal to the widest element in the display.
|
|
20
|
-
require_movement | boolean | false | If true, the subject must click the slider before clicking the continue button.
|
|
21
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., what question to answer).
|
|
22
|
-
stimulus_duration | numeric | null | How long to display the stimulus in milliseconds. The visibility CSS property of the stimulus will be set to `hidden` after this time has elapsed. If this is null, then the stimulus will remain visible until the trial ends.
|
|
23
|
-
trial_duration | numeric | null | How long to wait for the subject to make a response before ending the trial in milliseconds. If the subject fails to make a response before this timer is reached, the subject's response will be recorded as null for the trial and the trial will end. If the value of this parameter is null, then the trial will wait for a response indefinitely.
|
|
24
|
-
response_ends_trial | boolean | true | If true, then the trial will end whenever the subject makes a response (assuming they make their response before the cutoff specified by the `trial_duration` parameter). If false, then the trial will continue until the value for `trial_duration` is reached. You can use this parameter to force the subject to view a stimulus for a fixed amount of time, even if they respond before the time is complete.
|
|
25
|
-
|
|
26
|
-
## Data Generated
|
|
27
|
-
|
|
28
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
29
|
-
|
|
30
|
-
Name | Type | Value
|
|
31
|
-
-----|------|------
|
|
32
|
-
response | numeric | The numeric value of the slider.
|
|
33
|
-
rt | numeric | The time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
34
|
-
|
|
35
|
-
Note: the canvas stimulus is *not* included in the trial data because it is a function. Any stimulus information that should be saved in the trial data can be added via the `data` parameter.
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
### Draw two squares
|
|
40
|
-
|
|
41
|
-
```javascript
|
|
42
|
-
var colors = [#'FF3333', '#FF6A33'];
|
|
43
|
-
|
|
44
|
-
function twoSquares(c) {
|
|
45
|
-
var ctx = c.getContext('2d');
|
|
46
|
-
ctx.fillStyle = colors[0];
|
|
47
|
-
ctx.fillRect(200, 70, 40, 40);
|
|
48
|
-
ctx.fillStyle = colors[1];
|
|
49
|
-
ctx.fillRect(260, 70, 40, 40);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
var trial = {
|
|
53
|
-
type: 'canvas-slider-response',
|
|
54
|
-
stimulus: twoSquares,
|
|
55
|
-
labels: ['0','10'],
|
|
56
|
-
canvas_size: [200, 500],
|
|
57
|
-
prompt: '<p>How different would you say the colors of these two squares are on a scale from 0 (the same) to 10 (completely different)</p>',
|
|
58
|
-
data: {color1: colors[0], color2: colors[1]}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Draw two squares with additional parameters
|
|
63
|
-
|
|
64
|
-
```javascript
|
|
65
|
-
var colors;
|
|
66
|
-
|
|
67
|
-
function twoSquares(c, colors) {
|
|
68
|
-
var ctx = c.getContext('2d');
|
|
69
|
-
ctx.fillStyle = colors[0];
|
|
70
|
-
ctx.fillRect(200, 70, 40, 40);
|
|
71
|
-
ctx.fillStyle = colors[1];
|
|
72
|
-
ctx.fillRect(260, 70, 40, 40);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
var trial = {
|
|
76
|
-
type: 'canvas-slider-response',
|
|
77
|
-
stimulus: function(c) {
|
|
78
|
-
colors = ['darkred', 'cyan'];
|
|
79
|
-
twoSquares(c, colors);
|
|
80
|
-
},
|
|
81
|
-
labels: ['Exactly<br>the same','Totally<br>different'],
|
|
82
|
-
canvas_size: [200, 500],
|
|
83
|
-
prompt: '<p>How different would you say the colors of these two squares are?</p>',
|
|
84
|
-
on_finish: function(data) {
|
|
85
|
-
data.color1 = colors[0];
|
|
86
|
-
data.color2 = colors[1];
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
```
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# jspsych-categorize-animation
|
|
2
|
-
|
|
3
|
-
The categorize animation plugin shows a sequence of images at a specified frame rate. The subject responds by pressing a key. Feedback indicating the correctness of the response is given.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
8
|
-
|
|
9
|
-
Parameter | Type | Default Value | Description
|
|
10
|
-
----------|------|---------------|------------
|
|
11
|
-
stimuli | array | *undefined* | Each element of the array is a path to an image file.
|
|
12
|
-
choices | array of keycodes | `jsPsych.ALL_KEYS` | This array contains the keys that the subject is allowed to press in order to respond to the stimulus. Keys can be specified as their [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) or as characters (e.g., `'a'`, `'q'`). The default value of `jsPsych.ALL_KEYS` means that all keys will be accepted as valid responses. Specifying `jsPsych.NO_KEYS` will mean that no responses are allowed.
|
|
13
|
-
key_answer | numeric | *undefined* | A [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) indicating the correct response.
|
|
14
|
-
text_answer | string | "" | A text label that describes the correct answer. Used in conjunction with the `correct_text` and `incorrect_text` parameters.
|
|
15
|
-
correct_text | string | "Correct." | String to show when the correct answer is given. Can contain HTML formatting. The special string `%ANS%` can be used within the string. If present, the plugin will put the `text_answer` for the trial in place of the %ANS% string (see example below).
|
|
16
|
-
incorrect_text | string | "Wrong." | String to show when the wrong answer is given. Can contain HTML formatting. The special string `%ANS%` can be used within the string. If present, the plugin will put the `text_answer` for the trial in place of the %ANS% string (see example below).
|
|
17
|
-
frame_time | numeric | 500 | How long to display each image (in milliseconds).
|
|
18
|
-
sequence_reps | numeric | 1 | How many times to show the entire sequence.
|
|
19
|
-
allow_response_before_complete | boolean | false | If true, the subject can respond before the animation sequence finishes.
|
|
20
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
21
|
-
feedback_duration | numeric | 2000 | How long to show the feedback (milliseconds).
|
|
22
|
-
render_on_canvas | boolean | true | If true, the images will be drawn onto a canvas element. This prevents a blank screen (white flash) between consecutive images in some browsers, like Firefox and Edge. If false, the image will be shown via an img element, as in previous versions of jsPsych.
|
|
23
|
-
|
|
24
|
-
## Data Generated
|
|
25
|
-
|
|
26
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
27
|
-
|
|
28
|
-
Name | Type | Value
|
|
29
|
-
-----|------|------
|
|
30
|
-
stimulus | JSON | JSON encoded representation of the array of stimuli displayed in the trial.
|
|
31
|
-
key_press | numeric | Indicates which key the subject pressed. The value is the [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) corresponding to the subject's response.
|
|
32
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
33
|
-
correct | boolean | `true` if the subject got the correct answer, `false` otherwise.
|
|
34
|
-
|
|
35
|
-
## Examples
|
|
36
|
-
|
|
37
|
-
#### Basic example
|
|
38
|
-
|
|
39
|
-
```javascript
|
|
40
|
-
var animation_trial = {
|
|
41
|
-
type: 'categorize-animation',
|
|
42
|
-
stimuli: ["img/face_3.jpg", "img/face_2.jpg", "img/face_4.jpg", "img/face_1.jpg"],
|
|
43
|
-
choices: [80, 81], // 80 = 'p', 81 = 'q'
|
|
44
|
-
key_answer: 81, // correct answer is 'q' for both trials
|
|
45
|
-
};
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
#### Giving feedback with `%ANS%` string
|
|
49
|
-
|
|
50
|
-
```javascript
|
|
51
|
-
var animation_trial = {
|
|
52
|
-
type: 'categorize-animation',
|
|
53
|
-
stimuli: ["img/face_3.jpg", "img/face_2.jpg", "img/face_4.jpg", "img/face_1.jpg"],
|
|
54
|
-
choices: [80, 81], // 80 = 'p', 81 = 'q'
|
|
55
|
-
key_answer: 81, // correct answer is 'q' for both trials
|
|
56
|
-
text_answer: 'Dax', // the label for the sequence is 'Dax'
|
|
57
|
-
correct_text: 'Correct! This was a %ANS%.',
|
|
58
|
-
incorrect_text: 'Incorrect. This was a %ANS%.'
|
|
59
|
-
};
|
|
60
|
-
```
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# jspsych-categorize-html
|
|
2
|
-
|
|
3
|
-
The categorize html plugin shows an HTML object on the screen. The subject responds by pressing a key. Feedback indicating the correctness of the response is given.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
In addition to the [parameters available in all plugins](overview.md#parameters-available-in-all-plugins), this plugin accepts the following parameters. Parameters with a default value of *undefined* must be specified. Other parameters can be left unspecified if the default value is acceptable.
|
|
8
|
-
|
|
9
|
-
Parameter | Type | Default Value | Description
|
|
10
|
-
----------|------|---------------|------------
|
|
11
|
-
stimulus | html string | *undefined* | The HTML stimulus to display.
|
|
12
|
-
choices | array of keycodes | `jsPsych.ALL_KEYS` | This array contains the keys that the subject is allowed to press in order to respond to the stimulus. Keys can be specified as their [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) or as characters (e.g., `'a'`, `'q'`). The default value of `jsPsych.ALL_KEYS` means that all keys will be accepted as valid responses. Specifying `jsPsych.NO_KEYS` will mean that no responses are allowed.
|
|
13
|
-
key_answer | numeric | *undefined* | The [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) indicating the correct response.
|
|
14
|
-
text_answer | string | "" | A label that is associated with the correct answer. Used in conjunction with the `correct_text` and `incorrect_text` parameters.
|
|
15
|
-
correct_text | string | "Correct." | String to show when the correct answer is given. Can contain HTML formatting. The special string `%ANS%` can be used within the string. If present, the plugin will put the `text_answer` for the trial in place of the `%ANS%` string (see example below).
|
|
16
|
-
incorrect_text | string | "Wrong." | String to show when the wrong answer is given. Can contain HTML formatting. The special string `%ANS%` can be used within the string. If present, the plugin will put the `text_answer` for the trial in place of the `%ANS%` string (see example below).
|
|
17
|
-
prompt | string | null | This string can contain HTML markup. Any content here will be displayed below the stimulus. The intention is that it can be used to provide a reminder about the action the subject is supposed to take (e.g., which key to press).
|
|
18
|
-
force_correct_button_press | boolean | false | If set to true, then the subject must press the correct response key after feedback is given in order to advance to the next trial.
|
|
19
|
-
show_stim_with_feedback | boolean | true | If set to true, then the stimulus will be shown during feedback. If false, then only the text feedback will display during feedback.
|
|
20
|
-
show_feedback_on_timeout | boolean | false | If true, then category feedback will be displayed for an incorrect response after a timeout (trial_duration is exceeded). If false, then a timeout message will be shown.
|
|
21
|
-
timeout_message | string | "Please respond faster." | The message to show on a timeout non-response.
|
|
22
|
-
stimulus_duration | numeric | null | How long to show the stimulus for (milliseconds). If null, then the stimulus is shown until a response is given.
|
|
23
|
-
feedback_duration | numeric | 2000 | How long to show the feedback for (milliseconds).
|
|
24
|
-
trial_duration | numeric | null | The maximum time allowed for a response. If null, then the experiment will wait indefinitely for a response.
|
|
25
|
-
|
|
26
|
-
## Data Generated
|
|
27
|
-
|
|
28
|
-
In addition to the [default data collected by all plugins](overview.md#data-collected-by-plugins), this plugin collects the following data for each trial.
|
|
29
|
-
|
|
30
|
-
Name | Type | Value
|
|
31
|
-
-----|------|------
|
|
32
|
-
stimulus | string | Either the path to the image file or the string containing the HTML formatted content that the subject saw on this trial.
|
|
33
|
-
key_press | numeric | Indicates which key the subject pressed. The value is the [numeric key code](http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes) corresponding to the subject's response.
|
|
34
|
-
rt | numeric | The response time in milliseconds for the subject to make a response. The time is measured from when the stimulus first appears on the screen until the subject's response.
|
|
35
|
-
correct | boolean | `true` if the subject got the correct answer, `false` otherwise.
|
|
36
|
-
|
|
37
|
-
## Examples
|
|
38
|
-
|
|
39
|
-
#### Categorizing HTML content
|
|
40
|
-
|
|
41
|
-
```javascript
|
|
42
|
-
var categorization_trial = {
|
|
43
|
-
type: 'categorize',
|
|
44
|
-
stimulus: '<p>B</p>',
|
|
45
|
-
key_answer: 80,
|
|
46
|
-
text_answer: 'letter',
|
|
47
|
-
choices: [80, 81],
|
|
48
|
-
correct_text: "<p class='prompt'>Correct, this is a %ANS%.</p>",
|
|
49
|
-
incorrect_text: "<p class='prompt'>Incorrect, this is a %ANS%.</p>",
|
|
50
|
-
prompt: "<p>Press P for letter. Press Q for number.</p>"
|
|
51
|
-
};
|
|
52
|
-
```
|