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,14 @@
Introduction
============
The |Brand| |AuthTool| is an authoring tool dedicated to creating and executing |Brand| scenarios. It is targeted at a broad range of users, including:
- **researchers** and students of the neuroscience and BCI community
- **neurophysiology experts** who need a tool to realize signal-processing and monitoring of EEG activity
- **clinicians** looking for a tool to conduct neurofeedback experiments
It relies on a graphical user interface to provide signal processing tools in an intuitive way, and doesn’t require any programming skills.
Each of these tools comes as a plugin, which communicates with the application via a generic interface hiding implementation details. As a result, it is easy for a programmer to extend the range of tools provided with the platform. Users may arrange any number of these boxes in a very flexible fashion, considering there is virtually no limit as to the number of boxes that may be included in a processing **scenario**.
Once a scenario is created, it may be run from Studio, which provides a toolbar for playing, pausing and stepping through a scenario. A number of box algorithms are available for direct **visualization** of results, from simple 2D displays such as Spectral Analysis and Continuous Oscilloscope to 3D paradigms such as 3D Topography. The layout of these displays may be customized as desired at scenario editing time using the **window manager** module of Studio.
@@ -0,0 +1,221 @@
Interface Overview
==================
.. figure:: images/studio-interface-annotated.png
:alt: |Brand| |AuthTool| Interface
:align: center
|Brand| |AuthTool| Interface
The following sections are an overview of the main features of |AuthTool| tool, and make for a quick and easy introduction to its usage. Here are the topics covered in this overview:
- Top Level **Menu Bar**
- **Toolbar**, which provides immediate access to the most common actions (Scenario File Edition, Window Manager, Active Logs Level, Add Comment Box, Edit Scenario Information, Scenario Control, …)
- **Available Boxes** tree view
- **Scenario Settings**
- **Scenario I/O Controls**
- **Status Bar**, which provides performance information when a scenario is being run
- **Message Console** which prints Info, Warning or Error messages
- **Scenario Authoring** window, where boxes may be arranged together in order to fulfill the task at hand.
- |BulletEngCtrlPanel|
Menu Bar
--------
Options available from the menu bar are presently restricted to actions involving handling and exiting the application. Scenarios can be saved to MXS (Mensia XML Scenario) or to XML files (as does OpenViBE). Several scenarios may be edited simultaneously, and the active scenario may be changed by clicking onto the corresponding tab at the top of the scenario editor window. Here is a list of options from the menu bar and their shortcuts if available:
The File menu handles standard scenario operations such as creation, saving and closing. Note that the application won't quit as long as at least one scenario is running.
.. figure:: images/menubar-file.png
:alt: File Menu
:align: right
- New – **Ctrl+n**: open a new scenario in a new tab:
- Open – **Ctrl+o**: open a file selection dialog to select an existing scenario file
- Recent Scenarios: access recently closed scenarios
- Save – **Ctrl+s**: save current scenario
- Save As: save the current scenario in another file
- Close - **Ctrl+w**: close current scenario tab
- Quit – **Alt+F4**: quit |AuthTool|
The Edit menu allows the user to cut/copy/paste selections (in a scenario or across scenarios). These options can also be accessed when right-clicking on a box. User actions are saved during scenario editing and can be retrieved through undo-redo.
.. figure:: images/menubar-edit.png
:alt: Edit Menu
:align: right
- Find – **Ctrl+f**: direct to filter box to make a search in the list of boxes
- Undo – **Ctrl+z**: cancel the last edition operation
- Redo – **Ctrl+y**: redo the operation you just cancelled
- Cut – **Ctrl+x**: cut current selection
- Copy – **Ctrl+c**: copy current selection
- Paste – **Ctrl+v**: paste current selection
- Delete – **Del**: delete current selection
- Preferences: this item displays the Configuration Manager dialog. It contains a list of all configuration tokens and their values. This list is read only. To know more about the Configuration Manager, refer to The Configuration Manager documentation paragraph.
The Help menu allows the user to open some various utilities applications.
.. figure:: images/menubar-help.png
:alt: Help Menu
:align: right
- About this scenario – allow to add a scenario description see: Adding metadata
- About |Brand| – display Credits for |AuthTool|
- Browse documentation – Open box documentation
- Register License – Open tool to add a license
- Report issue – Open the support website, see: Support
- What's new in version 3.0.x.x of |AuthTool|
Toolbar
-------
.. figure:: images/toolbar-annotated.png
:alt: Toolbar
:align: center
NeuorRT |AuthTool| Toolbar
The first section of the tools bar offers direct access to the scenario handling options that you can find in the menu *File*.
Next section contains the Undo and Redo buttons.
After these you have controls for various functionalities of |Brand| |AuthTool|:
- :ref:`window-manager`
- :ref:`log-levels`
- :ref:`scenario-comments`
- :ref:`scenario-information`
- :ref:`scenario-controls`
- |BulletEngCtrlPanel|
.. _window-manager:
Window Manager
--------------
.. image:: images/icon-window-manager.png
The **Window Manager** button is a toggle button, allowing for displaying and hiding the **window manager**. This tool is displayed in a popup window when the button is pressed. It takes care of arranging visualization boxes in a layout. Such boxes (if any in the current scenario) initially appear under the 'Unaffected display plugins' node of the tree view in the upper left corner. A window containing one tab is also created by default and displayed on the right, as below:
.. figure:: images/window-manager.png
:alt: Window Manager
:align: center
Window manager popup dialog for a scenario with 4 visualization boxes, by default
Users may create any number of windows containing any number of tabs, and then drag and drop visualization boxes onto such tabs in a tree-like structure. If the user chooses to not use the window manager all visualization boxes will be given their own window, displayed when the scenario is being played. For a more in-depth review of the window manager usage, see the Window Manager Tutorial.
.. figure:: images/window-manager-4-panes.png
:alt: Window Manager with 4 panes
:align: center
Window manager popup dialog for a scenario with 4 organized visualization boxes
.. _log-levels:
Log Levels
----------
.. image:: images/icon-log-levels.png
The second button displays the log levels dialog ( ). It may be used to configure which log messages should be displayed in the console. It contains 8 levels as shown in the following figure:
.. figure:: images/log-levels.png
:alt: Log Levels
:align: center
Log Levels Dialog
*Warnings* and *Errors* should always be selected. *Information* displays useful messages from signal processing boxes. *Trace* can be used to check step-by-step the processing in the boxes and the kernel. *Benchmark* and *Debug* are very verbose and should not be used with |AuthTool| console (only in log files).
.. _scenario-comments:
Scenario Comments
-----------------
.. image:: images/icon-add-comment.png
This button adds a dedicated comment box to the scenario. These boxes have of course no input and outputs. Double click on them to edit the comment they display. The syntax of the comments uses `pango style <http://www.gtk.org/api/2.6/pango/PangoMarkupFormat.html>`__, the style buttons can help you format your comment.
.. figure:: images/scenario-comment.png
:alt: Scenario Comment
:align: center
Comment, as it appears in a scenario
.. figure:: images/scenario-comment-editor.png
:alt: Scenario Comment Editor
:align: center
Comment Editor Dialog
.. _scenario-information:
Scenario Description
--------------------
.. image:: images/icon-scenario-information.png
This buttons allows editing of some information that will be saved with the scenario (name, authors, date, description, etc.).
.. figure:: images/scenario-information.png
:alt: Scenario Description Edit Dialog
:align: center
Scenario Description
.. _scenario-controls:
Scenario Controls
-----------------
.. image:: images/icon-scenario-controls.png
Scenario controls work like a media player would.
- Stop – **F5**: go back to scenario edition mode
- Step – **F6**: play scenario one step of simulation at a time
- Play/Pause – **F7**: play scenario in real time or pause it if it is already running
- Fast Forward – **F8**: play scenario as fast as possible
Once a scenario is being played, it is not possible to modify it. Press *Stop* to go back in edition mode. Shortcuts from F5 to F8 can be used only if the focus is on |AuthTool| main window (not on visualization windows for example).
Finally, the toolbar contains a time counter which displays the simulation time as a scenario is being run. It is reset to 0 as a scenario is stopped.
Box Algorithms Tree View
------------------------
The right-hand part of |AuthTool| window displays a list of existing box algorithms, which are the building blocks of |Brand| scenarios.
Under the *Box algorithms* tab lies a tree view listing available box algorithms, along with a short description of their respective roles. Box algorithms are the smallest granular elements that may be manipulated by a |AuthTool| user. They act as black boxes which can be connected together by their inputs and outputs. In order to facilitate their selection, they are grouped into categories, which make up the top level nodes of the tree view. Some categories are related to signal processing, others to scenario serialization or visualization purposes. The default tree view shows only stable and fully supported boxes.
The status of a box varies with the context, and is reflected by the color of the font used in the tree view. The box name and description will use a cyan font if the box is deprecated, and a light grey font if it is unstable. To know more about box status, see section Box status.
Status Bar
----------
The status bar that lies at the bottom of the window provides performance information. When a scenario is being run, |Brand| keeps track of the time used by each box and of the overall execution time. Overall performance is displayed in a green gauge overlaid with the same information in percent. A system load 100 percent means the system is barely able to handle the computation load induced by the scenario to run in real-time.
To identify the bottlenecks in a scenario, one can press the button to the right of the gauge as a scenario is being run. This will highlight boxes from green to red, depending on how much time is spent in each box relative to the others.
Console
-------
|AuthTool| console can be expanded/hidden by a simple click. You can choose the log levels you want to see in this particular window. |AuthTool| console has been developed in order to be sure to see any warning or error messages.
.. figure:: images/console-annotated.png
:alt: |Brand| |AuthTool| Console
:align: center
|Brand| |AuthTool| Console
@@ -0,0 +1,204 @@
.. _studio-authoring-scenarios:
Authoring Scenarios
===================
This section covers the working area of |AuthTool|, which is where |Brand| scenarios are assembled by connecting box algorithms together.
Boxes
-----
Box algorithms are added to the active scenario by drag and dropping them from the tree view to the scenario edition window. They appear as rounded rectangles with their name inside the box, inputs (if any) on top and outputs (if any) at the bottom. These connectors are displayed as color-coded triangles. Colors vary with the connector type, and help users to make sure they connect boxes properly. See *Connector Types* for an overview of the different connector types and hierarchy.
.. figure:: images/box.png
:alt: Generic Stream Reader Box
:align: center
A file reading box algorithm which has 2 outputs (signal and stimulations streams)
Additionally, if the box has **customizable settings**, they may be set by double clicking on the box (*tip*: when a box has such settings, its name is displayed in bold). The settings are listed in the popup dialog that appears, along with their default values. Settings may be overridden by directly typing in their desired values, or they may be read from a file. In the latter case, one should expand the *Override settings with configuration file* section to check the *File* button and pick a configuration file.
.. figure:: images/box-settings.png
:alt: Box Settings
:align: center
Settings of a 'Generic stream reader' box: filename text entry
Linking Boxes
~~~~~~~~~~~~~
The output of a box can be linked to the input of another box if the type of the output is the same type or is a derived type of the input's type. For example, a Signal output can be connected on a Streamed Matrix input as Signal's type derives from Streamed Matrix.
The various stream types are:
.. role:: color-stream-unidentified
.. role:: color-stream-if-else
.. role:: color-stream-ebml
.. role:: color-stream-experiment-information
.. role:: color-stream-stimulations
.. role:: color-stream-streamed-matrix
.. role:: color-stream-covariance-matrix
.. role:: color-stream-channel-localization
.. role:: color-stream-feature-vector
.. role:: color-stream-signal
.. role:: color-stream-spectrum
.. role:: color-stream-time-frequency
- :color-stream-unidentified:`▼` Unidentified Stream
- :color-stream-if-else:`▼` If/Else Condition Controller
- :color-stream-ebml:`▼` EBML Stream
- :color-stream-experiment-information:`▼` Experiment Information
- :color-stream-stimulations:`▼` Stimulations
- :color-stream-streamed-matrix:`▼` Streamed Matrix
- :color-stream-covariance-matrix:`▼` Covariance Matrix
- :color-stream-channel-localization:`▼` Channel Localization
- :color-stream-feature-vector:`▼` Feature Vector
- :color-stream-signal:`▼` Signal
- :color-stream-spectrum:`▼` Spectrum
- :color-stream-time-frequency:`▼` Time/Frequency
There are different connector types differentiated by their color, see figure above. The type "Unidentified stream" is applied on a connector type that couldn't be identified in the launched version of |AuthTool|. Some boxes that can have different connector types may also have this type of connectors by default. The type *If / Else Condition Controller* is a special type that is useful in the boxes: *If / Else Separation* and *End If / Else Concatenation*. See the documentation of these boxes for more details.
Box Status
~~~~~~~~~~
By default, the status of a box is 'normal', and the box is drawn with a white background. However, some boxes may have a different status depending on the situation. Here are the other possible status of a box:
**Update**
.. figure:: images/box-status-update.png
:align: right
When a box is not up to date with the latest version used in a given distribution of |Brand|, it is drawn as this "Matrix to Signal" box. This situation arises when the prototype of a box has changed between the time the scenario it is stored in is saved and the time it is loaded again. Since scenario files contain information about box prototypes, such as the number of connectors, they may need to be updated when the |Brand| distribution used to manipulate scenarios changes. To update such a box, simply delete the box from the scenario then add it again. The new box will use the latest version.
Tip: after such an update, one should make sure to reconfigure the box settings if needed!
**Deprecated**
.. figure:: images/box-status-deprecated.png
:align: right
As |Brand| evolves with time, some boxes are added to the platform and others are deleted. It can also happen that a box is replaced with another one (maybe for performance reasons). However, the 'old' box is not necessarily deleted from the platform, but may be kept for backward compatibility with older versions (ensuring older scenarios may still be run, for example). In that case, the documentation should mention that from that time on, the new box should be preferred over the deprecated one (which may be removed from the platform at any time, and in any case which probably won't be maintained anymore). Such boxes are displayed with an orange background and the 'deprecated' label below the box name.
**Unstable**
.. figure:: images/box-status-unstable.png
:align: right
A box which is under development should be flagged as 'unstable', meaning it may have only been partially implemented or tested. Consequently, it may not behave properly in all conditions, or may be updated in a future release. Such a box is drawn with a dark grey background in |AuthTool|, and the 'unstable' label appears below the box name.
**Missing**
.. figure:: images/box-status-missing.png
:align: right
A box that was described in a scenario but is not present in the opened version of |AuthTool| is considered as missing and its background is drawn in red color. This means that the launched version of |AuthTool| cannot find the information regarding this box and thus cannot play it.
Note that the default tree view shows only stable and fully supported boxes. To use "unstable" boxes set Designer_ShowUnstable to TRUE or tick the corresponding box on top of the tree view. As stated in their documentation pages, unstable boxes can have unexpected behaviors.
Box Manipulation
~~~~~~~~~~~~~~~~
All box algorithms may be configured in |AuthTool|. However, not all boxes offer the same configuration options. In this overview, we'll focus on functionalities that are common to all boxes. More advanced possibilities are detailed in another tutorial (Tutorial 3: Advanced box configuration).
To illustrate box editing functionalities, let's start by creating a new scenario, and drop a couple of boxes from the box algorithms tab. Simple boxes such as *Time Signal* and (found under the 'Data Generation' category) will do for this tutorial. Drag and drop these boxes in the scenario working area, then right-click on the *Time Signal* box. A context menu should appear, listing different editing functionalities.
Box editing functionalities appear in the lower part of the menu:
- **Rename box (F2)** allows to rename the box. Click this option and enter a new name such as 'Dummy Box' to test this functionality.
- **Delete box (Del)** removes this box from the scenario. Note that a box may also be deleted by selecting it, then pressing the 'Delete' key.
- **About box** displays a dialog containing a summary of the box details, such as its author, version, the version of |AuthTool| in which the box was added and last updated, the class name, as well as a short and long description of its purpose. Note that the 'short description' field also appears in the second column of the box algorithms tab.
Another option only gets listed for those boxes that offer configurable settings, such as the *Time Signal* box (this is indicated from its name displayed in bold case). Right click on this box and select:
- **Configure box**, which displays the Box Settings dialog. Note that this dialog may also be displayed by double clicking on the box itself.
Scenario Manipulation
---------------------
Standard cut/copy/paste functionalities are supported in |AuthTool|. Select a box and right click on it to display a menu from which to select these options.
Groups of boxes may be edited in the same way. Select several boxes at once by maintaining the **Ctrl** key pressed then clicking on the boxes you want to cut or copy. You may also draw a selection area by left clicking in the scenario editing area then drawing a selection rectangle while keeping the button pressed. **Ctrl+A** selects everything in the scenario.
Cut/copy your selection by right clicking on it then selecting the corresponding entry, or by pressing **Ctrl+X/Ctrl+C**.
Paste your selection by right clicking anywhere in the edition area, or pressing **Ctrl+V**. Note that you may also paste selections from one scenario to another.
Delete your selection by selecting 'Delete boxes' in the contextual menu, or pressing the **Delete** key.
Finally, the origin of the scenario editing area may be changed by pressing and holding the Shift key and left click then moving the mouse as desired. This allows you to explore your scenario window without using the scrolling bars.
Scenario Settings
-----------------
Scenarios, much like boxes, can have their own settings. To access the settings of a scenario click on the **Scenario Configuration** tab in the right pane.
.. figure:: images/scenario-settings.png
:alt: Scenario Settings
:align: center
Scenario Configuration Pane
Adding Settings
~~~~~~~~~~~~~~~
To add a setting to the current scenario, press the **Configure Settings** button. A new window will appear. In it you are able to modify all settings the currently open scenario has.
Adding a setting is similar to adding a setting to a box. You can use all available types as well.
Once you add a setting it will appear in the list. There are several actions you can do on a setting.
.. figure:: images/scenario-settings-annotated.png
:alt: Scenario Settings Configuration Dialog
:align: center
Scenario Settings Configuration Dialog
1. Rename setting
2. Delete setting
3. Move setting up
4. Move setting down
5. Change default setting's value
6. Change setting's type
When you close the setting configuration dialog box, your new settings will appear in the Scenario Configuration pane.
Modifying Settings
~~~~~~~~~~~~~~~~~~
You can change the setting’s value inside the tab **Scenario Configuration**.
.. figure:: images/scenario-configuration-annotated.png
:alt: Scenario Configuration with Settings
:align: center
Scenario Configuration with Settings
1. Modify the settings value
2. Reset setting to its default value
3. Copy the current setting identifier wrapped in ``$var{}`` (explained in next step)
Using Settings
~~~~~~~~~~~~~~
Scenario Settings can be used in place of any setting of a box. In order to do so, right-click on the box, then click on configure box option and simply change the setting inside that box to a token named after the Scenario Setting wrapped inside a ``$var{}`` token.
In our example for DSP:
.. figure:: images/box-settings-variables.png
:alt: Box Settings with Variables
:align: center
Using scenario settings
In order to simplify the process there is a convenience button that copies the whole string for a particular setting (Button labelled 3 in previous paragraph).
@@ -0,0 +1,117 @@
Metaboxes
=========
In |Brand| |AuthTool| you can create new boxes by assembling them from parts of other boxes, they are called metaboxes. This section describes their usage. Metaboxes are loaded on start-up of the |Brand| |AuthTool|. They are loaded from the directories ``$InstallDir/share/openvibe/metaboxes`` and ``%APPDATA%/mensia/metaboxes``. These metaboxes are written under the formats ``.mxb`` or ``.mbb``.
A Metabox behaves just like a normal box, that is:
- It has an arbitrary number of inputs and outputs using the same types as other boxes.
- It can have an arbitrary number of settings.
- It can be inserted into a scenario.
- It can have visualizations.
Creating Metaboxes
------------------
In order to create a Metabox you first have to create a scenario.
Example: we want to make a Metabox that will apply a notch filter for 48-52Hz and then apply an arbitrary band-pass filter on the signal.
Thus, our Metabox consists of:
- One Signal input
- One Signal output
- Two temporal filter boxes
- Two settings
- Lower frequency bound
- Upper frequency bound
Step 1: Adding boxes and settings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We create a new empty scenario and add two settings to it, we also drag two temporal filter boxes inside and set them up like so:
.. figure:: images/metaboxes/creating-01.png
:alt: Creating a metabox - step 1
:align: center
Creating a metabox - step 1
First Temporal filter box is renamed Band Pass, the second one is renamed Notch filter (right-click + rename box: Notch Filter).
We set the notch filter to a band stop filter with cut off frequencies at 48 and 52Hz.
Step 2: Adding inputs and outputs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In order to "expose" inputs and outputs of our metabox we need to add some inputs and outputs to a scenario.
To do so we use the Scenario I/O tab. To add an input or output simply click the appropriate add button. A setting has only a name and a type. By default, the created type is Streamed Matrix.
- Add one **input** to the scenario, change its type to **Signal** and rename it to **Input Signal**
- Add one **output** to the scenario, change its type to **Signal** and rename it to **Filtered Signal**
.. figure:: images/metaboxes/creating-02.png
:alt: Adding inputs and outputs
:align: center
Adding inputs and outputs
In order to associate a scenario input with a box input, right click on the box you wish to send the input to. A new context menu item will be available: **Connect scenario inputs**. In this context menu item will be a list of all box inputs which will again open a list of all scenario inputs. Clicking on the scenario input will link the box input to the scenario input.
Right click on the **Notch filter** box. In the **connect scenario inputs** submenu you will see the single input of the box. Incidentally it is also called *Input Signal*, under this item there will be another item called *Input Signal* – this is our scenario’s input.
.. figure:: images/metaboxes/creating-03.png
:alt: Linking a scenario input
:align: center
Linking a scenario input
Now do the same for the output. A circular indicator will be displayed to represent the link between the scenario input and the box input.
.. figure:: images/metaboxes/creating-04.png
:alt: Linked inputs and outputs
:align: center
Linked inputs and outputs
Each scenario input can be linked to exactly one box input. If you wish to use the same input in several boxes, use an identity box.
Step 3: Adding Metadata
~~~~~~~~~~~~~~~~~~~~~~~
The metabox reads its metadata from the scenario information. You can edit it by clicking on the star button in the toolbar.
The most important attributes are **Name**, **Category** and **Metabox Id**. This is how your box will be identified inside the box-algorithm list.
The **Metabox Id** serves as a unique identifier for this box. You can either specify it yourself (as a group of two 32bit hex integers) or use the refresh button to generate one.
Save your box inside the ``%APPDATA%/mensia/metaboxes`` folder.
.. figure:: images/metaboxes/creating-05.png
:alt: Change about scenario
:align: center
Change about scenario
Using a Metabox
---------------
Metaboxes will appear in the sidebar just like the other boxes, except they are highlighted in a green colour.
You can drag a metabox into the scenario as you would any other box. It will appear with a double border.
.. figure:: images/metaboxes/using-in-scenario.png
:alt: Metabox in scenario
:align: center
Metabox in scenario
Double clicking on the metabox will reveal all of the settings of the scenario that represents the metabox. You can also right click on a metabox and open it in editor from the context menu *Edit this metabox in the editor*.
@@ -0,0 +1,79 @@
.. _studio-configuration:
Configuration Manager
=====================
In this section, we review a component common to the whole |Brand| software platform: the **configuration manager**. We start with this component as we will mention several times in this document how specific behavior can be changed according to this configuration manager.
The |Brand| Configuration Manager is a software component in charge of configuring |Brand| applications and modules according to the user's wishes. Configuration settings are saved in a configuration file, which is loaded at application startup. This file uses a simple syntax, where configuration tokens are listed and given a value. You can check all the configuration tokens in |AuthTool| (Menu Edit/Preferences).
Configuration Files
-------------------
|Brand| comes with **a default configuration file** (``share/openvibe/kernel/openvibe.conf``), automatically loaded at startup. This file lists configuration tokens used by the applications.
Users can edit **a personal configuration file** in order to customize their |Brand| software platform, by overwriting existing token or declaring new ones. In order to do so, create a file named ``openvibe-workspace.conf`` in the folder next to the scenarios you are running. This file will impact all scenarios next to it.
Syntax
------
A configuration file basically looks like successive ``token = value`` statements.
For example, the application can retrieve its root path (|Brand| installation path) from the Path_Root variable. The path is expressed relative to the execution directory bin, so the root path is simply:
.. code-block:: ini
Path_Root = ..
Leading and tailing spaces are allowed, and are removed automatically:
.. code-block:: ini
Path_Root = ..
Comments may be stored on their own lines. They begin after the ``#`` character:
.. code-block:: ini
#this is a valid comment
Path_Root = ..
Lines ending with a ``\`` character continue to the next line, the last ``\`` character of a line is automatically removed by the parser. Note that ``\`` is used as an escape character. To write a path, you should use ``/``:
.. code::
#this is a line that extends\
to the next line
Path_Root = ..
Tokens declared anywhere in the configuration file may be used as values for other tokens. The syntax to be used is: ``${token}``
For example, the binaries path may be declared as such:
.. code-block:: ini
Path_Root = ..
Path_Bin = ${Path_Root}/bin
Configuration files can include other configuration files thanks to a simple syntax:
.. code-block:: ini
Include = path/to/my/config/file.conf
All tokens are read sequentially, and thus can be overwritten during the process.
Existing Tokens
---------------
Several tokens such as *Path_Root* and *Path_Bin* are defined in the default configuration file, and can be overwritten in user-defined configuration files. The token *Player_ScenarioDirectory* is useful when designing a scenario. This token is changed as the path of the scenario when playing it. This is useful to load a file in the same folder as your current scenario. To have the complete list of these tokens, and their values, you can open the window **Preferences**.
Defining and Using Custom Tokens
--------------------------------
Defining your own token can be very useful as you can use them afterwards everywhere in |Brand|. For example, you can define a token ``LowPassFrequency = 40``. You can then use it as a setting in several temporal filters (``${LowPassFrequency}``). Changing the token value will automatically change the filtering frequency in every temporal filter at once, which can be very handy: modification is global and switching from one frequency to another is fast and easy.
We will describe a concrete example that illustrates the use of custom configuration tokens, in paragraph "Appendix A: Using Configuration Tokens to Setup an Experiment Environment".
@@ -0,0 +1,11 @@
Data Visualization
==================
.. toctree::
:maxdepth: 2
data-visualization/01-index
data-visualization/02-concepts
data-visualization/03-configuration
data-visualization/04-usecases
@@ -0,0 +1,32 @@
.. _Doc_Mensia_AdvViz:
Advanced Visualization
======================
General information on the Advanced Visualization Toolset:
- :ref:`Doc_Mensia_AdvViz_Generalities` : generalities about the toolset.
- :ref:`Doc_Mensia_AdvViz_Concepts` : understanding the Toolset design and the different visualization paradigms.
- :ref:`Doc_Mensia_AdvViz_Configuration` : how to configure the Advanced Visualization boxes.
- :ref:`Doc_Mensia_AdvViz_UseCases` : concrete examples of use, from spectral analysis to ERP display.
.. _Doc_Mensia_AdvViz_Generalities:
Generalities
------------
To be able to use all the features in the Mensia Advanced Visualization
Toolset, please verify that your setup meets the following recommendations.
OpenGL OpenGL dependency
~~~~~~~~~~~~~~~~~~~~~~~~
The Toolset relies on the `OpenGL <http://www.opengl.org>`_ library
for every rendering operations, from signal display to 3D reconstruction. You
must ensure that your computer is equipped with an OpenGL-compatible graphic
card or chipset. This should be the case on any recent computer.
You should also ensure that your graphic card drivers are up-to-date. Please
refer to the manufacturer website for more information.
@@ -0,0 +1,263 @@
.. _Doc_Mensia_AdvViz_Concepts:
Concepts
========
.. _Doc_Mensia_AdvViz_Concepts_Intro:
Introduction
------------
The **Mensia Advanced Visualization Toolset** is a collection of boxes
dedicated to the visualization of the result of electrophysiological signal
analysis, and are especially suitable for the **real-time analysis of EEG
signals**, from raw signal display to 3D source reconstruction.
It addresses many different use-cases among users. Neurophysiologists can
observe accurately in real-time **spatial and temporal patterns** in the brain
activity (motor activity, cognitive processes). EEG signal processing
specialists can **evaluate and compare** instantly algorithms effects
(source separation, denoising techniques). BCI researchers can study how their
ERP-based system may be tuned to elicit and detect the best brain response.
.. figure:: images/designer-box-list.png
:align: center
Simple integration in the graphical user interface
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms:
Visualization paradigms
-----------------------
This Toolset has been designed to be very versatile. The main design concept
revolves around the data presentation. You basically want to display matrices
of numbers which may have temporal, and/or spatial meanings. The most adapted
data presentation may vary from one case to another, according to the type of
events or patterns on which you need to get a good contrast.
Before choosing the right visualization box, ask yourself:
- How do I want my data to be displayed? curves? levels?
- What will be the best way to **enhance the contrast** between the information I want to extract and the rest of the data ?
- Is my data stream **continuous** in time? or am I dealing with discontinuous epochs (e.g. ERPs) ?
To be adapted in most situation, the Mensia Advanced Visualization Toolset has
been designed to cover different visualization paradigms. Take a look at all
the possibilities and choose what will best fit your needs.
- :ref:`Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Oscilloscope`
- :ref:`Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Bars`
- :ref:`Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Bitmap`
- :ref:`Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Topo`
- :ref:`Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Reco`
You can also have a look at the :ref:`Doc_Mensia_AdvViz_UseCases` "list of use-cases", showing how each box can be used on concrete, real-life examples.
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Oscilloscope:
The Oscilloscope view
~~~~~~~~~~~~~~~~~~~~~
It is the most basic paradigm, used to display temporal numerical data in the
form of **curves** (dots linked by lines). The Oscilloscope views are all
expecting **centered** values (i.e. distributed around 0). Hence it is advised
to use at least one temporal filter (e.g. band passing between 2 and 40 Hz
using a :ref:`Doc_BoxAlgorithm_TemporalFilter` box) before displaying an EEG
signal.
Four boxes use this paradigm:
- :ref:`Doc_BoxAlgorithm_ContinuousOscilloscope` box: displays continuous data from left to right on a defined horizontal scale (goes back to origin upon reaching the end of the scale), channels are displayed vertically one after another, but spikes may overlap.
- :ref:`Doc_BoxAlgorithm_InstantOscilloscope` box: displays each block of data received as it comes, filling all the horizontal space available.
- :ref:`Doc_BoxAlgorithm_ContinuousMultiOscilloscope` box: same as the Continuous Oscilloscope, but every input channels are displayed along the same horizontal axis with a different color, additively.
- :ref:`Doc_BoxAlgorithm_InstantMultiOscilloscope` box: same as the Instant Oscilloscope, but every input channels are displayed along the same horizontal axis with a different color, additively.
**Example**: raw EEG signal display.
.. figure:: /boxes/images/ContinuousOscilloscope_Display.png
:align: center
Continuous Oscilloscope displaying 2 EEG channels
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Bars:
The Bar view
~~~~~~~~~~~~
Like histograms, this paradigm can be used to display and compare **series of
levels**. Levels are displayed one after another from left to right, within a
**color gradient**. Channels are displayed vertically, one after another with a
fixed interval (thus some "high" levels may overlap). With a high definition
(i.e. a rather high frequency display), the result can be viewed as a curve
colored below the line.
Two boxes uses this paradigm:
- :ref:`Doc_BoxAlgorithm_ContinuousBars` box: displays continuous data from left to right on a defined horizontal scale (goes back to origin upon reaching the end of the scale).
- :ref:`Doc_BoxAlgorithm_InstantBars` box: displays each block of data received as it comes, filling all the horizontal space.
**Example**: spectrum display.
.. figure:: /boxes/images/InstantBars_Display.png
:align: center
Instant Bars displaying the signal spectrum
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Bitmap:
The Bitmap view
~~~~~~~~~~~~~~~
The bitmap paradigm displays matrices of data using a color gradient. The
result is a **2D map where each cell is given a color "bit"** . This view
using colors can enhance easily the constrast between 2 temporal or spatial
patterns, as the difference between "cold" and "hot" colors is quickly caught
by the analyst's eye. You can even add an additional dimension by using
**stacked bitmaps** : every time a new bitmap is received, it is placed on top
or left to the previous one.
Four boxes uses this paradigm:
- :ref:`Doc_BoxAlgorithm_ContinuousBitmap` box: displays continuous data from left to right on a defined horizontal scale (goes back to origin upon reaching the end of the scale).
- :ref:`Doc_BoxAlgorithm_InstantBitmap` box: displays each block of data received as it comes, filling all the horizontal space.
- :ref:`Doc_BoxAlgorithm_StackedBitmapVertical` box: each bitmap is placed on **top** of the previous one.
- :ref:`Doc_BoxAlgorithm_StackedBitmapHorizontal` box: each bitmap is placed **left** to the previous one.
**Example**: Time-frequency map.
.. figure:: /boxes/images/StackedBitmapHorz_Display.png
:align: center
Stacked Bitmap (Horizontal) displaying the result of a Time-Frequency analysis
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Topo:
The Topographic view
~~~~~~~~~~~~~~~~~~~~
This paradigm adds a strong spatial constraint on the input data: each channel
must be **labelled with an electrode name** in a defined nomenclature, such as
the standard 10-20 system. Please see
:ref:`Doc_Mensia_AdvViz_Concepts_ChannelLocalization` for further details.
Here again the data itself is displayed using a color gradient, mapped to a 2D or 3D model using **spherical spline interpolation**.
For more details about the spherical spline interpolation, please check *F.
Perrin, J. Pernier, O. Bertrand, J.F. Echallier, Spherical splines for scalp
potential and current density mapping, Electroencephalography and Clinical
Neurophysiology, Volume 72, Issue 2, February 1989, Pages 184-187*. The 2D
model is a planar projection of the scalp, covering the scalp roughly from the
frontal area to the occipital area (i.e. from Fp1-Fp2 to O9-O10 sites). The
projection result takes the shape of a disk with a crescent growth at the back
for the occipital region.
Three boxes uses this paradigm:
- :ref:`Doc_BoxAlgorithm_2DTopography` box: maps the input (which channels are labelled in the 10-20 system standard) to a planar projection of the scalp.
- :ref:`Doc_BoxAlgorithm_3DTopography` box: maps the input (which channels are labelled in the 10-20 system standard) to a projection on a 3D model of the scalp.
- :ref:`Doc_BoxAlgorithm_3DCubes` box: an alternative view where each channel is represented by a 3D cube, positionned in space as the electrode would be on the 3D model.
The activity is rendered by changing the size and color of the cubes.
**Example**: Displaying the power of a specific frequency band on a 3D head model.
.. figure:: /boxes/images/3DTopography_Display.png
:align: center
Alpha power mapped on a head model using the 3D topography
.. _Doc_Mensia_AdvViz_Concepts_VisualizationParadigms_Reco:
The Reconstruction view
~~~~~~~~~~~~~~~~~~~~~~~
Tomographic reconstruction algorithms offer an inside look, into the brain,
from only surface measurements. Several techniques exist, including the
algorithms of the popular LORETA family which slice the brain in a stack of
little cubes called voxels, and computes the *inverse model*, a model
reconstructing the sources of the potentials acquired at the measurement site.
One box implements the source reconstruction view:
- :ref:`Doc_BoxAlgorithm_3DTomographicVisualization` box : displays a 3D source reconstruction using 2394 colored/translucent voxels in a 3D head model.
This box expects 2394 input channels, produced by an inverse model (i.e. a spatial filter with N sensor inputs for 2394 sources outputs). This model must be tailor-made for the precise EEG setup being used (e.g. using sLORETA).
.. figure:: /boxes/images/3DTomographicVisualization_Display.png
:align: center
3D tomographic reconstruction using the 3D Tomographic Visualization box
.. _Doc_Mensia_AdvViz_Concepts_ChannelLocalization:
Channel localization
~~~~~~~~~~~~~~~~~~~~
Every visualization box can use the spatial information conveyed by the
electrode naming. The channels can be positionned relatively to each other as
long as you provide in the box settings a file containing the cartesian
coordinates of the electrodes. Most of the time, EEG manufacturers use the
10-20 system as an electrode naming standard. For convenience, we provide
within the Toolset a file compiling all the coordinates of the electrodes in
the 10-20 system.
The cartesian coordinates of all the electrodes are computed in the 3D space, where the origin is at the center of [Fpz,Oz] and [T7,T8].
- the X axis goes from the occipital lobe to the frontal lobe
- the Y axis goes from the right temporal lobe to the left temporal lobe
- the Z axis goes from the center of the head to the top
And as for the unit, here are some key points at the maximum of the axis:
- Fpz (1,0,0)
- Oz (-1,0,0)
- T7 (0,1,0)
- T8 (0,-1,0)
- Cz (0,0,1)
The following figures illustrates the cartesian coordinates of the extended 10-20 system used in the Mensia Advanced Visualization Toolset.
.. figure:: images/CartesianCoordinates1.png
:align: center
Cartesian coordinates of the 10-20 system, side view.
.. figure:: images/CartesianCoordinates2.png
:align: center
Cartesian coordinates of the 10-20 system, front view.
For more information, please see *Oostenveld, R. & Praamstra, P. (2001). The
five percent electrode system for high-resolution EEG and ERP measurements.
Clinical Neurophysiology, 112:713-719*
Please note that using the 10-20 system is not mandatory. To use all the Toolset features related to the spatial disposition of the electrodes, you just need to provide a file that maps electrode name with their coordinates in the space described above.
The format of this file is simple text. You must provide:
- the electrode names as a list of quoted labels
- the coordinate system labels
- the electrode coordinates of the electrodes, in the same order as in the electrode names
For example:
.. code::
[
["O1" "O2" ... ]
["x" "y" "z" ]
]
[
[-0.309017 -0.951057 4.48966e-011 ]
]
[
[0.309017 -0.951057 4.48966e-011 ]
]
For a complete example, please look at the file provided with the Toolset (``../share/mensia/openvibe-plugins/cartesian.txt``)
@@ -0,0 +1,220 @@
.. _Doc_Mensia_AdvViz_Configuration:
Configuration
=============
By design, all the boxes included in the Mensia Advanced Visualization Toolset
share a common behavior when it comes to configuring the boxes, in the scenario
edition or during its execution. In this section we describe the common
configuration parameters you find when using these boxes.
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings:
Box settings
------------
You may encounter different settings, common to all or a subset of boxes,
depending on the paradigms.
.. _Doc_Mensia_AdvViz_Configuration_ChannelLocalization:
Channel localisation
~~~~~~~~~~~~~~~~~~~~
Specify here where to find the file listing the coordinates of every electrodes
by their names. Please see
:ref:`Doc_Mensia_AdvViz_Concepts_ChannelLocalization` for more details.
For conveniency, we provide a default file
``${AdvancedViz_ChannelLocalisation}``
(*../share/mensia/openvibe-plugins/cartesian.txt*) which contains the cartesian
coordinates of all electrodes in the extended 10-20 system. This settings is
obviously **mandatory for the Topographic views**, but can also be useful for
the other paradigms: at runtime, you can re-arrange the channels spatially by
their names (from left to right hemisphere, or from front to top). This is
useful when dealing with dense EEG (128 or more channels), which can bring a
new light, new contrast on a rather opaque data display.
.. figure:: images/Settings_ChannelLocalisation.png
:align: center
Spatial reorganization on a dense signal display using a Continuous Oscillator
.. _Doc_Mensia_AdvViz_Configuration_Caption:
Caption
~~~~~~~
If this field is used, this label will be displayed in the window, on top of the rendering area.
.. _Doc_Mensia_AdvViz_Configuration_Color:
Color
~~~~~
The color gradient you want to use to display the data. You can use the color picker to chose the gradient manually, or use one of the presets.
Several presets exist in form of configuration tokens ``${AdvancedViz_ColorGradient_X}``, where X can be:
- ``Matlab`` or ``Matlab_Discrete`` (as in `Matlab <http://www.mathworks.fr/products/matlab/>`_ / `BCILAB toolbox <http://sccn.ucsd.edu/wiki/BCILAB>`_)
- ``Icon`` or ``Icon_Discrete`` (as in `ICoN <https://sites.google.com/site/marcocongedo/software/icon>`)
- ``Elan`` or ``Elan_Discrete`` (as in `Elan <http://elan.lyon.inserm.fr/>`_)
- ``Fire`` or ``Fire_Discrete``
- ``IceAndFire`` or ``IceAndFire_Discrete``
The default values ``AdvancedViz_DefaultColorGradient`` or ``AdvancedViz_DefaultColorGradient_Discrete`` are equal to ``Matlab`` and ``Matlab_Discrete``.
Here is an example of 2D topography rendering using these color gradients:
.. figure:: images/2DTopography_ColorGradients.png
:align: center
The color gradient presets available, illustrated with the 2D topography
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings_Translucency:
Translucency
~~~~~~~~~~~~
This setting expects a value between 0 and 1, where 0 is complete transparency and 1 complete opacity.
The translucency parameter is very useful when dealing with overlapping rendering, i.e. when some parts of the visualizations end up on each other.
By adding some translucency the data can still be visible, and it can also smoothen dense readings for more confort.
.. figure:: images/Settings_Translucency-1-05.png
:align: center
Using the translucency to allow dense yet smooth EEG reading
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings_PositiveData:
Positive data only
~~~~~~~~~~~~~~~~~~
By ticking this checkbox, you shift the vertical scale of the visualization in order to have the 0 at the bottom (no negative values will be displayed)
This setting can be activated when dealing with spectral amplitude or any kind of positive-only "levels".
.. figure:: images/ContinuousBars_Display.png
:align: center
Displaying a positive level (Global Field Power) using Continuous Bars
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings_Gain:
Gain
~~~~
If set, all samples in the input stream are multiplied by this scalar value before display.
This can be useful when you need to display all at once different type of data on the same relative scale, with a good contrast on every view.
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings_TemporalCoherence:
Temporal Coherence
~~~~~~~~~~~~~~~~~~
Tells the box whether the input stream is expected to be **Time-locked** or
**Independent**. In the first case the box should use a Time scale (in
seconds, for **continuous** data), and for the second case a Matrix count
(number of data block received, for **discontinuous** data).
.. _Doc_Mensia_AdvViz_Configuration_BoxSettings_TimeScale:
Time scale
~~~~~~~~~~
The time scale (in seconds) drives the number of values to be displayed in
continuous or stacked views before going back to the origin. Using a time
scale is meaningful only when dealing with an input stream made of continuous
epochs, e.g. signal display, time-frequency analysis.
.. _ Doc_Mensia_AdvViz_Configuration_BoxSettings_MatrixCount:
Matrix count
~~~~~~~~~~~~
The number of input epochs to display before going back to the origin. For
example in stacked bitmaps this setting is the number of bitmaps to be stacked
before going back to the bottom of the stack.
An illustration for this setting would be the visualization of Event-Related
Potentials such as P300. In such scenario, we usually select epochs of data
uncontinuously, e.g. by extracting 600ms of signal around a target stimulation.
Setting the Temporal coherence parameter to *Independent* will make the
box display every epochs one after another, without trying to use the epoch
timings. For example, set to *Independent* when you want to stack P300
target trials on a bitmap view, with a matrix count equal to the number of
trials you want to stack.
.. figure:: images/StackedBitmapVert_ERPDisplay.png
:align: center
Using a Stacked Bitmap (Vertical) to display the 3 first xDAWN components of all 99 Target trials of a P300 session
.. _Doc_Mensia_AdvViz_Configuration_RuntimeToolbar:
Runtime Settings
----------------
This section covers the different settings available at runtime (i.e. when the
scenario is currently beeing played). Clicking on the **toolbar** will open-up
the runtime visualization settings.
- **Sort Channels** : rearrange the channels **by their name** (alphabetically
or reversed order), or **by their position on the scalp** (left to right or
front to back). This last option is possible only if the channel are named
according to the 10-20 system, and if you provided a channel localisation
file in the box settings.
- **Select Channels** : Select in a list the channels you want to see in the
visualization window. Use the ``Ctrl`` or ``Shift`` key to add channels to
your selection, ``Ctrl+a`` to select all channels.
- **Show scales** : show or hide all the scales around the visualization
widget; allows nice snapshots. This setting is **global**, meaning that it
affects all the other advanced visualization windows currently running in
your scenario. Doing so preserves the widgets alignment when displaying
synchronized data. This setting can be turned on or off also by a **double
left-click** in the visualization windows itself.
- **Positive data** : this setting is a runtime duplicate of the box setting
*Positive data only*. If checked, the vertical axis is shifted so
that 0 is at the bottom. Negative values wont be displayed.
Depending on the temporal coherence selected in the box settings, you may find:
- **Time scale** : this setting is a runtime duplicate of the box setting *Time scale*.
- **Matrix count** : this setting is a runtime duplicate of the box setting *Matrix count*.
When the visualization box implements an **Instant** paradigm for **streamed
matrices or signal input** data, a new setting is available:
- **Epoch replay** : replays the last epoch received.
Topographies also expose the ERP replay in adequat conditions. This feature is
**global**, meaning that the replay is performed simultaneously on every
compatible boxes. This allows for example on-demand replays of ERPs,
simultaneously on a signal display and a topography.
.. figure:: images/3DTopography_ERPReplay.png
:align: center
Using the ERP replay feature on a 3D topography to catch the spatial course of the potential
.. _Doc_Mensia_AdvViz_Configuration_RuntimeControls:
Runtime Controls
----------------
All the visualization boxes share common controls at runtime, for a user-friendly, natural interaction.
Using the mouse, one can:
- Maintain **right click** and move the mouse up or down to **zoom in or out on the data scale**
- Maintain **left click** and move the mouse to **rotate** a 3D model
- Maintain **middle click** and move the mouse to **zoom in or out on a 3D model**
- **Double left click** in the vizualisation window to remove all the scales from the frame
All these controls are **global** , meaning that if you change the scale in one visualization window, it will change the scale in every visualization windows accordingly.
@@ -0,0 +1,138 @@
.. _Doc_Mensia_AdvViz_UseCases:
Use-cases
=========
We describe in this section of the documentation several use-cases, typical and
concrete examples of EEG analysis that are enlighted by the **Mensia Advanced
Visualization Toolset**.
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis:
EEG Signal analysis
-------------------
This detailed example uses the basic OpenViBE signal processing boxes to
perform elementary real-time analysis, and the Mensia Advanced Visualization
Toolset to display the results:
- Raw and filtered EEG
- Spectrum, time-frequency map
- 2D and 3D topographies
You can find this scenario in the provided sample set, the scenario file name
is ``UseCase-1-EEG-signal-analysis.mxs``.
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Intro:
Introduction
~~~~~~~~~~~~
This use-case is a simple yet concrete example of real-time EEG analysis
usually performed with OpenViBE. The scenario covers the use of oscilloscope,
bitmaps, bars and topographic views to display signal, spectrum, and band
power.
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Scenario:
The scenario
~~~~~~~~~~~~
The signal used is a **motor imagery** session, where the participant performed
right and left hand motor imagery trials. For more details, please refer to
the official documentation of the OpenViBE motor-imagery bci scenarios,
provided with the official release of the software. We chose these data for
demonstration purpose only as it is a file provided with the official release
of openvibe, and should be available for you anyway.
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Scenario_Filtering:
Signal filtering
^^^^^^^^^^^^^^^^
We first remove artifacts using temporal filters, especially the common 50Hz
noise coming from the electrical installation. The EEG amplifier used for the
record we read here is a Mindmedia NeXuS 32b, with one reference channel put on
Nz (nose). The *Reference Channel* box applies this spatial filter to further
remove noises.
We then use a :ref:`Doc_BoxAlgorithm_ContinuousOscilloscope` to display the
filtered signal.
.. figure:: images/UseCase1_1.png
:align: center
Denoising the signal before display
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Scenario_Spectrum:
Spectral analysis
^^^^^^^^^^^^^^^^^
A first pipeline computes two surface Laplacian filters around C3 and C4, the
center of the two motor cortices. We then compute the spectrum using FFT, up
to 32 Hz, and display it using :ref:`Doc_BoxAlgorithm_InstantBars` (spectrum
levels) and :ref:`Doc_BoxAlgorithm_StackedBitmapHorizontal` (time-frequency
map).
.. figure:: images/UseCase1_2.png
:align: center
Spectral analysis over filtered data
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Scenario_Topo:
Topographic display
^^^^^^^^^^^^^^^^^^^
We compute in a parallel pipeline the alpha band power, averaged over several
epochs, and visualize it over the scalp through
:ref:`Doc_BoxAlgorithm_2DTopography` and :ref:`Doc_BoxAlgorithm_3DTopography`.
.. figure:: images/UseCase1_3.png
:align: center
Topographic display of the alpha band power over the scalp
.. _Doc_Mensia_AdvViz_UseCases_SignalAnalysis_Result:
Result
~~~~~~
Here is the online visualization when we play this scenario on the provided
data.
.. figure:: images/UseCase1_6.png
:align: center
Signal display
.. figure:: images/UseCase1_4.png
:align: center
Spectrum visualization
.. figure:: images/UseCase1_5.png
:align: center
2D and 3D Topographies
.. _Doc_Mensia_AdvViz_UseCases_ERPAnalysis:
Event-Related Potentials analysis
---------------------------------
This use-case is focused on the ERP extraction and visualization, applied to
P300 speller data. The Mensia Advanced Visualization boxes allows concurrent
and comparative displays (e.g. target versus non-target potentials), and
synchronized replay capabilities
You can find this scenario in the provided sample set, the scenario file name
is ``UseCase-2-ERP-analysis.mxs``.
Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

@@ -0,0 +1,14 @@
|Brand| |AuthTool|
==================
The |Brand| |AuthTool| is an authoring tool dedicated to creating and executing |AuthTool| scenarios.
.. toctree::
:maxdepth: 2
01-introduction
02-interface
03-scenario-authoring
04-metaboxes
05-configuration
06-data-visualization
@@ -0,0 +1,25 @@
OpenViBE Documentation
======================
OpenViBE Desginer Documentation
-------------------------------
.. toctree::
:maxdepth: 2
designer/index-designer
Available Boxes
---------------
.. toctree::
:maxdepth: 1
boxes/index-boxes
Data Formats Documentation
--------------------------
.. toctree::
:maxdepth: 2
data-formats/index-data-formats