Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

[solved] setting a variable delay in advanced_delay so as consistent trial lengths

edited February 2016 in OpenSesame

i am wanting to keep all trials the same duration. On trials where a response is given, I define a variable 'wait', as

exp.set('wait', round(1000 - exp.get('response_time_keyboard_response'))

where 1000 is a typical trial length when no response is given. I then type in duration '[wait]' in the advanced delay script. I am logging the variable 'time_fixation_dot' (which appears first in the sequence) and calculating how long each trial is. The delay is not working. I am printing exp.get('wait') which looks correct in the debug window. looking in the logfile, however, trials are not the same length. when a keypress is given, the trial jumps ahead straight to the fixation dot again, but not always..

Please advise!

Comments

  • edited 5:30PM

    Hi Joshua,

    Based on this information I'm not sure what causes your problem. Are you sure the wait variable is assigned a value under all circumstances? Does the line of code where you create wait appear after the part that collects a keyboard response? Otherwise wait would be calculated with the response time from the previous trial..

    If your keyboard response is collected with an inline_script, you could also add the simple line self.sleep(1000 - response_time_keyboard_response), that will get you to 1000ms as well.

    Cheers,

    Josh

  • edited 5:30PM

    Thanks Josh. Everything is in the correct place, it just decided not to work :/ I've had success with doing it before, but for some reason it no longer works. Ideally I would have a blank screen presented for the variable duration and so a self.sleep within a key response code would not satisfy this as I wish for all stimuli to immediately leave the screen on a keypress, and then a variable delay.

  • edited 5:30PM

    problem solved! I didn't even bother having a 'wait' variable. I simply presented a blank sketchpad with a zero duration and had an inline script after it containing.

    self.sleep(3000-exp.get('response_time_keyboard_response')).

    looking at the log for time_fixation, all trails are now the same duration. Thanks for the self.sleep idea

    Joshua

Sign In or Register to comment.