New release of OpenViBE 0.11.0 available

OpenViBE software releases, jobs and events
Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

New release of OpenViBE 0.11.0 available

Post by lbonnet »

The OpenViBE development team is happy to announce the release of OpenViBE 0.11.0 "Summer Edition", available for download at :

This release brings many exciting features, including three community contributions :

Aurélien Van Langhenhove contributed a driver based on OpenAL to acquire sound signal from microphone input.

Joan Fruitet patched the Matlab Filter box, by fixing bugs and adding stimulation output.

Olivier Rochel contributed bugfix patches, for matlab box and skeleton-generator.

Motor-imagery and SSVEP scenarios now use CSP for higher performances.
Emotiv driver was updated to make gyroscope values available.
Signal Concatenation box has been rewritten for fast file concatenation.
The developer tool Skeleton-Generator benefited from a major update.
Matlab box outputs stimulations.
Channel Selector and Reference Channel feature smart channel selection (names, indexes, ranges).
... and more new features detailed below.

Many thanks to Aurélien, Joan and Olivier for their contributions! If you are interested in joining the effort feel free to contact us!

Contact : Project Leader : Anatole Lécuyer, INRIA ( Lead Software Engineer : Laurent Bonnet, INRIA (

Follow us on twitter :

For more information visit our website :

The whole team wishes you a nice summer & holidays!

Full feature list :

+ Aurélien Van Langhenhove contributed a driver based on OpenAL to acquire sound signal from microphone input.
+ Joan Fruitet contributed a patch for the Matlab filter box, by fixing bugs and adding stimulation output.
+ Olivier Rochel contributed patches for the skeleton-generator and the matlab box

+ OpenViBE is now officially supported on Fedora 15, Ubuntu 11.04 and Windows 7 64bit.

* The Emotiv EPOC driver now acquires values from gyroscope sensors (new option in the driver properties).
* The Player in the OpenViBE Designer can now be controlled with keyboard shortcuts (F5: stop, F6: one-step, F7: play, F8: fast-forward)
* Skeleton Generator benefited from a major update, and can produce box skeleton with Listeners, Codecs, Flags, etc.

+ New Reference Channel and Channel Selector boxes. The older boxes are now deprecated. The channel selection is smarter (name or 1-based index, 'X:Y' for channel range).
+ New Signal Concatenation box. The older box is now deprecated. The concatenation is much faster, and end-of-file is detected automatically through a time-out.
+ New Stream Switch box that copies its input chunks on one of its outputs. The active output is selected with defined stimulations.
* CSV file writer can receive 1 or 2-dimensional matrices
* Matrix display can receive 1 or 2-dimensional matrices
* The Matlab filter box has now a Stimulation output, and the Matlab messages are redirected to the OpenViBE console (warnings, errors, disp, etc.)
* Classifier Trainer outputs standard deviation along with classification percentage on the k-fold test. k-fold test now randomize the input data prior to testing by default.
* CSP and xDAWN spatial filter trainers output a stimulation OVTK_StimulationId_TrainCompleted after a successful training.
* Classifier Accuracy visualization box can now show score and/or percentages, or none of them.

+ New set of scenarios for a Motor-Imagery based BCI using CSP spatial filters, and demonstrating how to measure classifier performances offline or online (confusion matrix, overall performance).
+ Documentation for the Matlab Filter box.
+ Documentation for the Display-Cue visualisation box.
* SSVEP scenarios now make use of CSP spatial filters for better performances.
* Acquisition Server documentation updated to latest GUI modification (division driver properties/server settings)
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !

Site Admin
Posts: 417
Joined: Wed Oct 07, 2009 12:11 pm

Re: New release of OpenViBE 0.11.0 available

Post by lbonnet »

==== 0.11.0 CHANGELOG ====
Released 11th August 2011


openvibe :
+ added possibility for master kernel context when creating a kernel context
* replaced "-" range separator with ":" range separator (for later use of the "-" char as a reversed index in the channel selector)

openvibe-kernel :
+ sent that master kernel context to the managers
+ added warning message when adding box an input or output with unknow stream type
+ added new configuration token Kernel_AllowUnregisteredNumericalStimulationIdentifiers to allow numerical stimulation ids to be expanded from settings - default is disabled
+ added a configuration token Plugin_Classification_RandomizeKFoldTestData (default to true) to control the randomization behavior of the classifier trainer
* ovkCScenarioImporterContext.h: removed the "mutable" keyword for the scenario member (reference) > mutable reference useless, and not allowed by GCC 4.6 (fedora 15 compatibility issue)

openvibe-toolkit :
+ Templated codecs : added acquisition stream decoder
* ovtkTDecoder.h : added an optional argument in decode(..) to tell whether to markInputAsDeprecated or not.
* added a function to get the number of labels a feature vector set owns - can be used by classifier algorithms to check they have appropriate number of labels to be trained
* Templated codecs : virtualized destructors so that destrucion mechanism works properly
* TBoxAlgorithm : added important warning message for missing enumeration entry value in TBoxAlgorithm

openvibe-modules/socket :
* added early exit when reading 0-length data on an IConnection object


openvibe-application/designer :
* fixed bug in color & color gradient settings causing configuration window not to appear and setting value not being expanded
* ovdCInterfacedScenario.cpp : Added shortcuts for the player control : F5=stop, F6=next-step, F7=play/pause, F8=fastforward (same order as in the toolbar)
* interface.ui : added version notice "SVN", to be changed with the installer
* interface.ui : fixed a gtk warning on mising gtk signal callback.

+ added a driver contributed by Aurelien Van Langhenhove for capturing input from the sound card using OpenAL
+ added OpenAL dependency to the acquisition server
- branch wip-emaby
+ Merging branch wip-emaby in trunk -r 2662:3028 resulting in following changes:
* ovasCDriverCtfVsmMeg : debugged CTF VSM driver.
-/+ Reversed Merge of the branch wip-emaby to trunc (-r 3028:3027). Reason : over-specialization of the driver to developer use-case.
* ovasCDriverCtfVsmMeg : reversed to revision 3027.
* interface-Emotiv-EPOC.ui : added a "add gyro" checkbutton
* ovasCConfigurationEmotivEPOC.cpp/h : added a boolean for the gyro
* ovasCDriverEmotivEPOC.cpp : added 2 channels for gyro x&y
* ovasCDriverEmotivEPOC.cpp/h : added error checking and logging. Added debug messages.

+ Merged branch wip-lbonnet to trunc -r 2961:2972 Resulting in the following changes :
+ box.cpp-codec-toolkit-skeleton : skeleton with specific comments for the codec toolkit
- ovsgCAlgorithmSkeletonGenerator.cpp/h : not used, noise in the forge. Also removed from ovsg_main.cpp.
* ALL skeletons : Codec Toolkit integration and some refactoring, bug correction and better gui.
* generator-interface.ui: removed the target directory
* ovsgCBoxAlgorithmSkeletonGenerator.cpp : removed the target directory, now use a new dialog window when generating the files to select the destination folder
* ovsgCSkeletonGenerator.cpp : save/load the last selected generator (driver or box)
* generator-interface.ui : added 2 notebook pages for box listener and processing method
* All skeletons : more comments, more tags for listener and processing method
* ovsg_main.cpp : removed the signal connection from XML ui file -> moved to the generators
* added a generate(...) function that generate a file based on a template and a map of substitutions.
* initialize now return a boolean instead of void.
* replaced cbegin and cend methods by begin and end for gcc compatibility
* fixed bug with the icon selection box causing crash on Linux
* fixed many typo and tag problems
+ box.cpp-codec-toolkit-skeleton : skeleton with specific comments for the codec toolkit
* generator-interface.ui : added 2 notebook pages for box listener and processing method
* ovsgCSkeletonGenerator.cpp : save/load the last selected generator
* ovsg_main.cpp : removed the signal connection from XML ui file -> moved to the generators
* All skeleton : more comments, more tags for listener and processing method
* ovsgCBoxAlgorithmSkeletonGenerator.cpp/h: bug fixes, typo, listener and processing method added
* ovsgCBoxAlgorithmSkeletonGenerator.cpp/h: fixed a bug with the file dialog on linux
* box.cpp-skeleton : added "LL" to the value returned by getClockFrequency (Bugfix by O.Rochel INRIA)
* box.cpp-codec-toolkit-skeleton : added "LL" to the value returned by getClockFrequency (Bugfix by O.Rochel INRIA)
* ovsgCBoxAlgorithmSkeletonGenerator.cpp : fixed a perl regexp (Bugfix by O. Rochel INRIA)
* box.cpp-skeleton : replaced the spaces by tabulation (see coding rules)
* box.cpp-codec-toolkit-skeleton : idem

=== PLUGINS ===

+ added standard deviation measure for final performance measure
* ovpCClassifierTrainer : modified the k-fold test so it randomizes the input data
* fixed a potential bug in the randomization
* ovpCAlgorithmConfusionMatrix.cpp : add the stimulation name in the row and column names (e.g. Target Class 1 --> Target Class OVTK_GDF_Right)

- removed branch wip-bpayan-csv
+ Merged branch wip-bpayan-csv to trunk resulting in following changes:
* AlgorithmCSVFileWriter: Allow the csv writer to receive a matrix with 1 or 2 dimensions and convert it in a CSV file.
- removed branch wip-lbonnet
+ Merged branch wip-lbonnet with trunk resulting in the following changes:
+ ovpCBoxAlgorithmSignalConcatenation.cpp/h : new signal stream concatenation box designed to replace the deprecated signal-processing/signal concatenation box. Much faster process, more reliable.
+ Doc_BoxAlgorithm_SignalStreamConcatenation.dox-part : documentation for the Signal Stream Concatenation box.
* ovp_main.cpp : new concatenation box declared.
* ovpCBoxAlgorithmSignalConcatenation.cpp/h : fix for Linux.
* ovpCBoxAlgorithmSignalConcatenation.h : fixed the setting type from StimulationS (stream) to Stimulation (type), and fixed typo in the settings.
* CSVFileWriter : fixed signed / unsigned warning in CSV file writer

- branch wip-bpayan-console
+ Merged branch wip-bpayan-console to trunc -r 2919:3018 resulting in the following changes:
* ovpCBoxAlgorithmMatlabFilter: add matlab's messages (error, warning, disp, ...) in the openvibe console
* ovpCBoxAlgorithmMatlabFilter : patched the branch (to be integrated in 0.11.0) with the work from Joan Fruitet (INRIA Sophia-Antipolis). Added a stimulation output, reversed the input order. Code refactoring and comment.
+ doc : doxygen file and images for an example.
+ Doc_BoxAlgorithm_MatlabFilter.dox-part : added a note about OV_DEP_MATLAB to be set in win32-dependencies.cmd

* ovpCTestCodecToolkit.cpp : minor update (log msg and comments)

openvibe-plugins/signal-processing :
- removed branch wip-yrenard
+ merged branch wip-yrenard to trunc resulting in the following changes :
* deprecated reference channel
* deprecated channel selector
+ added new reference channel box w/ smart channel selection (name + 1-based index)
+ added new channel selection box w/ smart channel selection / rejection (name + 1-based index)
+ added frequency band selector documentation
+ added channel selector documentation
+ added channel rename documentation
* moved deprecated channel selector documentation to appropriate file
* ovpCBoxAlgorithmChannelSelector.cpp : fixed a bug on windows with global namespace problem (forum post viewtopic.php?t=311&p=2233#p2233)
* ovpCBoxAlgorithmChannelSelector.cpp : fixed bug on input / output type changed to update twin connector accordingly
* ovpCBoxAlgorithmReferenceChannel.cpp : fixed a bug on windows with global namespace problem (forum post viewtopic.php?t=311&p=2233#p2233)
* ovpCSignalConcat.h : this box is now marked as deprecated. Please use the new signal concatenation box in openvibe-plugins/file-io. box renamed to signal concatenation (deprecated).
* fixed default setting in the channel selector from "-" to ":"
* replaced explicit use of "-" in the frequency band selector with OV_Value_RangeStringSeparator

* ovpCBoxAlgorithmCSPSpatialFilterTrainer.cpp : fixed an error message (missing '\n' at the end).
* ovpCBoxAlgorithmCSPSpatialFilterTrainer : added an output for the stimulation OVTK_StimulationId_TrainCompleted.
* Doc_BoxAlgorithm_CSPSpatialFilterTrainer.dox-part : documentation completed for above change
* ovpCBoxAlgorithmCSPSpatialFilterTrainer.cpp : fixed a compatibility issue with Fedora (re-allocation with unknown values on itpp::mat)
* ovpCBoxAlgorithmCSPSpatialFilterTrainer.cpp : proper train-completed stimulation when the train is successful.
* ovpCBoxAlgorithmXDAWNSpatialFilterTrainer.cpp : same, plus info message when successful training.
* CSP and xDAWN trainer : fixed basic stimulation handling

- branch wip-bpayan-matrixDisplay
+ Merge branch wip-bpayan-matrixDisplay in trunk resulting in following changes:
* CBoxAlgorithmMatrixDisplay : show matrix with one or two dimensions
+ Doc_BoxAlgorithm_DisplayCueImage.dox-part : includes missing documentation page.
* ovpCBoxAlgorithmMatrixDisplay.cpp : performance fix
* openvibe-simple-visualisation-ClassifierAccuracyMeasure.ui : added a "show score" button in the toolbar
* ovpCBoxAlgorithmClassifierAccuracyMeasure.cpp/h : user can now show score and/or percentages (or none of them) in the progress bars. default is only percentages.
* ovpCDisplayCueImage : added an output synchronized with the GTK rendering in order to have accurate timing on the presentation of the stimuli
* SignalDisplay : fixed bug when stimulation get late in the signal display box : forced refresh so that all the stims appear
* SignalDisplay : fixed bug on uninitialized main & table widgets in signal display

* ovpCBoxAlgorithmStimulationFilter.cpp : added cstddef include for GCC 4.6 (Fedora 15) compatibility.
* ovpCBoxAlgorithmOpenALSoundPlayer.cpp/h : modified the stimulation output in order to produce a stream synchronized with the OpenAL engine.
* Doc_BoxAlgorithm_StimulationFilter.dox-part : fixed the settings documentation (not the right order)
* Doc_BoxAlgorithm_SoundPlayer.dox-part : update for previous modification (stim synchronized with openAL engine)

+ ovpCBoxAlgorithmStreamedMatrixSwitch.cpp/h : stream switch box, that takes an input Streamed Matrix and redirect it to a particular output among N, according to input stim triggers. Chunk are just copied.
+ Doc_BoxAlgorithm_StreamSwitch.dox-part : box documentation page
* ovp_main.cpp : stream switch registered
* ovpCBoxAlgorithmStreamedMatrixSwitch.cpp : using decoder without marking input as deprecated

* Server documentation : fixed the cross references mismatch


openvibe-scenarios :
+ motor-imagery-CSP : motor imagery scenarios with use of Common Spatial Pattern spatial filter. Measure of classifier performances in the replay scenario.
* motor-imagery-bci-2-train-CSP.xml : pause the scenario when training is complete
* p300-speller-2-train-xDAWN.xml : update the xdawn box and pause the sceanrio when training is finished.
* motor-imagery/motor-imagery-bci-2-classifier-trainer.xml : added a player controller to stop the scenario when training is finished.
* SSVEP : modified the SSVEP scenarios in order to use CSP
* motor-imagery-CSP/motor-imagery-bci-2-train-CSP.xml : fixed SBE boxes name (Left <> Right)
* motor-imagery-CSP/motor-imagery-bci-3-classifier-trainer.xml : same.
* motor-imagery-bci-config-classifier.cfg : file for SVM fixed to LDA
* ALL : updated scenarios with new channel selector and new reference channel
* ALL : updated scenarios with weirdly outdated classifier processor

* developer_codec_toolkit_ref.dox : update the codec toolkit reference page for "decode" with optional argument
* developer_codec_toolkit_ref.dox : minor fix
* ovpCTestCodecToolkit.h : removed the "stream" word on stimulation codecs class names.
+ acquisition_server_settings.png
* AcquisitionServerOverview.dox : updated images (0.10.0)
* AcquisitionServerOverview.dox : major fix in the acquisition server usage
* AcquisitionServerOverview.dox : update for the new interface 0.10.0
* SSVEP : modified the documentation to reflect changes in scenarios (usage of CSP)
* ExistingScenarios.dox : added a doc page for the "Motor Imagery with CSP" scenarios.

+ added the news for the 0.10.0 release
+ added the news for the 10.1 patch


openvibe-plugins-wip-mgoyat :
+ created plugin project to grab all the contrib candidates from mgoyat in a single project
Those contributions should be sorted out by Laurent Bonnet & Nicolas Tarin to identify
what should be in the INRIA gForge and what should not be in the INRIA gForge.
Reminder about this inclusion :
* Contribution should be of interest for the community, not only for GipsaLab
* Coding rules & naming convention should be respected
* French comments & trace messages should be either removed or translated in english and sent to the Log Manager
* ...
Please care about the ecosystem !
+ created basic tree for mgoyat's contrib
+ added folders to match mgoyat' tree structure
+/- moved all the mgoyat contributions to openvibe-plugins-wip-mgoyat

openvibe-plugins-wip-glio :
+ created wip-glio project for centralization of glio contribs
+ created basic tree
+/- moved all glio contribs to openvibe-plugins-wip-glio
+/- removed all glio branches
Follow us on twitter >> openvibebci

Checkout my (old) blog for some OpenViBE tips & tricks : here !