Holding space bar as key response
Hello,
I'm trying to program with "in line_script" a visual imagery experiment where participants must respond by holding down the space bar and releasing it only when they feel they accomplished the task. While they are holding the space bar, some stimuli will be displayed on the screen. I would need to register the exact time when the space bar began to be pressed, when it was released, and what was on the screen at the moment
Do you guys know a code line to do that? In the image below you can see what I've done so far. Thanks in advance for any help.
Comments
Hi Gio,
have you seen this (old) discussion? Especially Sebastiaan's code? It might give you a good starting point how to deal with keyrelease responses.
I would need to register the exact time when the space bar began to be pressed, when it was released, and what was on the screen at the moment
Perhaps there are other ways, but what comes to my mind is a while loop that has 2 stages. In the first stage it waits for a keydown response, once it registers it, it changes to the second stage and polls for key release responses. All the while, measuring the passing time and adjusting the visual stimulation (independently from the key actions). Something like that:
key_pressed = False start_time = clock.time() while True: # poll responses if not key_pressed: k, t = getDownkey # that isn't a real function, just pseudocode) if k is not none: key_pressed = True elif key_pressed: k, t = getUpkey # also just pseudocode break # independent of the response, we also measure time and present stimuli if clock.time() - start_time > stim_duration: presentNextStimulus() # pseudocode # if some timeout has been reached, leave the loop breakAnother thing that might be important is that you seem to use forms. That complicates things, because forms are quite disruptive of the overall experiment. That means, you can't interrupt your form for executing other code (nothing runs in the background of a code, also no releaseKey code). So, there is a fair chance that you need to adapt your code.
Hope this helps,
Eduard