In the contribution section, we hold code that has either been part of the distribution previously, or that is contributed by users of BCI2000. While we try to keep contributed code functional, we cannot apply the same standards in maintenance and testing as we do for the code that constitutes the "core" BCI2000 distribution.
Code available in the Contribution section
- Contributions:ADCs: Data acquisition modules for various ADC boards and EEG amplifiers.
- Contributions:FileWriters: Additional file formats.
- Contributions:SignalProcessing: Signal processing filters.
- Contributions:Applications: Application modules, and interoperability with other software.
- Contributions:Tools: Data analysis tools.
- Contributions:Extensions: Source module extensions and data loggers.
How to use contributions
In the core distribution, there are no contributions included. You will need to build executables from contributed code before you can use them. See the Building BCI2000 Howto Page on how to do this.
How to contribute
When you have developed your own data acquisition module, signal processing algorithm, application module, or analysis tool for use with BCI2000, and feel that others might profit from using it in their own experiments, then you are welcome to add it to our code database.
A contribution consists of two parts:
- A directory in the source repository.
- After contacting an Administrator, a directory will be created for your project in the SVN source code repository. You will have write access to that directory, so you can always update your code to fix bugs, or add functionality. When submitting C++ code, we also ask you to check our C++ coding style page.
- A wiki page in the contributions section.
- On the wiki page, you should give a short description of your code, i.e., an overview of its functionality, documentation of its parameters, and additional information that the user needs to know in order to use it. It should also be clear for which version (source code revision) your code was developed, and which it was last tested with. We provide a Contributions:Contribution Wiki Template page as a starting point.
BCI2000 applications have complex dependencies. The easiest part to create a new contribution is to copy the folder of a (working) contribution and change the folder and file names and object. You will need to change the name of files and objects in files. Important: Once this is done, you can also do a search and replace in the Borland project file (.bpr) which happens to be a text file. You should then be able to open the project file and compile it. Once you go to the "Prog" folder, you should also see a new exe file that you have just created. Doing this search and replace trick may save you dozens of hours of frustrated attempts at creating a new project. Copy this working contribution (or zip it) for future reference so you can come back to it in case you corrupt the code and cannot compile any more.
- Please, do not upload copyrighted material to the contributions section without the copyright holder's consent. When in doubt, provide a link to its original location rather than a copy.
- BCI2000 is now released under the terms of the GNU General Public License (GPL). This implies that your contribution will be available under the GPL as well.