Main question:
I’m trying to build a brain-computer interface (BCI) experiment in Python that involves “high frequency” flashing (SSVEP), decision-making stimuli (P300), signal acquisition (EEG, with OpenBCI), and classifiers. I’ve been trying to use Psychopy toolbox for the interface part, but, unfortunately, it has been such a headache to make it work properly in parallel with the other processes on my current Lab PC that I’m starting to look for substitutes.
I was wondering if anyone knows alternative toolkits, plugins, or libraries that would be suitable for implementing such interfaces (i.e., flashing, sending timestamps, and modifying interface based on classification feedback).
Side-notes:
Some toolkits that show up as alternatives to Psychopy are PsyToolkit, Paradigm and SuperLab 6, but I’m not sure they have the same functionality.
I tried looking into OpenSesame in the past too, but it seems like it is not possible to acquire signals that easily with it. If you have any resources that could prove me wrong, please feel free to link them too.
Thoughts on those would be also very welcomed.
EDIT
After finishing my Master Thesis and looking back at this question, I definetely have to share that Psychopy does the job. I managed to generate two paradigms (P300 and SSVEP) simultaneously while processing signal with no problems. My biggest issue was with the threading logic, which must, most definetely, use threading events to work propely.
Advertisement
Answer
If you are facing difficulties with PsychoPy, which is really just a set of modules with the full power of Python behind it, then you are certainly going to be frustrated with options like PsyToolKit, which, being browser-based, is never going to be able to give you the level of control you need over your system.
OpenSesame is Python (and often PsychoPy) based under the hood. Paradigm seems to have a nice interface but to add more sophisticated functionality, also uses Python scripting (although seems to still be at version 2.6). I’m not that familiar with SuperLab, but it has been around a long time, and does seem to be focussed on lab equipment use.
But it seems that your issues are more to do with working in parallel with other computer processes rather than PsychoPy per se (which doesn’t impose any limitations other than those inherent in Python itself). As noted above, the alternatives you list either won’t give the level of control you need, or will also require Python for hardware interfacing.
You might be best to describe specific issues and seek help with those. Many other people have used PsychoPy and Python to display stimuli and record EEG – this task is in no way insurmountable.