This commit is contained in:
2021-10-14 13:47:35 +02:00
commit 6625a8dfaa
4026 changed files with 844291 additions and 0 deletions
@@ -0,0 +1,56 @@
/**
* \page BoxAlgorithm_BCI2000FileReader BCI2000 File Reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Description|
* Loads signals from BCI2000 .dat files.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Output1|
* The signals for the different channels. If the file header contains channel names, they are used in the stream, otherwise "channel #" is used.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Output2|
* The different state variables.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Output2|
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Setting1|
* The file name should be a BCI2000 .dat file.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Setting2|
* The number of sample per block sent by the box.
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Setting2|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCI2000FileReader_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_BCI2000FileReader_Miscellaneous|
*/
@@ -0,0 +1,125 @@
/**
* \page BoxAlgorithm_BCICompetitionIIIbReader BCI competition IIIb reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Description|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Output1|
* This input contains the signal samples from the trials.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Output2|
* This input contains information about the stimulations that occurred during the trials.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Output2|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting1|
* Name of the signal file from the dataset ("*_s.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting2|
* Name of the trigger file from the dataset ("*_HDR_TRIG.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting3|
* Name of the label file from the dataset ("*_HDR_Classlabel.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting3|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting4|
* Name of the artifact file from the dataset ("*_HDR_ArtifactSelection.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting4|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting5|
* Name of the true labels file from the dataset ("true_labels_*.txt").
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting5|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting6|
* Number of samples to send per sample buffer.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting6|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting7|
* Whether the plugin is used in offline mode or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting7|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting8|
* Keep the training set trials or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting8|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting9|
* Keep the test set trials or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting9|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting10|
* Keep the trials containing artifacts or not.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting10|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting11|
* The length of a trial in seconds.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting11|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting12|
* The time when the CUE is displayed in a trial.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting12|
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Setting13|
* The time when the feedback starts in a trial.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Setting13|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BCICompetitionIIIbReader_Miscellaneous|
*
* The stimulations sent are the following :
* - Trial start
* - Time : 0
* - Id : 0x300
*
* - Display cross
* - Time : 0
* - Id : 0x312
*
* - CUE
* - Time : parameter(CUE display start)
* - Id : 0x300 + class index (0x301 for first class, 0x302 for the second class, ...)
*
* - Feedback start
* - Time : parameter(Feedback start)
* - Id : 0x30D
*
* - Trial end
* - Time : parameter(Trial length)
* - Id : 0x320
*
* - End of session
* - Time : when the end of the input file has been reached
* - Id : 0x3FF
*
* See the \ref Doc_Stimulations page for more details about §OpenViBE§ stimulations.
* |OVP_DocEnd_BoxAlgorithm_BCICompetitionIIIbReader_Miscellaneous|
*/
@@ -0,0 +1,72 @@
/**
* \page BoxAlgorithm_BrainVisionFormatFileWriter BrainVision format file writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Description|
* This box writes signal and stimulation data under BrainVision format files.
* The files generated by this box are readable with BrainVision Analyzer
* software suite.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Input1|
* Input EEG signal to be written.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Input1|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Input2|
* Input Stimulations to be written.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Input2|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting1|
* Path of the header file to write, the header is a .vhdr file, if the extension is missing,
* it will be automatically added.
* Header will be written to this file. A .eeg file with signal
* will be created in the same folder. A .vmrk file will be also written and it will contain
* the markers.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting2|
* Path to the dictionary containing Marker to Stimulation correspondences. Its format is described in the BrainVision Format File Reader \ref Doc_BoxAlgorithm_BrainVisionFormatFileReader_Miscellaneous section.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting3|
* Whether to write unknown stimulations into the marker stream as well. If set to false,
* stimulations that do not appear in the dictionary will be ignored.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting3|
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Setting4|
* Whether to use $b as placeholder for EEG and Marker files inside the header. If this is set
* to true, the resulting file will be compatible with more software, however renaming the files
* will be more complex.
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Setting4|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Examples|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainVisionFormatFileWriter_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_BrainVisionFormatFileWriter_Miscellaneous|
*/
@@ -0,0 +1,76 @@
/**
* \page BoxAlgorithm_BrainampFileReader Brainamp file reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Description|
* Loads experiment information, signal and stimulations data from Brainamp files.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output1|
* This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output2|
* Contains the signal information for the different channels (read from the GDF file).
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output2|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Output3|
* Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting1|
* This setting contains the name of the brainamp header file. The other files are deduced
* from the header content (signal content and markers).
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting2|
* This setting sets the size of epochs to be generated by this box, in seconds.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Setting3|
* Should stimuli in the file to be converted to OpenViBE stimuli? For
* legacy reasons, the default is true. With false, the stimuli will
* be delivered without any conversion.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_BrainampFileReader_Miscellaneous|
* Experiment information is stored in a header file which the user needs to specify
* when setting up the box. When started, the box then works up the names of two additional
* files : a data file and a marker file. Signal data is retrieved from the data file,
* stimulations from the marker file.
*
* The stimulation makers are transformed in §OpenViBE§ format with the
* \c OVTK_StimulationId_Label base. See the \ref Doc_Stimulations page
* for more details about §OpenViBE§ stimulations.
* |OVP_DocEnd_BoxAlgorithm_BrainampFileReader_Miscellaneous|
*/
@@ -0,0 +1,131 @@
/**
* \page BoxAlgorithm_CSVFileReader CSV File Reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Description|
This box allows to read some of the OpenViBE streams from a text file that is
easy to read both by machines and humans. CSV files are text files
with different values separated by a special character such as a colon, a semicolon
or a tabulation. This basic syntax makes them very easy to parse. The purpose of this
box is to quickly import some data from other softwares.
@b NOTE For files carrying signal, the file format the box accepts is NOT the usual
N times M matrix. There must be a few extra items: the first column must be the time
of each sample, and the first line of data must have one more column than the other lines.
This last column should be the sampling rate. See below for details.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Output1|
This output is used to import data from a CSV File to an OpenViBE stream. The type of
this output can be modified by the user and the format of the file will be adapted
depending on this type. Supported outputs are : Signal, Spectrum, Stimulations,
Feature Vector and Streamed Matrix.
Format specific to some of these stream types is detailed in section
\ref Doc_BoxAlgorithm_CSVFileReader_Miscellaneous.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Output1|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting1|
This setting contains the file where to load the data.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting2|
This setting contains the special character to use as a separation for the different
fields. Typical examples are colon, semi colon and tabulations.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting2|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting3|
This option mainly makes sense for an output signal type, but can also be used
for matrices. Sometimes, the time of the first sample in the data isn't equal
0 or the file appears to contain such timing that it is difficult to parse a
continuous chunk sequence from it. Many OpenViBE boxes expect continuous
chunking, starting at time 0, with no time between the signal chunks. This
setting interpretes the file as essentially being dense, with consecutive
chunks, the first chunk (sample) at time 0. The samples are sent according
to the timing dictated by the sampling rate specified at the end of the
second line of the csv file, with the first column ignored.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting3|
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Setting4|
Number of samples per channel in a streamed matrix.
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Setting4|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Examples|
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileReader_Miscellaneous|
If the boxes obtaining signal from the CSV File Reader behave curiously,
you may want to try enabling the "don't use the file time" setting. Also,
if the time is not monotonically increasing from sample to another
in the file (this can result from e.g. epoching), the result may not
be read back as expected. For such signals, it is best to use the
.ov file format and not CSV.
Here are some typical inputs that you will find in the input
file depending on the type of the input connector.
For the Signal stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Sampling Rate
Time of measure 1, Measure 1 of channel 1, Measure 1 of channel 2, ..., Measure 1 of channel n, Value of the sampling rate
Time of measure 2, Measure 2 of channel 1, Measure 2 of channel 2, ..., Measure 2 of channel n
...
Time of measure t, Measure t of channel 1, Measure t of channel 2, ..., Measure t of channel n
\endverbatim
For the Spectrum stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Min frequency band, Max frequency band
Time of measure 1, Freq band 1 of m. 1 of chan 1, Freq band 1 of m. 1 of chan 2, ..., Freq band 1 of m. 1 of chan n, Value Min Frequency Band of band 1, Value Max Frequency Band of band 1
Time of measure 1, Freq band 2 of m. 1 of chan 1, Freq band 2 of m. 1 of chan 2, ..., Freq band 2 of m. 1 of chan n, Value Min Frequency Band of band 2, Value Max Frequency Band of band 2
...
Time of measure 1, Freq band f of m. 1 of chan 1, Freq band f of m. 1 of chan 2, ..., Freq band f of m. 1 of chan n, Value Min Frequency Band of band f, Value Max Frequency Band of band f
Time of measure 2, Freq band 1 of m. 2 of chan 1, Freq band 1 of m. 2 of chan 2, ..., Freq band 1 of m. 2 of chan n
Time of measure 2, Freq band 2 of m. 2 of chan 1, Freq band 2 of m. 2 of chan 2, ..., Freq band 2 of m. 2 of chan n
...
Time of measure 2, Freq band f of m. 2 of chan 1, Freq band f of m. 2 of chan 2, ..., Freq band f of m. 2 of chan n
...
...
...
Time of measure t, Freq band 1 of m. t of chan 1, Freq band 1 of m. t of chan 2, ..., Freq band 1 of m. t of chan n
Time of measure t, Freq band 2 of m. t of chan 1, Freq band 2 of m. t of chan 2, ..., Freq band 2 of m. t of chan n
...
Time of measure t, Freq band f of m. t of chan 1, Freq band f of m. t of chan 2, ..., Freq band f of m. t of chan n
\endverbatim
For the Stimulation stream, you will have something like this :
\verbatim
Time (s), Identifier, Duration
Time of stim 1, Identifier of stim 1, Duration of stim 1
Time of stim 2, Identifier of stim 2, Duration of stim 2
...
Time of stim n, Identifier of stim n, Duration of stim n
\endverbatim
* |OVP_DocEnd_BoxAlgorithm_CSVFileReader_Miscellaneous|
*/
@@ -0,0 +1,126 @@
/**
* \page BoxAlgorithm_CSVFileWriter CSV File Writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Description|
This box allows to output some of the OpenViBE streams in a text file that is
easy to read by the machine and easy to read by the human. CSV files are text files
with different values separated by a special character such as a colon, a semicolon
or a tabulation. This basic syntax makes them very easy to read for both machine and
human. The purpose of this box is to quicly export some data to other softwares.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Input1|
This is input is used to know what data to dump in the considered file. The type of
this input can be modified by the user and the format of the output will be adapted
depending on this type. Supported inputs are : Signal, Spectrum, Streamed Matrix,
Feature Vector, and Stimulations.
Format specific to each of these stream types is detailed in section
\ref Doc_BoxAlgorithm_CSVFileWriter_Miscellaneous.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Input1|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting1|
This setting contains the file where to store the data.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting1|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting2|
This setting contains the special character to use as a separation for the different
fields. Typical examples are colon, semi colon and tabulations.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting2|
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Setting3|
This allows you to set std::precision, i.e. how many digits are used to represent each input value in the output.
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Examples|
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_CSVFileWriter_Miscellaneous|
In this section, we detail the typical outputs that you will find in the output
file depending on the type of the input connector.
For the Signal stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Sampling Rate
Time of measure 1, Measure 1 of channel 1, Measure 1 of channel 2, ..., Measure 1 of channel n, Value of the sampling rate
Time of measure 2, Measure 2 of channel 1, Measure 2 of channel 2, ..., Measure 2 of channel n,
...
Time of measure t, Measure t of channel 1, Measure t of channel 2, ..., Measure t of channel n,
\endverbatim
For the Streamed Matrix stream, you will have something like this :
\verbatim
Time (s), Column 1, Column 2, ..., Column n
Time of matrix 1, slot [1,1] of 1, slot[1,2] of 1, ..., slot[1,n] of 1
Time of matrix 1, slot [2,1] of 1, slot[2,2] of 1, ..., slot[2,n] of 1
...
Time of matrix 1, slot [m,1] of 1, slot[m,2] of 1, ..., slot[m,n] of 1
...
Time of matrix 2, slot [1,1] of 2, slot[1,2] of 2, ..., slot[1,n] of 2
...
\endverbatim
For the Feature Vector stream, you will have something like this :
\verbatim
Time (s), Feature 1, Feature 2, ..., Feature n
Time of vector 1, feature 1, feature 2, ..., feature n
Time of vector 2, feature 1, feature 2, ..., feature n
...
Time of vector k, feature 1, feature 2, ..., feature n
\endverbatim
For the Spectrum stream, you will have something like this :
\verbatim
Time (s), Channel 1, Channel 2, ..., Channel n, Min frequency band, Max frequency band
Time of measure 1, Freq band 1 of m. 1 of chan 1, Freq band 1 of m. 1 of chan 2, ..., Freq band 1 of m. 1 of chan n, Value Min Frequency Band of band 1, Value Max Frequency Band of band 1
Time of measure 1, Freq band 2 of m. 1 of chan 1, Freq band 2 of m. 1 of chan 2, ..., Freq band 2 of m. 1 of chan n, Value Min Frequency Band of band 2, Value Max Frequency Band of band 2
...
Time of measure 1, Freq band f of m. 1 of chan 1, Freq band f of m. 1 of chan 2, ..., Freq band f of m. 1 of chan n, Value Min Frequency Band of band f, Value Max Frequency Band of band f
Time of measure 2, Freq band 1 of m. 2 of chan 1, Freq band 1 of m. 2 of chan 2, ..., Freq band 1 of m. 2 of chan n
Time of measure 2, Freq band 2 of m. 2 of chan 1, Freq band 2 of m. 2 of chan 2, ..., Freq band 2 of m. 2 of chan n
...
Time of measure 2, Freq band f of m. 2 of chan 1, Freq band f of m. 2 of chan 2, ..., Freq band f of m. 2 of chan n
...
...
...
Time of measure t, Freq band 1 of m. t of chan 1, Freq band 1 of m. t of chan 2, ..., Freq band 1 of m. t of chan n
Time of measure t, Freq band 2 of m. t of chan 1, Freq band 2 of m. t of chan 2, ..., Freq band 2 of m. t of chan n
...
Time of measure t, Freq band f of m. t of chan 1, Freq band f of m. t of chan 2, ..., Freq band f of m. t of chan n
\endverbatim
For the Stimulation stream, you will have something like this :
\verbatim
Time (s), Identifier, Duration
Time of stim 1, Identifier of stim 1, Duration of stim 1
Time of stim 2, Identifier of stim 2, Duration of stim 2
...
Time of stim n, Identifier of stim n, Duration of stim n
\endverbatim
* |OVP_DocEnd_BoxAlgorithm_CSVFileWriter_Miscellaneous|
*/
@@ -0,0 +1,86 @@
/**
* \page BoxAlgorithm_GDFFileReader GDF file reader
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Description|
The box attempts to be compliant with the version 2.51 of the GDF file specification (doc v10) by Alois Schlögl,
as available at the <a href="http://arxiv.org/abs/cs/0608052">arxiv</a>.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Description|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Outputs|
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Outputs|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output1|
* This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output2|
* Contains the signal information for the different channels (read from the GDF file).
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output2|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Output3|
* Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Settings|
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Settings|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Setting1|
* Name of the GDF file to read.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Setting1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Setting2|
* Number of samples per channel in a streamed matrix.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Setting2|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Examples|
* If your GDF file is located in your /tmp directory, you can configure the plugin as follows :
*
* Filename :
*
\code
/tmp/myGDFFile.gdf
\endcode
*
* Samples per buffer :
*
\code
32
\endcode
*
* Several example GDF files can be found in the share/openvibe/scenarios/signals/ folder.
*
* Practical example :
*
* Let's add a GDF file reader box to an empty scenario. One should also locate a GDF file and enter its path in the 'Filename' setting of the box. A second setting
* allows to specify the number of samples to be sent per data block.
*
* This box has 3 output connectors, corresponding to experiment information, stimulations
* and signals. One can connect the last two to the two input connectors of a Signal Display box to visualize the signals and/or stimulations stored in the GDF file.
*
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileReader_Miscellaneous|
* The experiment information output isn't operational yet.
* |OVP_DocEnd_BoxAlgorithm_GDFFileReader_Miscellaneous|
*/
@@ -0,0 +1,66 @@
/**
* \page BoxAlgorithm_GDFFileWriter GDF file writer
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Description|
Writes incoming experiment information, signal and stimulations data to a file according to the GDF file format. One simply has to connect this box to an output to save the desired streams to a file. For now, only GDF1 files are supported.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Inputs|
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Inputs|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input1|
This stream contains information about the experiment and subject.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input1|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input2|
Contains the signal information for the different channels.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input2|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Input3|
Contains information about the stimulations that occurred during the experiment.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Input3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Settings|
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Settings|
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Setting1|
Name of the GDF file to be written.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Setting1|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Examples|
If you want to write the GDF file in your /tmp directory, you can configure the plugin like that :
Filename :
\code
/tmp/myGDFFile.gdf
\endcode
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_GDFFileWriter_Miscellaneous|
The only output format is GDF1.
The experiment information such as the subject name and sex may not be parsed correctly by other programs.
* |OVP_DocEnd_BoxAlgorithm_GDFFileWriter_Miscellaneous|
*/
@@ -0,0 +1,96 @@
/**
* \page BoxAlgorithm_SignalConcatenation Signal Stream Concatenation
__________________________________________________________________
Detailed description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Description|
The input streams must share the same characteristics : sampling frequency, number of channels, sample count per block.
User can specify a time-out value beyond which a stream is considered as finished if no samples are received.
If user wants a specific part of a given stream, he can specify a stimulation used as end-of-stream trigger.
The status stimulation output deliver the stimulation OVTK_StimulationId_EndOfFile when the concatenation is finished. You can connect this output to a \subpage BoxAlgorithm_PlayerController to script your concatenation easily.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Description|
__________________________________________________________________
Inputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Inputs|
The box has a pair of input (signal, stimulation) per source.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Inputs|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input1|
Signal stream from source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input2|
Stimulation stream from source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input3|
Signal stream from source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input3|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Input4|
Stimulation stream from source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Input4|
__________________________________________________________________
Outputs description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Outputs|
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Outputs|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output1|
Concatenated signal stream.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output2|
Concatenated stimulation stream.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Output3|
Status stimulation stream (sends OVTK_StimulationId_EndOfFile on success).
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Output3|
__________________________________________________________________
Settings description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Settings|
A stimulation setting is added for each input pair.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Settings|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting1|
If no samples are received beyond this time-out value, a stream is considered as finished.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting1|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting2|
Stimulation that triggers the end-of-stream for source #1.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting2|
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Setting3|
Stimulation that triggers the end-of-stream for source #2.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Setting3|
__________________________________________________________________
Examples description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Examples|
This box is mainly designed to concatenate multiple signal files.
For example, you have 10 sessions of training and you want to train a classifier on the whole set of data.
You can use the Signal Stream Concatenation to produce one EEG file containing the 10 sessions,
and then feed a \ref Doc_BoxAlgorithm_ClassifierTrainer box with it.
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Examples|
__________________________________________________________________
Miscellaneous description
__________________________________________________________________
* |OVP_DocBegin_BoxAlgorithm_SignalConcatenation_Miscellaneous|
* |OVP_DocEnd_BoxAlgorithm_SignalConcatenation_Miscellaneous|
*/