Howdy, Stranger!

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

Supported by

Eyelink: Turn off calibration/validation beeps

The Eyelink system by default plays (really annoying) beeps during calibration and validation. This annoys me perhaps more than it does the participants, since I have to listen to it all day, and it's a long experiment so we have to calibrate several times over. There are other sounds played during the experiment, so just muting the master volume is not an option.

Can I turn these sounds off through PyGaze? If so, how?

I have been able to do it when using the SR Research pylink library directly, as documented in the Eyelink Programmers Guide:

pylink.setCalibrationSounds('off', 'off', 'off')

But is there a way to do this through the PyGaze eyetracker object, or do I have to dig into it to get hold of the pylink Eyelink object that it creates?

Thanks in advance for any help.


  • Hi Luke,

    In principle , there's nothing wrong with doing:

    import pylink
    pylink.setCalibrationSounds('off', 'off', 'off')

    Are you using the PyGaze plugins in OpenSesame, or PyGaze directly as a Python library?

    The pygaze_init plugin in OpenSesame has an option to disable calibration beeps. When using PyGaze as a Python library, I don't think calibration beeps are played at all (?). Which computer beeps? The EyeLink PC or the experiment PC?


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

  • Hi Sebastiaan.

    I am using PyGaze as a library in Python. The solution that you mentioned also occurred to me, but it does not have any effect. Possibly it has something to do with the order in which things are initialized?

    At the moment I have the import statements for pygaze and pylink at the very beginning of my script, then I open a PyGaze display, then I run the pylink command to set the calibrations sounds to 'off' (I do the same with the setDriftCorrectSounds command as well just for good measure), then I initialize the PyGaze eyetracker object. I have tried placing the pylink commands after the initialization of the eyetracker object, but this does not make a difference.

    The sounds are coming from the stimulus computer, not from the Eyelink computer.

    Thanks for your help,


  • Right, I see. What you can do is use the set_draw_calibration_target() function. This expects a function that takes only (x, y) as function arguments, and then uses this function to draw the calibration target. I see now that PyGaze by default also plays a beep when drawing a calibration target. But you can override this behavior by specifying a custom function.

    See also:

    A bit clunky, I know. But it will work. Is this helpful?

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

  • I think I get it. Thanks!

    The draw_cal_target() function in eyelinkgraphics includes play_beep(). So I need to use set_draw_calibration_target() and pass it a function that draws the dot but does not include the play_beep().

    I will try it out.

Sign In or Register to comment.