Failed to load sound when using Eyelink

OS (e.g. Win10): Win 10
PsychoPy version (e.g. 1.84.x): 2021.2.3
Standard Standalone? (y/n) If not then what?: y

What are you trying to achieve?:
I need to create an active auditory oddball paradigm and measure pupilometry at the same time.

I used the Eyelink system to measure pupil data.

The trial structure is: subjects will hear a standard or target tone for 60 ms and then they need to respond to the target tone as soon as they hear it. The inter-stimulus interval is 2.5 - 2.9s.

However, for some reason, after I finished the calibration and validation session, the experiment collapsed and showed this error:

What did you try to make it work?:

I also tried to create a new experiment with the same design but without Eyelink and I got the same error. However, after I reset preferences, I can run the experiment without Eyelink.

So my gut is Eyelink for some reason change the setting of Psychopy, which prevents it from loading sounds properly.

I tried to specify the sample rate of my tone but it did not work.

I followed the suggestion from this thread by creating a constant “demo” sound. However, the experiment still collapsed when Psychopy is trying to load this sound before the experiment.

I also found one thread. They suggested it might be related to the older version of psychtoolbox but my ptb version is, which is after 3.0.17 as they suggested.

I can work around it by changing audio latency mode into “0: Latency not important”, as suggested by this thread. However, I’m very concerned about the latency lag.

So I wonder if there is a better and more efficient way to fix this problem.

Thank you in advance for your help.

Hi There,

Have you tried a more recent release by any chance? to our knowledge 2022.2.5 was working with eyelink and sound.

Best wishes,

Hi Becca,

Thanks for your responses. We did not try because we share the EEG booth with other people and labs and we cannot upgrade Psychopy by ourselves.

But we figured out one solution and I will share it below for anyone who might need it in the future:

  1. we used print(sound.getDevices()) before and after Reset Preferences to know which sound device should be used. In our cases, it is the “Microsoft Sound Mapper - Output”.

  2. we used sound.AudioDeviceInfo() to manually call back the default sound device. Below is the code I used:

sound.AudioDeviceInfo(deviceIndex = -1, deviceName =u'Microsoft Sound Mapper - Output', inputChannels = 0, outputLatency = (0.09, 0.18), inputLatency = (0.09, 0.18), defaultSampleRate = 44100)
# All above information can be found when you call sound.getDevices()

Thanks for sharing your solution! i will mark it for others to use in future.