Does this platform support jsPsych v7?

Hello! I successfully pushed my experiment that coded by jsPsych v7 to Gitlab, and also changed the status to piloting, but it won’t run successfully.
Here are the error messages reported:

jspsych-pavlovia-3.0.0.js:66 Uncaught TypeError: Cannot read properties of undefined (reading ‘parameterType’)
at jspsych-pavlovia-3.0.0.js:66:27
at jspsych-pavlovia-3.0.0.js:532:3
(anonymous) @ jspsych-pavlovia-3.0.0.js:66
(anonymous) @ jspsych-pavlovia-3.0.0.js:532

jspsych.js:2625 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.
JsPsych @ jspsych.js:2625
initJsPsych @ jspsych.js:3273
(anonymous) @ index.js:1

jspsych.js:2632 jsPsych detected that it is running via the file:// protocol and not on a web server. To prevent issues with cross-origin requests, Web Audio and video preloading have been disabled. If you would like to override this setting, you can set ‘override_safe_mode’ to ‘true’ in initJsPsych. For more information, see: Redirecting
JsPsych @ jspsych.js:2632
initJsPsych @ jspsych.js:3273
(anonymous) @ index.js:1

jspsych.js:2971 Uncaught (in promise) MigrationError: A string was provided as the trial’s type parameter. Since jsPsych v7, the type parameter needs to be a plugin object. Please follow the migration guide at Migrating from 6.x to 7.x - jsPsych to update your experiment.
at JsPsych.doTrial (jspsych.js:2971:23)
at JsPsych.startExperiment (jspsych.js:2927:18)
at JsPsych. (jspsych.js:2671:22)
at Generator.next ()
at fulfilled (jspsych.js:22:62)

I am good at reading English, but my expression is bad. Sorry >_<

Hello @Josuke ,

Since jsPsych changed their plugin system for version 7, we have a new, specific pavlovia plugin for it.
It is available on the pavlovia.org server at this URL: https://pavlovia.org/lib/jspsych-7-pavlovia-2022.1.1.js
Version 7.1.2 of jsPsych is also now available on the server at this URL: https://pavlovia.org/lib/vendors/jspsych-7.1.2

I have also prepared an illustrative experiment, that showcases how to use the new plugin. You will find it here: Alain Pitiot / jsPsych7_simple_reaction_time · GitLab
It is jsPsych’s simple reaction time experiment with the pavlovia plugin added on top.

You’ll note that it is very, very similar in spirit to the previous approach: one simply needs to add the relevant scripts in the header (or in the body) and add a pavlovia_init and pavlovia_finish at the start and end of the timeline, respectively.

I took the opportunity offered by the redesign to remove the dependence on jQuery.

I would strongly encourage you to test thoroughly before deploying your experiment, as the plugin is relatively new. And do not hesitate to contact me, should you have any questions or issues.

Best wishes,

Alain

1 Like

Thank you very much for patient and detailed reply.
With your reply and the reference to the DEMO, I successfully ran my experiment.
However, probably due to the server (I am in China), my experiment has a problem of losing stimulus(audio) during the run. Anyway, I am currently switching to another platform.
Thanks again for your patience in replying.

Best wishes,

Josuke

1 Like

Hi @apitiot ,
I ran into a problem using this new version of the jsPsych Pavlovia plugin as described
in my post in the jsPsych forum.

My participants get stuck on the last page presented with “Please wait a moment while the data are uploaded to the pavlovia.org server…” forever. Luckily their data is indeed uploaded and saved to the server, but getting stuck on this page prevents them from properly ending my experiment by clicking on a redirection link that I intend to present after the pavlovia_finish trial.

Furthermore, looking at the code for the plugin I see that you removed the completedCallback statement that I found in earlier versions of the plugin. Why is that?

Trying an older version of the plugin now…

Hope you can help! Thank you very much!

Good morning,

I have just replied on the thread you link from the jsPsych forum. Here is my answer:

It seems to me that the issue stems from my not expecting the pavlovia plugin to have to deal with redirection: I was under the impression that this is taken care of by jsPsych, independently from the plugin, further down the timeline.
That is to say, the pavlovia plugin only takes care of communication with the pavlovia server (it opens a session, uploads the data, and closes the session).
I am obviously happy to discuss the matter and modify the plugin accordingly. Just let me know.
Best wishes,

Alain