SharpBCI
A multi-threaded brain control interface (BCI) library in C#
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Pages
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
oCSharpBCI.ARModelA simple AR model class which can predict the next value of X given AR parameters (phi), a constant factor (i.e., E[noise(X)]), and previous values of X O(p) performance
oCSharpBCI.AsyncStreamReader
oCSharpBCI.AsyncStreamWriterUsed internally to asynchronously write a string to a file stream
oCSystem.Numerics.ComplexPatch for lack of System.Numerics
oCDSPLib.DFTPerforms a complex DFT w/Optimizations for .NET >= 4
oCDSPLib.DSP
oCSharpBCI.DummyAdapterSignalA simple struct which defines a signal of given frequencies and amplitudes (per-channel)
oCSharpBCI.DynamicTimeWarping
oCSharpBCI.EEGDeviceAdapterAn abstract base class from which all device adapters should inherit
|oCSharpBCI.CSVReadAdapterA device adapter that can be used to replay or reemit the data logged during a previous session
|oCSharpBCI.InstrumentedDummyAdapterAn EEGDeviceAdapter which is used to emit a certain set of signals via StartSignal
||\CSharpBCI.DummyAdapterA version of InstrumentedDummyAdapter which constantly emits a given DummyAdapterSignal Generally used for smoke-testing / debugging your SharpBCI pipeline
|\CSharpBCI.RemoteOSCAdapterAn EEGDeviceAdapter which connects to an EEGDevice via OSC It then asynchronously listens for messages on a given OSC socket and emits the appropriate EEGEvents for the received OSC message Target Hardware: Muse 2014 and Muse 2016 (via android-bridge.apk)
oCSharpBCI.EEGEventA class which represent various types of events relating to EEG data
oCDSPLib.FFTPerforms an in-place complex FFT
oCSharpBCI.IArtifactDetectorAn interface which defines an abstract artifact detector You can implement this to utilize classes which find the best detector implementation
|oCSharpBCI.ARArtifactDetectorA detector which uses an underlying AR model to detect artifacts
|\CSharpBCI.TournamentArtifactDetectorThe TournamentArtifactDetector holds a "tournament" of some number ARArtifactDetectors (termed competitors) The majority consensus of the most well-fit models is the final determination of whether or not the data is an artifact
oCIDisposable
|\CSharpBCI.ILogOutput
| oCSharpBCI.ConsoleLogger
| \CSharpBCI.FileLogger
oCSharpBCI.IFilter< T >
|oCSharpBCI.ConvolvingFilter
||oCSharpBCI.ConvolvingDoubleEndedFilter
||\CSharpBCI.ConvolvingSingleEndedFilter
|oCSharpBCI.ExponentialFilter
|oCSharpBCI.MovingAverageFilter
|oCSharpBCI.MultiFilter< T >
|\CSharpBCI.RecursiveFilter
| oCSharpBCI.NarrowPassFilter
| \CSharpBCI.NotchFilter
oCSharpBCI.IndexableQueue< T >Weiss implementation of Circular Buffer with addition of indexability
oCSharpBCI.IPipeableAll components of the SharpBCI pipeline are expected to implement this interface
|oCSharpBCI.IPredictorPipeableExtends the typical pipeable to include training controls SharpBCI uses these functions to interface with the prediction mechanisms
||\CSharpBCI.AggregatePredictionPipeableA pipeable which aggregates received EEGEvents into an array based on the reported EEGEvent timestamp and then uses an IPredictor<EEGEvent[]> to train/classify on them
|\CSharpBCI.Pipeable
| oCSharpBCI.AggregatePredictionPipeableA pipeable which aggregates received EEGEvents into an array based on the reported EEGEvent timestamp and then uses an IPredictor<EEGEvent[]> to train/classify on them
| oCSharpBCI.BandpassPipeableA pipeable which implements a band-pass filter on all incoming data Input types: EEGEvent Output types: EEGEvent
| oCSharpBCI.EEGDeviceProducerWraps an EEGDeviceAdapter with a Pipeable and emits EEGDataType.EEG events Should only be used as a producer not consumer
| oCSharpBCI.FFTPipeableA Pipeable which performs an FFT on each channel It outputs an FFTEvent every windowSize samples
| oCSharpBCI.RawEventEmitterAn end-point consumer which emits TrainedEvents it received Must only be connected to Pipeables which output EEGEvents
| oCSharpBCI.SimpleFilterPipeableThis pipeable is deprecated and may be removed at any point without warning
| oCSharpBCI.TournamentArtifactPipeableAn artifact detector which uses a TournamentArtifactDectector on a per-channel basis to detect artifacts Input types: EEG, Output types: EEG
| \CSharpBCI.TrainedEventEmitterAn end-point consumer which emits TrainedEvents it received Must only be connected to Pipeables which output TrainedEvents
oCSharpBCI.IPredictor< T >Interface for all predictors
|\CSharpBCI.PredictorAn IPredictor which uses a 3-dimensional loci of points in the form of an array of EEGEvent's to classify EEG data Uses nearest neighbor predictions with distance computed by the abstract Compute(double[] x, double[] y) function Predictions occur by computing the distance between the incoming sample and all training samples, pulls the k nearest neighbors, and determines the final prediction
| oCSharpBCI.AggregateKNNCorrelationPredictor
| \CSharpBCI.AggregateKNNDTWPredictor
oCSharpBCI.IPreprocessor
|oCSharpBCI.CentralizationPreprocessor
|oCSharpBCI.Preprocessors.NonePreprocessor
|oCSharpBCI.Preprocessors.NormalizationPreprocessor
|\CSharpBCI.StandardizationPreprocessor
oCSharpBCI.IVectorizedSmoother< T >A common interface for a generic smoother which operates on arrays of type T Currently, only used by FFTPipeable for smoothing
|oCSharpBCI.ExponentialVectorizedSmootherImplements a vectorized version of exponential smoothing Each value in the input array is assumed to belong to the same time series as the previous value at the same index in the last input array
|\CSharpBCI.XCorrVectorizedSmoother
oCSharpBCI.OnlineVarianceSimultaneously calculates sample mean and variance in O(1) using Welford-Knuth online algorithm
oCSharpBCI.Preprocessors
oCSharpBCI.SerializedConnectionInfoA class which represents a connection graph for the pipeline
oCSharpBCI.SerializedPipelineA class which represents the entire pipeline
oCSharpBCI.SerializedStageA class which represents a single stage in the pipeline Can be serialized into a JSON file
oCSharpBCI.SeriesVariable
oCSharpBCI.SharpBCIThis is the "main" class which you should create
oCSharpBCI.SharpBCIBuilderA builder class for SharpBCIConfig
oCSharpBCI.SharpBCIConfigAn object which configures a SharpBCI object
\CSharpBCI.TrainedEventA generic event which indicates previously trained event occured