How to set a time limit?
in OpenSesame
Hi,
I'm working on an experiment using OpenSesame and I need to set a time limit. The goal is for the experiment to automatically stop after a certain number of minutes, regardless of the participant's current state, while also recording keyboard responses. Additionally, I'd like the screen to remain fixed on a fixation cross during the experiment.
Unfortunately, I'm having trouble figuring out how to implement this feature in OpenSesame. Does anyone have any advice or can someone guide me on how I can achieve this goal with some scripting?
Thank you in advance for the help.
Kind regards,
Anna
Comments
Hi Anna,
I see two options (see attachment). Both Start a timer in the beginning and regularly check whether since the start the maximum time has expired. The difference is that the first option (v1) uses regular Opensesame items, which makes it somewhat easier, but also less accurate in determining when the timeout has passed. The second option (v2) implements everything in a loop in an inline_script. You need to know some Python for this version, but you have a lot of flexibility (and all the relevant functions are explained in the docs).
Hope this helps,
Eduard
Hello,
Thank you for the response. Unfortunately, the first solution you provided doesn't work, and it would be ideal since I'm not very familiar with Python. The second solution works well, but the issue is that it doesn't allow me to include a sketchpad or record multiple keyboard responses. Is there a way to use the same script but place it at the beginning and end of the block so that I can insert other elements within it? Thank you in advance.
Hi
but the issue is that it doesn't allow me to include a sketchpad
You don't need a sketchpad, because you can use canvases, which work the exact same way, only with codes. In the example, I have created a canvas, and added text to it. You can add another canvas if you want, or add stuff to the one, I created. Similarly, you can add more keyboard responses, or use the one that is present, multiple times.
Is there a way to use the same script but place it at the beginning and end of the block so that I can insert other elements within it?
Yeah, sure. Just copy it, essentially you can replace an entire sequence/loop with an inline_script like that. There is nothing that you can't do with inline_scripts.
Check out the documentation and some of the tutorials. You'll find all the information you need there! But if you get stuck feel free to ask here again.
Eduard
ps, it is never too late to familiarize with Python. It is quite empowering to add it to you toolkit