hi all,
I have a task where a sound is played (psychopy.sound.Sound) and participants need to respond by using the keyboard whether the sound is a match or not. This task works fine on multiple Macs. However, on my linux machine when participants press a key while the sound is still playing, a ‘bad’ noise is produced on top of the sound (sounds like an error noise, although I don’t know exactly how to describe it). I have tried using different sound backends (pyo + ptb) but the sound remains.
The error printed to the terminal is ALSA lib pcm.c:8306:(snd_pcm_recover) underrun occurred
and it prints this many many times (while key is held down). I have searched this on it’s own with no discernible solutions.
I’ve read a bit here but didn’t seem to find the answer. I assume it has something to do with the threading/refresh rate as I don’t get this error on other OS’s. Code below reproduces the error on my linux machine (but not my mac) if you press a key while the sound is still playing.
Thanks for any insight!
from psychopy import visual, monitors
from psychopy.visual import Window
from psychopy import core, event
from psychopy.sound import Sound
win = visual.Window([600,400], color='black', fullscr=0)
no_response = True
s = Sound(value=300, secs=2.0, volume=.03)
win.flip()
s.play()
timer = core.CountdownTimer(2)
while timee > 0 and no_response:
timee = timer.getTime()
for key in event.getKeys():
if key in ['1', '2']:
no_response = False
win.flip()
win.close()
core.quit()