First you will want to unzip one of our Portable Python packages. The next step in the configuration process is to configure Python as a system variable. After building the application, source, and signal processing modules, then, from your main BCI home directory you will need to navigate to src\contrib\BCPy2000\demo and copy the contents of the batch, data, parms, prog, and python folders into each corresponding folder in the main directory. These files are where you will be able to make any necessary customization of the interface between the BCI2000 C++ code and the Python code should you want to. All three modules share filter and wrapper classes which allow Python functions to be loaded dynamically from a DLL at runtime. Once you are in Visual Studio, you can edit the Python Application, Signal Processing, and Source modules and build them individually or all together (note that when you first open this project you will want to build the entire solution first).
In this video we go over what BCPy2000 is, how to install it, a demonstration of our Triangle application, a section on how you can create your own BCPy2000 experiments, and a demonstration of a P300 task involving a live subject: Once you have done this you can configure and generate your BCI2000 solution. You also need to make sure that when you are configuring BCI2000 in CMake, you choose the "BUILD_BCPY2000" and "BUILD_CONTRIB" flags.
One consideration when building BCPy2000 is that you must choose a Qt_5 installation which corresponds to whatever version of BCPy2000 you are build, for example, if you are building a 32 bit version of BCPy2000 make sure that you have downloaded and select a 32 bit version of Qt. You can find these instructions at Programming_Howto:Building_BCI2000. Compilation is only supported in BCI2000 with the Visual Studio or MinGW compilers. BCPy2000 will be compiled automatically with other BCI2000 programs. You can find the 32 bit version of our portable Python here and the 64 version here. Here is a high-level overview of why you should consider BCPy2000:įor this project you will need two things, our portable Python package, and BCI2000. We provide a demo implementation which exemplifies some higher level Python tools which will give you a good idea of where to start. This project aims to allow you to build your own experiments and modules based on your own python code tailored for your needs. Each of these modules are independent of the others, allowing for you to pick and choose which modules you wish to run as Python modules or BCI2000 compiled modules, for example you can use BCI2000's Signal Source module which supports a wide range of EEG acquisition modules.īCPy2000 is made in mind for developers as well as clinicians with some experience in Python. It also does not currently support the embedded iPython console.īecause it is based on the BCI2000 system, it is modular, comprising of an application module which presents the stimuli, a signal source module which waits for data to come in from hardware and to then send these blocks of data to the signal processing module while synchronizing to the hardware clock, and a signal processing module which acts as an intermediate between the signal source and the application.
It differs in that this implementation is based in Python 3.6.8 for our 32 bit version, and 3.8.4 for our 64 bit version, taking advantage of various high-level packages: Psychopy for stimulus presentation, and NumPy and SciPy for signal processing and classification. It is based on a 2009 implementation in Python v2.7, and is hosted by, the BCI2000 project. BCPy2000 is a software project which allows a platform for rapid, flexible development of experimental brain-computer interface systems.