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.
- Contributions:External Interfaces: Interfaces to other software.
- Contributions:Patches: Modifications to the BCI2000 source code.
How to use contributions
In the core distribution, there are no contributions included. However, an extended distribution of BCI2000 is available, which contains contributions. See BCI2000_Binaries#Contributed_Code for details.
In order to use a patch, you will need to compile BCI2000. See Contributions:Patches for details.
How to contribute
Often, experiments have requirements that are not met by BCI2000 out-of-the-box. You need to add some configuration option to a BCI2000 module, or you make a small modification to an analysis tool in order to make it easier to use. To achieve that, you need to modify the BCI2000 source code.
Now, it may well be that others are interested in your modifications, too. But adding them in form of a full contributed module would not be appropriate for reasons of overhead, or because (ouch!) you modified files from the BCI2000 framework, or for any other reason. If this applies to you, then you might think about contributing a patch.
You need no special permissions to upload a patch. Everyone with a BCI2000 user account may log into the wiki, edit the patches page, and upload a patch. For more information, see the Contributions:Patches page.
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.
- 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.