Howdy, Stranger!

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

Supported by

[solved] Log of all events onset times

edited January 2014 in OpenSesame

Is is possible to get a log file of onset (and possibly offset) times of all events (stimuli displayed, button pressed etc.) from and experiment designed in OpenSesame? Would that require tapping into PsychoPy functions (assuming this is the backend we are using)? Something similar to: http://psychopy.org/coder/codeLogging.html#codelogging

Best,
Chris

Comments

  • edited 3:16PM

    Hi Chris,

    Sure. Each item has a variable called time_[item name] which contains a timestamp of the item onset. In general, this corresponds to the timestamps that you need, such as the onset of a stimulus display, etc. The timestamp of a keypress is not logged directly (unless you use inline scripting), but can easily be deduced as response_time + time_keyboard_response.

    See also:

    Cheers!
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • edited 3:16PM

    This is useful, but the table format of the logs is quite confusing and many onset times have left over values even thought they were not run in that particular trail/row.

    What I'm really looking for is a chronological log of all events. One by one with their onset times. Something like psychopy autolog http://www.psychopy.org/coder/codeLogging.html#autologging Would it be possible to use it directly if psychopy is chosen as a backend?

  • edited 3:16PM

    Hi Chris,

    Yes, if you prefer event-style logfiles, you can use the PsychoPy logging functionality. Or that of Expyriment, for that matter. OpenSesame doesn't do this automatically, so you would have to implement that through scripting—But the fact that you're asking suggests that you probably know how to do that.

    Also, it may be useful to know that you can write anything to the OpenSesame logfile, using the self.log() function. The logger item is just a convenient way to make sure that the logfile is a nice .csv file.

    For example:

    t = my_canvas.show()
    self.log('my_canvas was shown at time %d' % t)
    

    Cheers!
    Sebastiaan

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

  • edited 3:16PM

    Cool. The only problem with this solution is that I would have to explicitly call log() for every single event. How could I make use of the psychopy autologger in opensesame?

  • edited 3:16PM

    I noticed that there is a problem, because PsychoPy tries to treat the OpenSesame debug window as a standard output, which for some reason prevents the log file from being created (issue). This doesn't happen when using opensesamerun, so you could use that as a workaround.

    Other than that, the PsychoPy logging functionality will just work as usual, as explained here:

    For example:

    from psychopy import logging
    exp.lastLog=logging.LogFile('myLogFile.log',
        level=logging.INFO,
        filemode='w')
    win.logOnFlip(msg='This will be logged on the next display update',
        level=logging.INFO)
    

    There's much bigger issues in the world, I know. But I first have to take care of the world I know.
    cogsci.nl/smathot

Sign In or Register to comment.