<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bci2000.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emilycohen</id>
	<title>BCI2000 Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.bci2000.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emilycohen"/>
	<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php/Special:Contributions/Emilycohen"/>
	<updated>2026-07-27T15:15:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:BCI2000Unity_OUTDATED&amp;diff=9444</id>
		<title>User Tutorial:BCI2000Unity OUTDATED</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:BCI2000Unity_OUTDATED&amp;diff=9444"/>
		<updated>2022-04-21T17:42:43Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
Unity is a cross-platform game engine with support for desktop, mobile, console, and virtual reality platforms. It is both easy for beginners to use and is popular for low-cost game development. This is a Unity package which integrates BCI2000. This tutorial assumes that you have already compiled BCI2000. &lt;br /&gt;
&lt;br /&gt;
==Video==&lt;br /&gt;
&amp;lt;youtube alignment=&amp;quot;center&amp;quot;&amp;gt;https://www.youtube.com/watch?v=nZG70HSR8v8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tutorial==&lt;br /&gt;
For information on how to use Unity itself, see the Unity [https://docs.unity3d.com/Manual/index.html manual]. This tutorial assumes knowledge of how to use Unity. It is recommended to know how GameObjects and Components work.&lt;br /&gt;
More in-depth detail on how UnityBCI2000 works is provided in the README.md file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, download UnityBCI2000 from [https://github.com/neurotechcenter/UnityBCI2000 GitHub]. As of now, UnityBCI2000 is not a full Unity package, but it works the same. Place the C# files from the Runtime folder, as well as BCI2000RemoteNET.dll, within the Assets directory of your Unity project.&lt;br /&gt;
&lt;br /&gt;
Create an empty GameObject and add the script UnityBCI2000 as a Component. This will serve as the central connection to the BCI2000 Operator. As of now, it is not possible to use multiple scenes with one BCI2000 connection.&lt;br /&gt;
&lt;br /&gt;
1. Add a UnityBCI2000.cs to the GameObject as a Script Component. &lt;br /&gt;
&lt;br /&gt;
2.Specify the path to the operator using the Operator Path field, as well as the names of the modules to start up alongside it. &lt;br /&gt;
&lt;br /&gt;
If you have an instance of the operator already running, specify the IP and port it is listening on using the Telnet Ip and Telnet Port fields instead.&lt;br /&gt;
&lt;br /&gt;
You can also set a custom log file location, as well as tell the program to log sent states and received prompts. &#039;&#039;&#039;NOTE: There is a known issue with writing to the log file, this is remedied by changing the name of the file to write to. This is an issue with BCI2000RemoteNET, and will be fixed in upcoming updates.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Now, add a Script component of the script BCI2000StateSender to the object which you want to take data from. &lt;br /&gt;
&lt;br /&gt;
4. Drag the BCI2000 GameObject from step 1 into the UnityBCI2000Object field of the BCI2000StateSender.&lt;br /&gt;
&lt;br /&gt;
BCI2000StateSender comes with some predefined states to send, as well as values to scale them by. These are the global and screen coordinates, as well as whether the object is on screen.&lt;br /&gt;
&lt;br /&gt;
===Adding Custom Variables===&lt;br /&gt;
Due to the way Unity works, adding custom variables must be done from a custom script, unique to each GameObject, if the GameObjects are not identical. Unfortunately, this means that some knowledge of C# programming is required, but templates for a CustomVariableSupplier script are provided within the README.md file.&lt;br /&gt;
&lt;br /&gt;
There are two types of custom variables: custom set variables, which set a state in BCI2000 to some value, and custom get variables, which retrieve the value of a state variable from BCI2000.&lt;br /&gt;
&lt;br /&gt;
Custom set variables contain the name of the state to write to, a Func&amp;lt;int&amp;gt; delegate(a piece of code represented by a method or lambda expression which returns the value to send to BCI2000), a scale factor to scale the variable by, in order to avoid truncation due to the fact that BCI2000 state variables are only unsigned integers, and a type.&lt;br /&gt;
Types are defined by the enum UnityBCI2000.StateType, which currently holds 5 values, which are signed integers of bit widths 16 and 32, as well as boolean, which is an unsigned integer of bit width 1. Signed numbers will be represented in BCI2000 by two state variables: The magnitude of the number and its sign, which is 0 for positive and 1 for negative.&lt;br /&gt;
&lt;br /&gt;
Custom get variables contain the name of the state to read from, as well as an Action&amp;lt;int&amp;gt; delegate(a piece of code which takes an int as a parameter), which will receive the value from BCI2000.&lt;br /&gt;
For reference on delegates see the [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/ C# Programming Guide].&lt;br /&gt;
Note: UnityBCI2000 uses reflection in order to reduce the amount of boilerplate code needed to implement a custom state variable, as well as simplify the process of adding and indexing of custom state variables.&lt;br /&gt;
&lt;br /&gt;
Template for adding custom variables:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
public class &amp;lt;ClassName&amp;gt; : CustomVariableBase&lt;br /&gt;
{&lt;br /&gt;
    public override void AddCustomVariables()&lt;br /&gt;
    {&lt;br /&gt;
        customVariables.Add(new CustomSetVariable(  //Copy this for more set variables&lt;br /&gt;
            &amp;quot;[Name]&amp;quot;,&lt;br /&gt;
            new Func&amp;lt;float&amp;gt;(() =&amp;gt; [Code which returns variable to send]),&lt;br /&gt;
            [Scale],&lt;br /&gt;
            UnityBCI2000.StateType.[Type]&lt;br /&gt;
            ));&lt;br /&gt;
            &lt;br /&gt;
        customVariables.Add(new CustomGetVariable(  //Copy this for more get variables&lt;br /&gt;
            &amp;quot;[Name]&amp;quot;,  &lt;br /&gt;
            new Action&amp;lt;int&amp;gt; ((int i) =&amp;gt; [Code which uses i])&lt;br /&gt;
        ));&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a custom variable provider script:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
public class CustomVariableSupplier1 : CustomVariableBase&lt;br /&gt;
{&lt;br /&gt;
    public override void AddCustomVariables() &lt;br /&gt;
    {&lt;br /&gt;
        customVariables.Add(new CustomSetVariable( &lt;br /&gt;
            &amp;quot;Custom variable 1&amp;quot;,&lt;br /&gt;
            new Func&amp;lt;float&amp;gt;(() =&amp;gt; {return 65 / 5;}),&lt;br /&gt;
            100,&lt;br /&gt;
            UnityBCI2000.StateType.SignedInt16&lt;br /&gt;
            ));&lt;br /&gt;
&lt;br /&gt;
        customVariables.Add(new CustomSetVariable(&lt;br /&gt;
            &amp;quot;Custom variable 2: Frame count&amp;quot;,&lt;br /&gt;
            new Func&amp;lt;float&amp;gt;(() =&amp;gt; Time.frameCount),&lt;br /&gt;
            1,&lt;br /&gt;
            UnityBCI2000.StateType.UnsignedInt32&lt;br /&gt;
            ));&lt;br /&gt;
&lt;br /&gt;
        customVariables.Add(new CustomGetVariable(  &lt;br /&gt;
            &amp;quot;StateName&amp;quot;,  &lt;br /&gt;
            new Action&amp;lt;int&amp;gt; ((int i) =&amp;gt; {score = i})&lt;br /&gt;
        ));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Add a new C# script to the object which you want to take data from.&lt;br /&gt;
&lt;br /&gt;
2. Edit the script to change the inherited class to be CustomVariableBase instead of MonoBehavior.&lt;br /&gt;
&lt;br /&gt;
3. Implement the AddCustomVariables method, and have it add Custom Variables to the customVariables List, by calling customVariables.Add.  &lt;br /&gt;
&lt;br /&gt;
4. Drag this new script into the Custom Variable Supplier field of the BCI2000StateSender Component.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
Also see the [https://bci2000.org/mediawiki/index.php/BCPy2000 BCPy2000] page for more details on the installation process, APIs, and hooks.&lt;br /&gt;
&lt;br /&gt;
[[Contributions:BCPy2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9443</id>
		<title>User Tutorial:Data Analysis</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9443"/>
		<updated>2022-04-20T16:02:21Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Custom Data Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is a number of data analysis tutorials provided. These show how to analyze some sample data that is included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Mu Rhythm/SMR Data Analysis==&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
:will compare the results of the previous step with other similar data.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following are some additional tutorials for working with different types of datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample MEG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==P300/ERP Data Analysis==&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following is an additional tutorial for working with ECoG datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[User_Reference:P300Classifier#Tutorial|Using the P300Classifier tool]]&lt;br /&gt;
:will show you how to train a classifier, and to obtain a set of configuration parameters, from data recorded with [[User Reference:StimulusPresentationTask|StimulusPresentation]] or [[User Reference:P3SpellerTask|P3Speller]] application modules.&lt;br /&gt;
&lt;br /&gt;
==Custom Data Analysis==&lt;br /&gt;
&lt;br /&gt;
BCI2000 data files can be loaded, read, and analyzed in both Matlab and Python. For users who wish to go beyond the constraints of the analysis procedures in the tutorials, the following resources may be useful:&lt;br /&gt;
&lt;br /&gt;
* The [[User_Reference:Command_Line_Processing|BCI2000 command-line tools]] can be used to recreate a chain of BCI2000 processing steps offline, from a system command-line.&lt;br /&gt;
* The Matlab function &amp;lt;tt&amp;gt;bci2000chain&amp;lt;/tt&amp;gt;, part of BCI2000&#039;s suite of [[User_Reference:Matlab_Tools|Matlab tools]], provides a convenient interface to this from within Matlab.&lt;br /&gt;
** BCI2000 Data can be converted and analyzed using [[User Reference:Matlab MEX Files|Matlab MEX Files]]&lt;br /&gt;
* Another option is to analyze BCI2000 Data in Python with [https://github.com/neurotechcenter/BCI2kReader BCI2k Reader]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Tutorial:BCI2000 Tour]], [[User Tutorial:Mu Rhythm BCI Tutorial]], [[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]][[Category:Contents]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9442</id>
		<title>User Tutorial:Data Analysis</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9442"/>
		<updated>2022-04-20T16:01:36Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is a number of data analysis tutorials provided. These show how to analyze some sample data that is included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Mu Rhythm/SMR Data Analysis==&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
:will compare the results of the previous step with other similar data.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following are some additional tutorials for working with different types of datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample MEG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==P300/ERP Data Analysis==&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following is an additional tutorial for working with ECoG datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[User_Reference:P300Classifier#Tutorial|Using the P300Classifier tool]]&lt;br /&gt;
:will show you how to train a classifier, and to obtain a set of configuration parameters, from data recorded with [[User Reference:StimulusPresentationTask|StimulusPresentation]] or [[User Reference:P3SpellerTask|P3Speller]] application modules.&lt;br /&gt;
&lt;br /&gt;
==Custom Data Analysis==&lt;br /&gt;
&lt;br /&gt;
BCI2000 data files can be loaded, read, and analyzed in both Matlab and Python. For users who wish to go beyond the constraints of the analysis procedures in the tutorials, the following resources may be useful:&lt;br /&gt;
&lt;br /&gt;
* The [[User_Reference:Command_Line_Processing|BCI2000 command-line tools]] can be used to recreate a chain of BCI2000 processing steps offline, from a system command-line.&lt;br /&gt;
* The Matlab function &amp;lt;tt&amp;gt;bci2000chain&amp;lt;/tt&amp;gt;, part of BCI2000&#039;s suite of [[User_Reference:Matlab_Tools|Matlab tools]], provides a convenient interface to this from within Matlab.&lt;br /&gt;
** Converting and Analyzing BCI2000 Data with  [[User Reference:Matlab MEX Files|Matlab MEX Files]]&lt;br /&gt;
* Analyze BCI2000 Data in Python with [https://github.com/neurotechcenter/BCI2kReader BCI2k Reader]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Tutorial:BCI2000 Tour]], [[User Tutorial:Mu Rhythm BCI Tutorial]], [[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]][[Category:Contents]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9441</id>
		<title>User Tutorial:Data Analysis</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial:Data_Analysis&amp;diff=9441"/>
		<updated>2022-04-20T15:48:07Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is a number of data analysis tutorials provided. These show how to analyze some sample data that is included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Getting Started: Reading BCI2000 Data Files==&lt;br /&gt;
BCI2000 data files can be loaded, read, and analyzed in both Matlab and Python. Tools to do this can be found at the links below:&lt;br /&gt;
* Converting and Analyzing BCI2000 Data with  [[User Reference:Matlab MEX Files|Matlab MEX Files]]&lt;br /&gt;
* Analyze BCI2000 Data in Python with [https://github.com/neurotechcenter/BCI2kReader BCI2k Reader]&lt;br /&gt;
&lt;br /&gt;
==Mu Rhythm/SMR Data Analysis==&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
:will compare the results of the previous step with other similar data.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following are some additional tutorials for working with different types of datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
:will guide you through an offline analysis using some sample MEG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==P300/ERP Data Analysis==&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample EEG data included with &#039;&#039;BCI2000&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
As we know, EEG data is not the only type of data that is of interest in BCI.  Following is an additional tutorial for working with ECoG datasets:&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
:will guide you through a time-domain offline analysis using some sample ECoG data included with &#039;&#039;BCI2000&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[User_Reference:P300Classifier#Tutorial|Using the P300Classifier tool]]&lt;br /&gt;
:will show you how to train a classifier, and to obtain a set of configuration parameters, from data recorded with [[User Reference:StimulusPresentationTask|StimulusPresentation]] or [[User Reference:P3SpellerTask|P3Speller]] application modules.&lt;br /&gt;
&lt;br /&gt;
==Custom Data Analysis==&lt;br /&gt;
&lt;br /&gt;
For users who wish to go beyond the constraints of the analysis procedures in the tutorials, the following resources may be useful:&lt;br /&gt;
&lt;br /&gt;
* The [[User_Reference:Command_Line_Processing|BCI2000 command-line tools]] can be used to recreate a chain of BCI2000 processing steps offline, from a system command-line.&lt;br /&gt;
* The Matlab function &amp;lt;tt&amp;gt;bci2000chain&amp;lt;/tt&amp;gt;, part of BCI2000&#039;s suite of [[User_Reference:Matlab_Tools|Matlab tools]], provides a convenient interface to this from within Matlab.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Tutorial:BCI2000 Tour]], [[User Tutorial:Mu Rhythm BCI Tutorial]], [[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]][[Category:Contents]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9440</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9440"/>
		<updated>2022-04-19T18:44:42Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip BCI2000 MEX files here].&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9439</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9439"/>
		<updated>2022-04-19T18:44:35Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip BCI2000 MEX files here].&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9438</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9438"/>
		<updated>2022-04-19T18:44:23Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip BCI2000 MEX files here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9437</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9437"/>
		<updated>2022-04-19T18:43:33Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Downloading BCI2000 MEX files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip BCI2000 MEX files here].&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9436</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9436"/>
		<updated>2022-04-19T18:43:06Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Downloading BCI2000 MEX files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip BCI2000 MEX files] to analyze BCI2000 data.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9435</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9435"/>
		<updated>2022-04-19T18:42:41Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Downloading BCI2000 MEX files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip | BCI2000 MEX files] to analyze BCI2000 data.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9434</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9434"/>
		<updated>2022-04-19T18:42:14Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 32- and 64-bit Windows, Mac OS X, and Linux for the amd64 architecture. &lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
==Downloading BCI2000 MEX files==&lt;br /&gt;
Download the [https://bci2000.org/downloads/mex.zip| BCI2000 MEX files] to analyze BCI2000 data.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, follow the [[Programming_Howto:Building_and_Customizing_BCI2000|tutorial on building BCI2000 from source]], and make sure to check the &amp;lt;tt&amp;gt;BUILD_MEX_FILES&amp;lt;/tt&amp;gt; option in the CMake configuration step.&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Install_Prerequisites&amp;diff=9394</id>
		<title>Programming Howto:Install Prerequisites</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Install_Prerequisites&amp;diff=9394"/>
		<updated>2022-04-11T16:29:40Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* TortoiseSVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==TortoiseSVN==&lt;br /&gt;
Download the TortoiseSVN installer from [https://tortoisesvn.net tortoisesvn.net].&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_2-1985.png|center]]&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to install command line client tools:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_3-1990.png|center]]&lt;br /&gt;
This will allow you to later check the build number and run various commands. &lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Finish&amp;quot; to dismiss the installer dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_4-2001.png|center]]&lt;br /&gt;
&lt;br /&gt;
==CMake==&lt;br /&gt;
Download the CMake installer from [https://cmake.org cmake.org/download]. The latest release to date is 3.22.3, but most recent versions should work.&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_2-2013.png|center]]&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Add to path for all users&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_3-2019.png|center]]&lt;br /&gt;
&lt;br /&gt;
Follow the installation instructions. Click &amp;quot;Finish&amp;quot; to dismiss the installer dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_4-2025.png|center]]&lt;br /&gt;
&lt;br /&gt;
==VisualStudio==&lt;br /&gt;
Download the VisualStudio Community installer from [https://visualstudio.com/downloads/ visualstudio.com]. BCI2000 compilation will work with VS2017, VS2019 or VS2022 but does not work with VS2015 or below. &amp;lt;br /&amp;gt;&amp;lt;i&amp;gt;*Note that BCI2000 is most frequently tested with VS2019. &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:install_vs2017_community_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Make sure to install the C++ compiler:&lt;br /&gt;
&lt;br /&gt;
[[File:install_vs2017_community_2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Qt==&lt;br /&gt;
Download the Qt open source installer from [https://www.qt.io/download www.qt.io].&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;go open source&amp;quot; link to download a version of qt available for open source software:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt installer 1-2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Download the Qt online installer:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt installer 2-2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt_installer_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
If you do not already have an account, follow the steps to create one:&lt;br /&gt;
&lt;br /&gt;
[[File:qt installer account.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Agree to the open source obligations, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt installer open source obligations.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Next&amp;quot; to start the installation:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Choose a directory, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_4.png|center]]&lt;br /&gt;
====Qt Versioning====&lt;br /&gt;
&lt;br /&gt;
Choose a Qt version that is consistent with the version of VisualStudio you downloaded earlier. Another consideration is the framework you wish to build BCI2000 with. For example, in this tutorial, we are compiling for the 2019 Visual Studio on a 64 bit system, make sure you select MSVC 2019 64-bit, which is demonstrated in the photo below. If you&#039;re using Visual Studio 2017 find the latest version of Qt that supports Visual Studio 2017 for whatever architecture you want to build BCI2000 on and install that version of Qt. Note that VisualStudio 2017 is binary compatible with VisualStudio 2015, so you may use the MSVC2015 32-bit package for a 32bit build using VisualStudio 2017.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Agree to the License Agreement, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_6.png|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Next&amp;quot; when prompted for Start Menu shortcuts:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_7.png|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Install&amp;quot; to download and install Qt files:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_8.png|center]]&lt;br /&gt;
&lt;br /&gt;
Progress will be indicated during installation.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_9.png|center]]&lt;br /&gt;
&lt;br /&gt;
Installation may take a long time.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_10.png|center]]&lt;br /&gt;
&lt;br /&gt;
Uncheck &amp;quot;Launch Qt Creator&amp;quot; before clicking &amp;quot;Finish&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_11.png|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Register with BCI2000 Project|register with the BCI2000 Project]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9393</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9393"/>
		<updated>2022-04-08T19:20:09Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e0f2ff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;lt;b&amp;gt;What is BCI2000?&amp;lt;/b&amp;gt;=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#cef0ea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fbefcc; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#f7dfea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
* Converting and Analyzing BCI2000 Data with  [[User Reference:Matlab MEX Files|Matlab MEX Files]]&lt;br /&gt;
* Analyze BCI2000 Data in Python with [https://github.com/neurotechcenter/BCI2kReader BCI2k Reader]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e8eaff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#d2f0f7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9392</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9392"/>
		<updated>2022-04-08T19:19:30Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e0f2ff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;lt;b&amp;gt;What is BCI2000?&amp;lt;/b&amp;gt;=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#cef0ea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fbefcc; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#f7dfea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
*[[User Reference:Matlab MEX Files|Converting and Analyzing BCI2000 Data with Matlab MEX Files]]&lt;br /&gt;
* Analyze BCI2000 Data in Python with [https://github.com/neurotechcenter/BCI2kReader BCI2k Reader]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e8eaff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#d2f0f7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9384</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9384"/>
		<updated>2022-03-31T17:53:30Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Building BCI2000 MEX files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
===Microsoft Windows 32===&lt;br /&gt;
The BCI2000 [[BCI2000_Binaries|binary distribution]] comes with pre-compiled MEX files for 32-bit Microsoft Windows platforms.&lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
===Other platforms===&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 64-bit Windows, Mac OS X, and Linux for the i386 as well as the amd64 architecture. Support for these MEX files is &#039;&#039;experimental&#039;&#039; at present, and they may or may not work on your particular configuration.&lt;br /&gt;
On 64-bit Windows, the MEX files require the Visual Studio runtime libraries. If you want to use them on a machine that doesn&#039;t have Visual Studio installed, you will need to install the [http://{{SERVERNAME}}/downloads/bin/vcredist_x64.exe Visual Studio runtime libraries] first.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, the following information applies. There are two ways to do this, which are as follows:&lt;br /&gt;
# Download the following zip file that consists of the subfolder within the BCI2000 source code containing the Matlab mex files.&lt;br /&gt;
#*https://bci2000.org/downloads/mex.zip&lt;br /&gt;
# Use the BCI2000 source code, as explained below:&lt;br /&gt;
#*BCI2000 provides a Matlab script that can be used to build MEX files.&lt;br /&gt;
#**After downloading the [[Programming Reference:BCI2000 Source Code|BCI2000 source code]], start Matlab and make sure that the mex command is configured to use a compiler that is able to compile C++ code. On Windows platforms, you may use the compiler included with the freely available Windows SDK. On Unix platforms, you will typically use the gcc compiler. Typing &amp;lt;tt&amp;gt;help mex&amp;lt;/tt&amp;gt; from the Matlab command line will guide you in configuring the mex command.&lt;br /&gt;
#**Change Matlab&#039;s working directory to &amp;lt;tt&amp;gt;BCI2000/src/core/Tools/mex/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#**Execute &amp;lt;tt&amp;gt;buildmex&amp;lt;/tt&amp;gt; from the Matlab command line.&lt;br /&gt;
#**Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use the newly built MEX files.&lt;br /&gt;
#**On Unix-based platforms, Matlab creates its own execution environment for MEX files, independently of system libraries. For MEX files, this means that they usually won&#039;t work unless compiled with a version of the [http://gcc.gnu.org gcc compiler] that matches the one used to build Matlab itself, and linked against libraries that match the ones used by Matlab. To check, see the [http://www.mathworks.com/support/compilers/current_release/ list of compatible compiler versions].&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9383</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9383"/>
		<updated>2022-03-31T17:53:14Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Building BCI2000 MEX files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
===Microsoft Windows 32===&lt;br /&gt;
The BCI2000 [[BCI2000_Binaries|binary distribution]] comes with pre-compiled MEX files for 32-bit Microsoft Windows platforms.&lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
===Other platforms===&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 64-bit Windows, Mac OS X, and Linux for the i386 as well as the amd64 architecture. Support for these MEX files is &#039;&#039;experimental&#039;&#039; at present, and they may or may not work on your particular configuration.&lt;br /&gt;
On 64-bit Windows, the MEX files require the Visual Studio runtime libraries. If you want to use them on a machine that doesn&#039;t have Visual Studio installed, you will need to install the [http://{{SERVERNAME}}/downloads/bin/vcredist_x64.exe Visual Studio runtime libraries] first.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, the following information applies. There are two ways to do this, which are as follows:&lt;br /&gt;
# Download the following zip file that consists of the subfolder within the BCI2000 source code containing the Matlab mex files.&lt;br /&gt;
#*[https://bci2000.org/downloads/mex.zip| Matlab MEX Zip File]&lt;br /&gt;
# Use the BCI2000 source code, as explained below:&lt;br /&gt;
#*BCI2000 provides a Matlab script that can be used to build MEX files.&lt;br /&gt;
#**After downloading the [[Programming Reference:BCI2000 Source Code|BCI2000 source code]], start Matlab and make sure that the mex command is configured to use a compiler that is able to compile C++ code. On Windows platforms, you may use the compiler included with the freely available Windows SDK. On Unix platforms, you will typically use the gcc compiler. Typing &amp;lt;tt&amp;gt;help mex&amp;lt;/tt&amp;gt; from the Matlab command line will guide you in configuring the mex command.&lt;br /&gt;
#**Change Matlab&#039;s working directory to &amp;lt;tt&amp;gt;BCI2000/src/core/Tools/mex/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#**Execute &amp;lt;tt&amp;gt;buildmex&amp;lt;/tt&amp;gt; from the Matlab command line.&lt;br /&gt;
#**Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use the newly built MEX files.&lt;br /&gt;
#**On Unix-based platforms, Matlab creates its own execution environment for MEX files, independently of system libraries. For MEX files, this means that they usually won&#039;t work unless compiled with a version of the [http://gcc.gnu.org gcc compiler] that matches the one used to build Matlab itself, and linked against libraries that match the ones used by Matlab. To check, see the [http://www.mathworks.com/support/compilers/current_release/ list of compatible compiler versions].&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9382</id>
		<title>User Reference:Matlab MEX Files</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Reference:Matlab_MEX_Files&amp;diff=9382"/>
		<updated>2022-03-31T17:35:08Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
MEX files allow the execution of externally compiled code from within Matlab. Because Matlab code is interpreted at runtime, and MEX files contain binary code that has been compiled prior to use, MEX files are generally faster than equivalent Matlab code.&lt;br /&gt;
&lt;br /&gt;
BCI2000 MEX files contain code that interfaces with BCI2000-specific data structures, i.e. BCI2000 data files, and parameter definitions. This allows access to BCI2000 data from Matlab, without duplicating code that implements those data structures.&lt;br /&gt;
&lt;br /&gt;
Higher-level Matlab routines for data-analysis and management, which make use of these mex files,  are documented on the [[User_Reference:Matlab_Tools|Matlab tools]] page.&lt;br /&gt;
&lt;br /&gt;
==Using BCI2000 MEX files==&lt;br /&gt;
===Microsoft Windows 32===&lt;br /&gt;
The BCI2000 [[BCI2000_Binaries|binary distribution]] comes with pre-compiled MEX files for 32-bit Microsoft Windows platforms.&lt;br /&gt;
Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use these files.&lt;br /&gt;
&lt;br /&gt;
===Other platforms===&lt;br /&gt;
BCI2000 comes with pre-built MEX files for a number of platforms, including 64-bit Windows, Mac OS X, and Linux for the i386 as well as the amd64 architecture. Support for these MEX files is &#039;&#039;experimental&#039;&#039; at present, and they may or may not work on your particular configuration.&lt;br /&gt;
On 64-bit Windows, the MEX files require the Visual Studio runtime libraries. If you want to use them on a machine that doesn&#039;t have Visual Studio installed, you will need to install the [http://{{SERVERNAME}}/downloads/bin/vcredist_x64.exe Visual Studio runtime libraries] first.&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 MEX files==&lt;br /&gt;
Typically, you will use pre-built binary versions of BCI2000 MEX files as described above. If you need to build BCI2000 MEX files yourself, the following information applies. There are two ways to do this, which are as follows:&lt;br /&gt;
# Download the following zip file that consists of the subfolder within the BCI2000 source code containing the Matlab mex files.&lt;br /&gt;
# Use the BCI2000 source code, as explained below:&lt;br /&gt;
#*BCI2000 provides a Matlab script that can be used to build MEX files.&lt;br /&gt;
#**After downloading the [[Programming Reference:BCI2000 Source Code|BCI2000 source code]], start Matlab and make sure that the mex command is configured to use a compiler that is able to compile C++ code. On Windows platforms, you may use the compiler included with the freely available Windows SDK. On Unix platforms, you will typically use the gcc compiler. Typing &amp;lt;tt&amp;gt;help mex&amp;lt;/tt&amp;gt; from the Matlab command line will guide you in configuring the mex command.&lt;br /&gt;
#**Change Matlab&#039;s working directory to &amp;lt;tt&amp;gt;BCI2000/src/core/Tools/mex/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#**Execute &amp;lt;tt&amp;gt;buildmex&amp;lt;/tt&amp;gt; from the Matlab command line.&lt;br /&gt;
#**Add &amp;lt;tt&amp;gt;BCI2000/tools/mex&amp;lt;/tt&amp;gt; to your Matlab path to use the newly built MEX files.&lt;br /&gt;
#**On Unix-based platforms, Matlab creates its own execution environment for MEX files, independently of system libraries. For MEX files, this means that they usually won&#039;t work unless compiled with a version of the [http://gcc.gnu.org gcc compiler] that matches the one used to build Matlab itself, and linked against libraries that match the ones used by Matlab. To check, see the [http://www.mathworks.com/support/compilers/current_release/ list of compatible compiler versions].&lt;br /&gt;
&lt;br /&gt;
==BCI2000 MEX functions==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
  [ signal, states, parameters, total_samples, file_samples ] ...&lt;br /&gt;
     = load_bcidat( &#039;filename1&#039;, &#039;filename2&#039;, ... )&lt;br /&gt;
&lt;br /&gt;
loads signal, state, and parameter data from the files whose names are given&lt;br /&gt;
as function arguments.&lt;br /&gt;
&lt;br /&gt;
Examples for loading multiple files:&lt;br /&gt;
 files = dir( &#039;*.dat&#039; );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
 &lt;br /&gt;
 files = struct( &#039;name&#039;, uigetfile( &#039;MultiSelect&#039;, &#039;on&#039; ) );&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( files.name );&lt;br /&gt;
&lt;br /&gt;
For multiple files, number of channels, states, and signal type must be&lt;br /&gt;
consistent.&lt;br /&gt;
&lt;br /&gt;
By default, signal data will be in raw A/D units, and will be represented by the &lt;br /&gt;
smallest Matlab data type that accommodates them.&lt;br /&gt;
To obtain signal data calibrated into physical units (microvolts),&lt;br /&gt;
specify &#039;-calibrated&#039; as an option anywhere in the argument list.&lt;br /&gt;
&lt;br /&gt;
The &#039;states&#039; output variable will be a Matlab struct with BCI2000 state&lt;br /&gt;
names as struct member names, and the number of state value entries matching&lt;br /&gt;
the first dimension of the &#039;signal&#039; output variable.&lt;br /&gt;
&lt;br /&gt;
The &#039;parameters&#039; output variable will be a Matlab struct with BCI2000&lt;br /&gt;
parameter names as struct member names.&lt;br /&gt;
Individual parameter values are represented as cell arrays of strings in a &lt;br /&gt;
&#039;Value&#039; struct member, and additionally as numeric matrices in a &#039;NumericValue&#039;&lt;br /&gt;
struct member. When there is no numeric interpretation possible, the &lt;br /&gt;
corresponding matrix entry will be NaN. For nested matrices, no NumericValue&lt;br /&gt;
field is provided.&lt;br /&gt;
When multiple files are given, parameter values will match the ones contained &lt;br /&gt;
in the first file.&lt;br /&gt;
&lt;br /&gt;
Optionally, sample ranges may be specified for individual files:&lt;br /&gt;
 [ signal, states, parameters ] = load_bcidat( &#039;filename&#039;, [first last] )&lt;br /&gt;
will load a subset of samples defined by first and last sample index.&lt;br /&gt;
Specifying [0 0] for an empty sample range allows to read states and &lt;br /&gt;
parameters from a file without reading sample data:&lt;br /&gt;
 [ ignored, states, parameters ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
The &#039;total_samples&#039; output variable reports the total number of samples&lt;br /&gt;
present in all files, independently of how many samples have been&lt;br /&gt;
specified as sample ranges. This allows to retrieve the number of&lt;br /&gt;
samples in a file without actually loading the file:&lt;br /&gt;
 [ ignored, states, parameters, total_samples ] = load_bcidat( &#039;filename&#039;, [0 0] );&lt;br /&gt;
&lt;br /&gt;
Similarly, the &#039;file_samples&#039; output variable provides a vector&lt;br /&gt;
containing the number of samples within each input file, regardless of&lt;br /&gt;
any sample ranges that may have been specified.&lt;br /&gt;
 [ ignored, states, parameters, total_samples, file_samples ] = load_bcidat( &#039;filename1&#039;, [0 0], &#039;filename2&#039;, [0 0]  );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt;===&lt;br /&gt;
 save_bcidat( &#039;filename&#039;, signal, states, parameters );&lt;br /&gt;
saves signal, state, and parameter data into the named file.&lt;br /&gt;
&lt;br /&gt;
The signal, state, and parameter arguments must be Matlab structs as &lt;br /&gt;
created by the &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt; mex&lt;br /&gt;
files.&lt;br /&gt;
Signal data is always interpreted as raw data, i.e. it will be written&lt;br /&gt;
into the output file unchanged.&lt;br /&gt;
&lt;br /&gt;
The output file format is deduced from the output file&#039;s extension, &lt;br /&gt;
which may be &#039;&#039;.dat&#039;&#039;, &#039;&#039;.edf&#039;&#039;, or &#039;&#039;.gdf&#039;&#039;. When no extension is recognized, &lt;br /&gt;
the BCI2000 &#039;&#039;dat&#039;&#039; file format is used.&lt;br /&gt;
&lt;br /&gt;
For an example how to use &amp;lt;tt&amp;gt;save_bcidat&amp;lt;/tt&amp;gt; in conjunction with &amp;lt;tt&amp;gt;load_bcidat&amp;lt;/tt&amp;gt;,&lt;br /&gt;
see the [[Contributions:FilterGUI|FilterGUI]] tool contribution.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;convert_bciprm&amp;lt;/tt&amp;gt;===&lt;br /&gt;
A Matlab (mex) subroutine that converts BCI2000 parameters&lt;br /&gt;
from Matlab struct into string representation and back.&lt;br /&gt;
&lt;br /&gt;
 parameter_lines = convert_bciprm( parameter_struct );&lt;br /&gt;
&lt;br /&gt;
converts a BCI2000 parameter struct (as created by load_bcidat)&lt;br /&gt;
into a cell array of strings containing valid BCI2000 parameter&lt;br /&gt;
definition strings.&lt;br /&gt;
&lt;br /&gt;
When the input is a cell array rather than a Matlab struct, convert_bciprm&lt;br /&gt;
will interpret the input as a list of BCI2000 parameter definition strings (ignoring the NumericValue field if present).&lt;br /&gt;
&lt;br /&gt;
 parameter_struct = convert_bciprm( parameter_lines );&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;mem&amp;lt;/tt&amp;gt;===&lt;br /&gt;
This command estimates a power spectrum, using the AR based spectral estimator&lt;br /&gt;
that is also present in the [[User Reference:ARFilter|ARFilter]].&lt;br /&gt;
The calling syntax is:&lt;br /&gt;
 [spectrum, frequencies] = mem(signal, parms);&lt;br /&gt;
with &amp;lt;signal&amp;gt; and &amp;lt;spectrum&amp;gt; having dimensions values x channels, and&lt;br /&gt;
with &amp;lt;parms&amp;gt; being a vector of parameter values:&lt;br /&gt;
*model order,&lt;br /&gt;
*first bin center,&lt;br /&gt;
*last bin center,&lt;br /&gt;
*bin width,&lt;br /&gt;
*evaluations per bin,&lt;br /&gt;
*detrend option (optional, 0: none, 1: mean, 2: linear; defaults to none),&lt;br /&gt;
*sampling frequency (optional, defaults to 1).&lt;br /&gt;
For a detailed description of configuration parameters, see the [[User Reference:ARFilter]] page.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[User Reference:Data File Formats]], [[User Reference:ARFilter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]]&lt;br /&gt;
[[Category:Matlab]]&lt;br /&gt;
[[Category:Data Analysis Tools]]&lt;br /&gt;
[[Category:External Interfaces]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9381</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9381"/>
		<updated>2022-03-31T17:24:11Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e0f2ff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;lt;b&amp;gt;What is BCI2000?&amp;lt;/b&amp;gt;=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#cef0ea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fbefcc; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#f7dfea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
*[[User Reference:Matlab MEX Files|Converting and Analyzing BCI2000 Data with Matlab MEX Files]]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e8eaff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#d2f0f7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9378</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9378"/>
		<updated>2022-03-30T16:20:16Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* &amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2, and that the table above shows the suggested versions of Visual Studio and Qt to use together.&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9377</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9377"/>
		<updated>2022-03-30T16:19:02Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* &amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9376</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9376"/>
		<updated>2022-03-30T16:18:17Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9375</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9375"/>
		<updated>2022-03-30T16:18:09Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9374</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9374"/>
		<updated>2022-03-30T16:18:00Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9373</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9373"/>
		<updated>2022-03-30T16:17:33Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9372</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9372"/>
		<updated>2022-03-30T16:17:23Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&amp;lt;i&amp;gt;Note that checking off &amp;quot;Advanced&amp;quot; in Cmake is optional and does not impact the compilation&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9370</id>
		<title>Programming Howto:Configure BCI2000 for Compilation</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Configure_BCI2000_for_Compilation&amp;diff=9370"/>
		<updated>2022-03-30T16:15:03Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Tell CMake which Qt installation to use */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==Run the CMake GUI==&lt;br /&gt;
Double-click &amp;quot;Configure.sh.cmd&amp;quot; in your BCI2000 build directory.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_1.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Tell CMake which Qt installation to use==&lt;br /&gt;
Click &amp;quot;AddEntry&amp;quot; in the CMake window ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and enter the path to a Qt directory that is consistent with the compiler you are going to use. Use CMAKE_PREFIX_PATH as the name for the new entry. Be aware that the entry&#039;s name is case sensitive. Be sure to download the correct version of Qt for the build version you plan to use, and verify the compatibility of the versions of Qt and Visual Studio used. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;6&amp;quot;|Visual Studio and Qt Compatibility&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2017&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.12.12&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2019&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 5.15.2 &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|&amp;lt;b&amp;gt;Visual Studio 2022&amp;lt;/b&amp;gt;&lt;br /&gt;
|Qt 6.2.4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt; Note that BCI2000 is most frequently tested using Visual Studio 2019 and Qt 5.15.2&amp;lt;/i&amp;gt;&lt;br /&gt;
[[File:use_cmake_3.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Perform the configuration step==&lt;br /&gt;
In the CMake window, click &amp;quot;Configure&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_4.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and choose a generator that is consistent with your compiler, and with the Qt directory chosen above. Then click &amp;quot;Finish&amp;quot; to perform the configuration step.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_5.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
You will see a list of targets scrolling by, and a number of new entries in the variable list at the top of the window, marked in red.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_6.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Choose build options==&lt;br /&gt;
Make sure the &amp;quot;Grouped&amp;quot; checkbox is checked, and configure the build by customizing values in the &amp;quot;BUILD&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_7.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... &amp;quot;EXTENSIONS&amp;quot; group, &lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_8.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... and &amp;quot;USE&amp;quot; group. Make sure to uncheck USE_APPLICATION_BUNDLES to avoid problems with compiling. Then, click &amp;quot;Generate&amp;quot; to create build files.&lt;br /&gt;
&lt;br /&gt;
[[File:USE APPLICATION BUNDLES.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
When CMake displays its &amp;quot;Generating done&amp;quot; message, ...&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_9.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
... your BCI2000 build directory will now contain a VisualStudio solution file, as well as a number of additional CMake-generated files.&lt;br /&gt;
&lt;br /&gt;
[[File:use_cmake_10.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Compile BCI2000|compile BCI2000]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9369</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9369"/>
		<updated>2022-03-30T14:51:56Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Programming Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Experimental Design Interfaces====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
The &amp;lt;i&amp;gt;&amp;quot;P300&amp;quot;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;quot;oddball&amp;quot;&amp;lt;/i&amp;gt; potential is the presentation of infrequent stimuli evokes a positive deflection in the EEG over parietal cortex about 300 ms after stimulus presentation. &lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer|Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter|Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9368</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9368"/>
		<updated>2022-03-30T14:38:48Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e0f2ff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;lt;b&amp;gt;What is BCI2000?&amp;lt;/b&amp;gt;=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#cef0ea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fbefcc; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#f7dfea; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#e8eaff; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#d2f0f7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9367</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9367"/>
		<updated>2022-03-30T14:10:22Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ECF9FF; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=&amp;lt;b&amp;gt;What is BCI2000?&amp;lt;/b&amp;gt;=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#C6F8E5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#FBF7D5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F5CDDE; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#E2BEF1; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#CCE1F2; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9366</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9366"/>
		<updated>2022-03-30T13:17:38Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ECF9FF; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=What is BCI2000?=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows systems, and the source code can be compiled on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#C6F8E5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#FBF7D5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F5CDDE; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#E2BEF1; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#CCE1F2; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9363</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Main_Page&amp;diff=9363"/>
		<updated>2022-03-29T18:33:45Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: Home Page Redesign&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; class=&amp;quot;noprint&amp;quot; style=&amp;quot;width:100%;margin-top:-2em;margin-bottom:0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px solid #dfdfdf;background-color:#efefef;padding-left:1em;word-spacing:1em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;form&amp;quot; name=&amp;quot;sitesearch&amp;quot; action=&amp;quot;https://www.google.com/search&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; name=&amp;quot;q&amp;quot; type=&amp;quot;text&amp;quot; size=&amp;quot;40&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Google site search of bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;sitesearch&amp;quot; value=&amp;quot;bci2000.org&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;ie&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;htmltag tagname=&amp;quot;input&amp;quot; type=&amp;quot;hidden&amp;quot; name=&amp;quot;oe&amp;quot; value=&amp;quot;utf-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/htmltag&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#ECF9FF; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
=What is BCI2000?=&lt;br /&gt;
BCI2000 is a general-purpose software system for brain-computer interface (BCI) research.&lt;br /&gt;
BCI2000 includes software tools that can acquire and process data, present stimuli and feedback, and manage interaction with outside devices such as robotic arms. BCI2000 is a real-time system that can synchronize EEG and other signals with a wide variety of biosignals and input devices such as mice or eye-trackers. It has several modules to manage data importing and exporting in common file formats. BCI2000 operates on most Windows system, and the source code can be complied on most Windows machines. &lt;br /&gt;
&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;margin-top:-10px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#C6F8E5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 for Users==&lt;br /&gt;
&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* [[DownloadBCI2000|Download BCI2000]]&lt;br /&gt;
* Take the introductory [[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
* Learn more through an &amp;lt;br /&amp;gt; [[Introduction_to_Adaptive_Neurotechnologies|Introduction to Adaptive Neurotechnologies]]&lt;br /&gt;
* Review the terminology in the [[BCI2000 Glossary]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#FBF7D5; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BCI2000 for Developers==&lt;br /&gt;
* [//{{SERVERNAME}}/useradmin Create or modify a User Account]&lt;br /&gt;
* Download [[BCI2000 Binaries]]&lt;br /&gt;
* Download, build, and customize the BCI2000 toolchain using&amp;lt;br /&amp;gt; [[Programming_Howto:Building and Customizing BCI2000|Building and Customizing Howto]]&lt;br /&gt;
* Access to the [[Programming Howto:Building and Customizing BCI2000|BCI2000 Source Code]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F5CDDE; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 References==&lt;br /&gt;
===BCI2000 Overview and Tools===&lt;br /&gt;
* The [[User Reference:Contents|User Reference Manual]] describes all details&amp;lt;br /&amp;gt;of system configuration and usage&lt;br /&gt;
===Technical References===&lt;br /&gt;
* The [[Technical Reference:Contents|Technical Reference Manual]] contains a discussion of its &amp;lt;br /&amp;gt;basic concepts, and a detailed specification of the BCI2000 standard.&lt;br /&gt;
===Programming References===&lt;br /&gt;
* The [[Programming Reference:Contents|Programming Reference]] provides background information &amp;lt;br /&amp;gt;which you need in order to understand, modify, or create code that &amp;lt;br /&amp;gt;depends on the BCI2000 framework.&lt;br /&gt;
===Contributions===&lt;br /&gt;
* [[Contributions:Contents|User-Contributed BCI2000 Components and Patches]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#F9DED7; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Tutorials==&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
===Experimental Tutorials===&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module|Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter|Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter|Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer|Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter|Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger|Implementing an Input Logger]]&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis with BCI2000]]&lt;br /&gt;
===All Tutorials:See a complete list of [[User Tutorial|BCI2000 tutorials]] here===&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#E2BEF1; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==Supported Frameworks==&lt;br /&gt;
* BCI2000 Remote - includes Matlab, C++, and Python &lt;br /&gt;
** [[Technical Reference:BCI2000Remote Library]]&lt;br /&gt;
** [[Programming Reference:BCI2000Remote Class]]&lt;br /&gt;
** [[User Tutorial:BCI2000Remote]]&lt;br /&gt;
* [[PsychoPy]]&lt;br /&gt;
* [[BCPy2000]]&lt;br /&gt;
** [[User Tutorial:BCPy2000]]&lt;br /&gt;
** [[Contributions:BCPy2000]]&lt;br /&gt;
* BCI2000 Core Frameworks&lt;br /&gt;
** [[User Reference:P3SpellerTask|P3 Speller]]&lt;br /&gt;
** [[User Reference:StimulusPresentationTask|Stimulus Presentation]] &lt;br /&gt;
** [[User Reference:CursorTask|Cursor Task]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#CCE1F2; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Additional Information==&lt;br /&gt;
* [[System Features|Features supported by BCI2000]]&lt;br /&gt;
* [https://github.com/neurotechcenter NCAN Github]&lt;br /&gt;
* [//{{SERVERNAME}}/phpbb BCI2000 Community Forum]&lt;br /&gt;
* [//{{SERVERNAME}}/tracproj/newticket Submit a Bug Report]  (make sure you log in)&lt;br /&gt;
* [[User FAQ|BCI2000 Frequently Asked Questions]]&lt;br /&gt;
* [[BCI2000 Glossary]]&amp;lt;br /&amp;gt;of terms specific to BCI2000&lt;br /&gt;
* [[BCI2000 Licensing|Licensing Information]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;10&amp;quot; style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:white; align:right;vertical-align:top;&amp;quot;&amp;gt;&lt;br /&gt;
==BCI2000 Publications==&lt;br /&gt;
* [http://{{SERVERNAME}}/downloads/doc/paper.pdf G. Schalk, D.J. McFarland, T. Hinterberger, N. Birbaumer, and J.R. Wolpaw: &#039;&#039;BCI2000: A General-Purpose Brain-Computer Interface (BCI) System&#039;&#039;, IEEE Trans Biomed Eng, 51(6), June 2004.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &#039;&#039;BCI2000: A General-Purpose Software Platform for BCI Research,&#039;&#039; In: G. Dornhege, J. del R. Millán, T. Hinterberger, D.J. McFarland, K.-R. Müller (eds.), &#039;&#039;Toward Brain-Computer Interfacing,&#039;&#039; MIT Press, 2007.&lt;br /&gt;
* [http://www.amazon.com/Practical-Guide-BrainComputer-Interfacing-BCI2000/dp/1849960917/ G. Schalk, J. Mellinger: &amp;quot;A Practical Guide to Brain-Computer Interfacing with BCI2000&amp;quot;, Springer, 2010.]&lt;br /&gt;
* J. Mellinger, G. Schalk: &amp;quot;Using BCI2000 in BCI Research,&amp;quot; In: B. Graimann, B. Allison, G. Pfurtscheller (eds.), &amp;quot;Brain-Computer Interfaces: Revolutionizing Human-Computer Interaction&amp;quot;, Springer, 2010.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9362</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9362"/>
		<updated>2022-03-29T17:58:54Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Additional User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
The &amp;lt;i&amp;gt;&amp;quot;P300&amp;quot;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;quot;oddball&amp;quot;&amp;lt;/i&amp;gt; potential is the presentation of infrequent stimuli evokes a positive deflection in the EEG over parietal cortex about 300 ms after stimulus presentation. &lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9361</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9361"/>
		<updated>2022-03-29T17:57:42Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* P300 Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
The &amp;lt;i&amp;gt;&amp;quot;P300&amp;quot;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;quot;oddball&amp;quot;&amp;lt;/i&amp;gt; potential is the presentation of infrequent stimuli evokes a positive deflection in the EEG over parietal cortex about 300 ms after stimulus presentation. &lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9360</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9360"/>
		<updated>2022-03-29T17:57:28Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* P300 Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
The &amp;lt;i&amp;gt;&amp;quot;P300&amp;quot;&amp;lt;/i&amp;gt; or &amp;quot;oddball&amp;quot; potential is the presentation of infrequent stimuli evokes a positive deflection in the EEG over parietal cortex about 300 ms after stimulus presentation. &lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9359</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9359"/>
		<updated>2022-03-29T17:53:57Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9358</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9358"/>
		<updated>2022-03-29T17:49:37Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Mu Rhythm Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
In human EEG, primary sensory or motor cortical areas typically exhibit &amp;lt;i&amp;gt;mu rhythm&amp;lt;/i&amp;gt; activity at a frequency of approximately 8-12 Hz when they are not processing sensory information or producing motor output.&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9357</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9357"/>
		<updated>2022-03-29T17:47:41Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9356</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9356"/>
		<updated>2022-03-29T17:33:45Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Initial Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9355</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9355"/>
		<updated>2022-03-29T17:27:27Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9354</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9354"/>
		<updated>2022-03-29T17:27:16Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9353</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9353"/>
		<updated>2022-03-29T17:27:07Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Additional User Tutorials====&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback|Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File|Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup|EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000|Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results|Interpreting the Results]]&lt;br /&gt;
*[[Contributions:XsensMTwLogger|XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink|EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification|BCI2000 Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9352</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9352"/>
		<updated>2022-03-29T17:25:42Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9351</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9351"/>
		<updated>2022-03-29T17:25:29Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Data Analysis Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====EEG Data Tutorials====&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
====General Data====&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
====ECoG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data|Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data|Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
====EEG Data====&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data|Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data|Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
====MEG Data====&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data|Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9350</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9350"/>
		<updated>2022-03-29T17:23:52Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Psychopy|PsychoPy]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
====P300 Tutorials====&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time|Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial|P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response|Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session|Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session|Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
&lt;br /&gt;
====EEG Data Tutorials====&lt;br /&gt;
&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9349</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9349"/>
		<updated>2022-03-29T17:20:43Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* Setup Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[User Tutorial:BCI2000 Tour|BCI2000 Tour]]&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:Psychopy]]&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9348</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9348"/>
		<updated>2022-03-29T17:20:21Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* User Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
====BCI2000 Framework Tutorials====&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink|BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000Remote|BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity|BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000|BCPy2000]]&lt;br /&gt;
&lt;br /&gt;
====Mu Rhythm Tutorials====&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm|Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial|Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session|Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session|Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session|Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:Psychopy]]&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9347</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9347"/>
		<updated>2022-03-29T17:13:56Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: Initial version - all tutorials page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The User Tutorials page below contains step-by-step guides and videos for BCI2000 setup, usage, and supported frameworks.&lt;br /&gt;
&lt;br /&gt;
===Setup Tutorials===&lt;br /&gt;
*[[Programming Howto:Install Prerequisites|Install Prerequisites]]&lt;br /&gt;
*[[Programming Howto:Register with BCI2000 Project|Register with the BCI2000 Project]]&lt;br /&gt;
*[[Programming Howto:Download the BCI2000 Sourcecode|Download the BCI2000 Sourcecode]]&lt;br /&gt;
*[[Programming Howto:Configure BCI2000 for Compilation|Configure BCI2000 for Compilation]]&lt;br /&gt;
*[[Programming Howto:Compile BCI2000|Compile BCI2000]]&lt;br /&gt;
*[[Programming Howto:Create a custom Signal Processing Module|Create a custom Signal Processing Module]]&lt;br /&gt;
*[[Programming Howto:Attach the Debugger to a BCI2000 Module|Attach the Debugger to a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Programmatically wait for the Debugger in a BCI2000 Module|Programmatically wait for the Debugger in a BCI2000 Module]]&lt;br /&gt;
*[[Programming Howto:Deploy a Release version of a BCI2000 Module|Deploy a Release version of a BCI2000 Module]]&lt;br /&gt;
&lt;br /&gt;
===User Tutorials===&lt;br /&gt;
*[[User Tutorial:Analyzing the Initial Mu Rhythm Session]]&lt;br /&gt;
*[[User Tutorial:BCI2000PresentationLink]] &lt;br /&gt;
*[[User Tutorial:BCI2000 Tour]]&lt;br /&gt;
*[[User Tutorial:BCI2000Remote]]&lt;br /&gt;
*[[User Tutorial:BCI2000Unity]]&lt;br /&gt;
*[[User Tutorial:BCPy2000]]&lt;br /&gt;
*[[User Tutorial:Configuring Online Feedback]]&lt;br /&gt;
*[[User Tutorial:Designing an Eloc File]]&lt;br /&gt;
*[[User Tutorial:EEG Measurement Setup]]&lt;br /&gt;
*[[User Tutorial:Integrating an EGI amplifier with BCI2000]]&lt;br /&gt;
*[[User Tutorial:Interpreting the Results]]&lt;br /&gt;
*[[User Tutorial:Introduction to the Mu Rhythm]]&lt;br /&gt;
*[[User Tutorial:Introduction to the P300 Response]]&lt;br /&gt;
*[[User Tutorial:Mu Rhythm BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Obtaining Mu Rhythm Parameters in an Initial Session]]&lt;br /&gt;
*[[User Tutorial:Obtaining P300 Parameters in a Calibration Session]]&lt;br /&gt;
*[[User Tutorial:P300 BCI Tutorial]]&lt;br /&gt;
*[[User Tutorial:Performing a Mu Rhythm Feedback Session]]&lt;br /&gt;
*[[User Tutorial:Performing a P300 Spelling Session]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing a Time-Domain Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of ECoG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of EEG Data]]&lt;br /&gt;
*[[User Tutorial:Performing an Offline Analysis of MEG Data]]&lt;br /&gt;
*[[User Tutorial:Preparing your BCI2000 system for P300 BCI experiments for the first time]]&lt;br /&gt;
*[[User Tutorial:Psychopy]]&lt;br /&gt;
&lt;br /&gt;
*[[Contributions:XsensMTwLogger]]&lt;br /&gt;
*[[Contributions:EyetrackerLoggerEyeLink]]&lt;br /&gt;
*[[User Reference:BCI2000Certification]]&lt;br /&gt;
&lt;br /&gt;
===Programming Tutorials===&lt;br /&gt;
*[[Programming Tutorial:Implementing a Source Module]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Signal Processing Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing a Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Working with the FieldTrip buffer]]&lt;br /&gt;
*[[Programming Tutorial:Implementing another Matlab-based Filter]]&lt;br /&gt;
*[[Programming Tutorial:Implementing an Input Logger]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Data Analysis Tutorials===&lt;br /&gt;
*[[User Tutorial:Data Analysis|Data Analysis Tutorials]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contents]][[Category:Specification]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9346</id>
		<title>User Tutorial</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=User_Tutorial&amp;diff=9346"/>
		<updated>2022-03-29T16:19:46Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: Add a page to host all tutorials&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=DownloadBCI2000&amp;diff=9345</id>
		<title>DownloadBCI2000</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=DownloadBCI2000&amp;diff=9345"/>
		<updated>2022-03-29T15:46:36Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: Create more basic BCI2000 download page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Access==&lt;br /&gt;
Access to BCI2000 is provided to users who have agreed to the terms of the GNU General Public License (GPL). Thus, you need a [[Creating_a_User_Account|user account]] to download the binary version of BCI2000, and you need to take an extra step and agree to the GPL at https://www.bci2000.org/useradmin/.&lt;br /&gt;
&lt;br /&gt;
==Download BCI2000==&lt;br /&gt;
The latest binary release of BCI2000 is from 2020, and it is available at&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;http://bci2000.org/downloads/bin/BCI2000Setup.exe&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Building BCI2000 from the current source==&lt;br /&gt;
&lt;br /&gt;
A step-by-step tutorial describing the process of building BCI2000 from source may be found [[Programming Howto:Building and Customizing BCI2000|here]].&lt;br /&gt;
&lt;br /&gt;
==Contributed Code==&lt;br /&gt;
BCI2000 modules from the [[Contributions:Contents|contribution section]] are not part of the BCI2000 core distribution.&lt;br /&gt;
Especially, this is the case for a number of [[Contributions:ADCs|source modules]].&lt;br /&gt;
For convenience, we provide an extended binary distribution that includes binary versions of BCI2000 contributions. This extended distribution is always built from the same source code version as the most recent core distribution, and is available at&lt;br /&gt;
&lt;br /&gt;
http://bci2000.org/downloads/bin/BCI2000Contrib.exe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: &#039;&#039;&#039; While we do our best to maintain contributed code, we cannot promise that it is functional, nor provide extensive support. This is especially true in case of contributed source modules which we cannot test for functionality in the absence of the respective hardware. When you experience problems with contributed code, please contact the contributor indicated on the contribution&#039;s reference page (accessible through [[Contributions:Contents]]).&lt;br /&gt;
&lt;br /&gt;
==BCPy2000 Contribution==&lt;br /&gt;
The extended distribution does not contain the [[Contributions:BCPy2000|BCPy2000 contribution]]. Rather, all required executables may be downloaded [http://{{SERVERNAME}}/downloads/BCPy2000 here].&lt;br /&gt;
&lt;br /&gt;
==Non-Windows Operating Systems==&lt;br /&gt;
BCI2000 used to run on both Linux and OS X systems for a while. However, it became increasingly difficult to identify low-latency audiovisual APIs available across platforms. In addition, most source modules depend on vendor-supplied libraries which are only &lt;br /&gt;
available for Windows, limiting the usefulness of ports to other platforms.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
BCI2000 runs on both Linux and OS X systems. However, there is no binary distribution for those systems, so it will be necessary to compile BCI2000 before using it (instructions may be found [[Programming_Howto:Quickstart_Guide|here]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Only a minority of source modules support operating systems other than Windows. Generally, source modules that receive data through a TCP connection may work on non-Windows systems (though some tweaks might be required to properly generalize Windows-centric header files). Source modules that directly connect to an amplifier using a vendor-supplied SDK/API will only work under Windows. This includes source modules that connect to consumer headsets (EMOTIV, NeuroSky MindSet).&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Install_Prerequisites&amp;diff=9342</id>
		<title>Programming Howto:Install Prerequisites</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Howto:Install_Prerequisites&amp;diff=9342"/>
		<updated>2022-03-28T21:37:06Z</updated>

		<summary type="html">&lt;p&gt;Emilycohen: /* VisualStudio - including 2022*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Back==&lt;br /&gt;
To [[Programming Howto:Building and Customizing BCI2000|this howto&#039;s overview page]].&lt;br /&gt;
&lt;br /&gt;
==TortoiseSVN==&lt;br /&gt;
Download the TortoiseSVN installer from [https://tortoisesvn.net tortoisesvn.net].&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_2-1985.png|center]]&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to install command line client tools:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_3-1990.png|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Finish&amp;quot; to dismiss the installer dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:TortoiseSVN_4-2001.png|center]]&lt;br /&gt;
&lt;br /&gt;
==CMake==&lt;br /&gt;
Download the CMake installer from [https://cmake.org cmake.org/download]. The latest release to date is 3.20.2, but most recent versions should work.&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_2-2013.png|center]]&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;Add to path for all users&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_3-2019.png|center]]&lt;br /&gt;
&lt;br /&gt;
Follow the installation instructions. Click &amp;quot;Finish&amp;quot; to dismiss the installer dialog:&lt;br /&gt;
&lt;br /&gt;
[[File:CMake_4-2025.png|center]]&lt;br /&gt;
&lt;br /&gt;
==VisualStudio==&lt;br /&gt;
Download the VisualStudio Community installer from [https://visualstudio.com/downloads/ visualstudio.com]. BCI2000 compilation will work with VS2017, VS2019 or VS2022 but does not work with VS2015 or below. &amp;lt;br /&amp;gt;&amp;lt;i&amp;gt;*Note that BCI2000 is most frequently tested witth VS2019. &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:install_vs2017_community_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Make sure to install the C++ compiler:&lt;br /&gt;
&lt;br /&gt;
[[File:install_vs2017_community_2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Qt==&lt;br /&gt;
Download the Qt open source installer from [https://www.qt.io/download www.qt.io].&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;go open source&amp;quot; link to download a version of qt available for open source software:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt installer 1-2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Download the Qt online installer:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt installer 2-2.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Run the installer:&lt;br /&gt;
&lt;br /&gt;
[[File:Qt_installer_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
If you do not already have an account, follow the steps to create one:&lt;br /&gt;
&lt;br /&gt;
[[File:qt installer account.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Agree to the open source obligations, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt installer open source obligations.PNG|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Next&amp;quot; to start the installation:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_3.png|center]]&lt;br /&gt;
&lt;br /&gt;
Choose a directory, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_4.png|center]]&lt;br /&gt;
====Qt Versioning====&lt;br /&gt;
&lt;br /&gt;
Choose a Qt version that is consistent with the version of VisualStudio you downloaded earlier. Another consideration is the framework you wish to build BCI2000 with. For example, in this tutorial, we are compiling for the 2019 Visual Studio on a 64 bit system, make sure you select MSVC 2019 64-bit, which is demonstrated in the photo below. If you&#039;re using Visual Studio 2017 find the latest version of Qt that supports Visual Studio 2017 for whatever architecture you want to build BCI2000 on and install that version of Qt. Note that VisualStudio 2017 is binary compatible with VisualStudio 2015, so you may use the MSVC2015 32-bit package for a 32bit build using VisualStudio 2017.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_5.png|center]]&lt;br /&gt;
&lt;br /&gt;
Agree to the License Agreement, and click &amp;quot;Next&amp;quot; to continue:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_6.png|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Next&amp;quot; when prompted for Start Menu shortcuts:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_7.png|center]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Install&amp;quot; to download and install Qt files:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_8.png|center]]&lt;br /&gt;
&lt;br /&gt;
Progress will be indicated during installation.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_9.png|center]]&lt;br /&gt;
&lt;br /&gt;
Installation may take a long time.&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_10.png|center]]&lt;br /&gt;
&lt;br /&gt;
Uncheck &amp;quot;Launch Qt Creator&amp;quot; before clicking &amp;quot;Finish&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:qt_installer_11.png|center]]&lt;br /&gt;
&lt;br /&gt;
==Next step==&lt;br /&gt;
As a next step, learn how to [[Programming Howto:Register with BCI2000 Project|register with the BCI2000 Project]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Howto:Building and Customizing BCI2000]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;/div&gt;</summary>
		<author><name>Emilycohen</name></author>
	</entry>
</feed>