SharpBCI
A multi-threaded brain control interface (BCI) library in C#
|
DSPLib | |
DFT | Performs a complex DFT w/Optimizations for .NET >= 4 |
FFT | Performs an in-place complex FFT |
DSP | |
SharpBCI | |
IPredictor< T > | Interface for all predictors |
IPredictorPipeable | Extends the typical pipeable to include training controls SharpBCI uses these functions to interface with the prediction mechanisms |
AggregatePredictionPipeable | A 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 |
Predictor | An 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 |
AggregateKNNCorrelationPredictor | |
AggregateKNNDTWPredictor | |
TournamentArtifactPipeable | An artifact detector which uses a TournamentArtifactDectector on a per-channel basis to detect artifacts Input types: EEG, Output types: EEG |
IArtifactDetector | An interface which defines an abstract artifact detector You can implement this to utilize classes which find the best detector implementation |
ARArtifactDetector | A detector which uses an underlying AR model to detect artifacts |
TournamentArtifactDetector | The 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 |
AsyncStreamReader | |
AsyncStreamWriter | Used internally to asynchronously write a string to a file stream |
EEGDeviceAdapter | An abstract base class from which all device adapters should inherit |
RemoteOSCAdapter | An 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) |
DummyAdapterSignal | A simple struct which defines a signal of given frequencies and amplitudes (per-channel) |
InstrumentedDummyAdapter | An EEGDeviceAdapter which is used to emit a certain set of signals via StartSignal |
CSVReadAdapter | A device adapter that can be used to replay or reemit the data logged during a previous session |
DummyAdapter | A version of InstrumentedDummyAdapter which constantly emits a given DummyAdapterSignal Generally used for smoke-testing / debugging your SharpBCI pipeline |
DynamicTimeWarping | |
SeriesVariable | |
IPreprocessor | |
Preprocessors | |
NonePreprocessor | |
NormalizationPreprocessor | |
StandardizationPreprocessor | |
CentralizationPreprocessor | |
EEGEvent | A class which represent various types of events relating to EEG data |
IVectorizedSmoother< T > | A common interface for a generic smoother which operates on arrays of type T Currently, only used by FFTPipeable for smoothing |
ExponentialVectorizedSmoother | Implements 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 |
XCorrVectorizedSmoother | |
FFTPipeable | A Pipeable which performs an FFT on each channel It outputs an FFTEvent every windowSize samples |
BandpassPipeable | A pipeable which implements a band-pass filter on all incoming data Input types: EEGEvent Output types: EEGEvent |
SimpleFilterPipeable | This pipeable is deprecated and may be removed at any point without warning |
IFilter< T > | |
MultiFilter< T > | |
MovingAverageFilter | |
ExponentialFilter | |
RecursiveFilter | |
NarrowPassFilter | |
NotchFilter | |
ConvolvingFilter | |
ConvolvingSingleEndedFilter | |
ConvolvingDoubleEndedFilter | |
IndexableQueue< T > | Weiss implementation of Circular Buffer with addition of indexability |
ILogOutput | |
ConsoleLogger | |
FileLogger | |
IPipeable | All components of the SharpBCI pipeline are expected to implement this interface |
Pipeable | |
SerializedPipeline | A class which represents the entire pipeline |
SerializedStage | A class which represents a single stage in the pipeline Can be serialized into a JSON file |
SerializedConnectionInfo | A class which represents a connection graph for the pipeline |
SharpBCIConfig | An object which configures a SharpBCI object |
SharpBCIBuilder | A builder class for SharpBCIConfig |
TrainedEvent | A generic event which indicates previously trained event occured |
SharpBCI | This is the "main" class which you should create |
TrainedEventEmitter | An end-point consumer which emits TrainedEvents it received Must only be connected to Pipeables which output TrainedEvents |
RawEventEmitter | An end-point consumer which emits TrainedEvents it received Must only be connected to Pipeables which output EEGEvents |
EEGDeviceProducer | Wraps an EEGDeviceAdapter with a Pipeable and emits EEGDataType.EEG events Should only be used as a producer not consumer |
OnlineVariance | Simultaneously calculates sample mean and variance in O(1) using Welford-Knuth online algorithm |
ARModel | A 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 |
System | |
Numerics | |
Complex | Patch for lack of System.Numerics |