Howdy, Stranger!

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

Supported by

Child Friendly Calibration - Eyelink

Hi,

I am using Open Sesame and Eyelink1000 (so PyGaze). I got the experiment to work with the default calibration, but what I need is a child calibration. What we use in Matlab (and PsychPy) experiments is a larger, colourful circle, that circles and makes fun noises, rather than the small point and beep that we can use for adults.
I tried just inserting the PsychPy script in an inline, but that's not enough, of course. Eyelink told me they were working on it, but that might take time - and I need to start testing soon.
Any idea of how to make changes to the default calibration?

Thanks in advance!
Naomi

Comments

  • Hi Naomi,

    Right now I don't have an EyeLink to test this with, so the code below is untested. But you can override the default function to draw a calibration target. To do so, you need to write an inline_script with something like the code below in the Prepare phase.

    Then you can modify the child_friendly_target() function in such a way that it draws a Spongebob or something along those lines. Does that make sense?

    def child_friendly_target(x, y):
    
        c = Canvas()
        c.fixdot(x, y)
        c.show()
    
    
    items['pygaze_init'].draw_calibration_canvas = child_friendly_target
    

    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

  • Thank you Sebastiaan!

    I am sorry, I only saw this reply now...

    How do I modify the function to draw a .jpg or .gif? And can I control the calibration beep to be more child-friendly?

    Best,
    Naomi

  • Hi Naomi,

    Instead of a circle, draw an image.

    To change the calibration sound, try to add this code here to the loop Sebastiaan posted earlier.

    src = pool['bark.ogg'] # replace bark.ogg with the sound you wish and put that sound file in the file pool
    self.beep = Sampler(src, volume=.5)
    if self.var.calbeep == 'yes':
        self.beep.play()
    

    I haven't this code either, though....

    Good luck,
    Eduard

  • edited March 2018

    Hi Eduard,

    Sorry for only getting to test this now - I had a few deadlines on other projects, and am now back to working on this project.

    I have tried to implement this but I just get an empty calibration (no sound and no dot/image).
    What I tried to do is to put an inline before the pygaze_init that has, in the prepare phase:

    def child_friendly_target(x, y):
        path = exp.pool[u'calib_1.gif']
        c = Canvas()
        c.image(path)
    # Element interface
        c.show()
        src = exp.pool[u'Ripple_sound_effect_edited.wav'] 
        self.beep = Sampler(src, volume=.8)
        if self.var.calbeep == 'yes':
            self.beep.play()
    
    items['pygaze_init'].draw_calibration_canvas = child_friendly_target
    

    Thanks for all your help!
    Naomi

  • Hi Naomi,

    I am sorry I doubt have an eyetracker to test the script myself. Maybe it works if you move c.show() to the end of the function?
    If not, I have to pass :(

    Eduard

Sign In or Register to comment.