psychopy.org | Reference | Downloads | Github

Conda: portaudio dependency conflicts with sounddevice ASIO

PsychoPy==2020.2.10
Windows 10 x64 20h2

TLDR: Pip install of psychopy & sounddevice works well with ASIO, conda (from conda-forge channel) install doesn’t -> avoid conda-forge, install both pip. In addition, import sounddevice BEFORE psychopy.

Explanation:
Psychopy’s pip and conda dependencies appear to be different. Conda install of psychopy depends (indirectly) on portaudio, which doesn’t support ASIO drivers, or at least messes with the ASIO support of the sounddevice package. Pip install of psychopy doesn’t include portaudio, therefore doesn’t have this problem.

I’m also having an issue with the pip install: when I import psychopy before sounddevice, the latter won’t find ASIO devices - just guessing, maybe pip’s psychopy has it’s own included portaudio dll? This can be avoided if sounddevice is imported before the psychopy modules.

This might affect a small number of psychopy users only, who, like me, use psychopy with an ASIO-based sound system (Dante), accessed through the sounddevice package. Nevertheless, I think it’s good to mention the problem and its solution here so that it can save some headache for those people.

Discussion about the issue with the sounddevice package and portaudio can be found here: https://github.com/spatialaudio/python-sounddevice/issues/229

Could be related to this old thread: Pyo doesn’t recognize ASIO sound device after upgrade - Coding - PsychoPy .