OpenViBE v1.0.0 is available! + v1.0.1

OpenViBE software releases, jobs and events
Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

OpenViBE v1.0.0 is available! + v1.0.1

Post by jtlindgren »

The OpenViBE development team is happy to finally announce the release of v1.0.0.

You can find it here.


OpenViBE 1.0.0 features lots of fixes for stability and usability. There has been a significant effort
in cleanup and removal of unused components and dead code. This version introduces more tools for
communicating with other software in terms of more complete LabStreamingLayer (LSL) support,
as well as an OSC output box. We have added support for some new, emerging acquisition systems,
such as OpenBCI. Wavelet decomposition and artifact removal boxes have been added. The
Signal Display has been improved and optimized.

This version was brought to you by

Jussi T. Lindgren
Guillaume Serriere
Loic Mahe
Alison Cellard

with assistance from

Guillermo Andrade-Barroso
Nathanael Foy

and contributions from

Mensia Technologies (, France)
Joao-Pedro Berti-Ligabo (France)
Jeremy Frey (France)
Ozan Caglayan (Galatasaray University, Turkey)
Medical Computer Systems (, Russia)
mBrainTrain Development Team (, Serbia)

When migrating from a previous version

- Several boxes have changed their signature and need to be updated. It is especially important to update the following boxes:
Signal Display, Classifier Trainer, Classifier Processor, Temporal Filter. Without updating, the boxes will no longer work.
- The TCP Writer signal output has changed, it will now output all channels of a single sample before the next sample. It is compatible with the Acquisition Server Telnet reader conventions. You will need to update your possible client code.
- Classifiers learned with 0.18.x and earlier are no longer compatible. Please train new classifiers with 1.0.
- Generic stream reader will no longer cast a base stream into a derived stream. If you have been relying on this feature, you need to set the output to the derived stream.
- Yule-Walker method has been removed from the Temporal Filter. Please use another filter type.
- All LDA classifiers have been merged into one. Its features cover all the previous LDA-type classifiers.
- Your box code may need to be updated to match the changes to the codec interfaces. See here for details.

For a more detailed list of changes, please see the following message. For the TOTAL list of changes, please refer to the git log.

On behalf of the OpenViBE development team,
Jussi T. Lindgren, PhD
Lead Engineer @ ADT OpenViBE NT
Inria / France

Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: OpenViBE v1.0.0 is available!

Post by jtlindgren »

Release Notes / ChangeLog

Major features

- LabStreamingLayer support: Acquisition Server will now be able to import and export data from LSL. A compatible LSL Export box has been introduced.
- Wavelet decompositions are supported
- EOG Artifact removal boxes added
- Magnitude Squared Coherence is now available in the Connectivity box
- Some drivers are now able to return the measurement units (e.g. microvolts). If you connect Measurement Unit stream from Acquisition Client to Signal Display, you can enable the unit display (in Toolbar).
- OSC Controller box: OpenViBE can now send commands to any OSC enabled target
- New drivers: MCS NVX, mBrainTrain Smarting
- Signal Display has been improved to handle better large amounts of channels and to give user more control over data scaling

Minor features

- Applications: Config tokens can be speficied to Designer & AS on the command line, using --define
- Drivers: Added calibration signal support to Gipsa's gUSBAmp driver
- Drivers: Telnet reader now supports arbitrary integer sampling rates
- Applications: Scenario .xmls contents no longer permute wildly across 'save scenario'
- Applications: Acquisition Server autoplay via config token
- Plugins: Channel Selector now supports Streamed Matrix type
- Plugins: Various improvements to CSV Writer: Added support for Streamed Matrix & Feature Vector, removed unused Compression setting, introduced setting to change the output precision
- Plugins: Unified all LDA type classifiers to one
- Designer: Box configurations can now change the number and type of entries based on user selections
- Designer: Added a popup on initilization error to Designer
- Linux: ADD launch option --memcheck for launch executable using valkyrie ( front-end for valgrind)
- Misc: All graphical assets (images & 3D models) in OpenViBE should now have acceptable licenses
- Toolkit: Added some low-order numeric stimuli (0-32, suitable for 1 byte communications using parallel port)

Protocol changes

- EBML streams now follow the EBML specification with a proper header and DTD

Tutorials & examples

- Tutorials: Added classification testing tutorial
- Tutorials: Added FastICA box tutorial
- Tutorials: Wavelet & EOG Denoising tutorial
- Examples: External Stimulation Connection example will now send 1 stim / sec
- Examples: Enabled Clock, Log and Nothing example boxes.

Notable fixes

- Drivers: Fixed impedance check jamming the gUSBAmp
- Drivers: Fixes to BrainVision Recorder driver / Fixed crash with multiple markers in a single message, Fixed memory leaks
- Drivers: Added more error checking to gUSBAmp gipsa driver
- Drivers: Fixes to BioSemi ActiveTwo driver
- Drivers: Minor fix to MBT Smarting driver
- Drivers: Fixed Acquisition Server crash with gtec gipsa driver
- Drivers: MCS NVX driver patch for situations with invalid signal values
- Drivers: Fixed handling of non-numeric markers in BrainVision Recorder driver. Additionally, fixed some of the repeating memory reallocations in the driver.
- Plugins: Refactored Signal Concatenation not to ruin stimuli chunk structure
- Plugins: Time Based Epoching no longer crashes if samplingrate is 0
- Plugins: Fixed crash in Temporal Filter box with too small chunk sizes
- Plugins: Fixed canvas space usage in Signal Display with Chn Selector
- Plugins: Signal Display now only draws the channels that are visible
- Plugins: Signal Display now detects if the signal sampling rate does not match chunk size/time properties
- Plugins: Fixes and tests for CSV file-io boxes
- Drivers: fixed stop crash in external stimulations occurring with Refa32B
- Plugins: Changed some boxes to print channel numbers using 1,2,... indexing
- Plugins: Added some checks for invalid xml file to Classifier Processor
- Plugins: Misc tweaks & code cleanup
- Plugins: Added forgotten initialize to Accuracy Measure
- Plugins: Fixed fractional band limits in Spectral Analysis
- Plugins: Fixed FFT/IFFT boxes to work with odd chunk sizes
- Plugins: CSV Reader and Writer boxes will now handle Feature Vectors ok
- Plugins: Fixed crashes in Stream Switch
- Plugins: Transposed the TCP Writer output
- Plugins: Fix bug in classification (pairwise strategy selection for OneVsOne, SVM output, Voting)
- Plugins: More boxes now properly restrict streams to the types they can support
- Plugins: Various bugfixes
- - Fixed old filename used in signal concatenation example
- - Added FFT decomposition tutorial scenario
- - Fixed unset sampling rate in Windowing Functions box
- - Code cleanup of IFFT box
- - Fixed keyboard stimulator from repeating the stimuli
- - Added some error checking to Spectral Analysis + code cleanup
- - Added input type restrictions to TCP Writer box
- Plugins: Fixed crash in signal concatenation
- Plugins: Removed CoSpectra box which did not seem to do anything
- Plugins: Added check for zero sampling rate to Time Based Epoching box
- Plugins: Fixed Signal Merger box not outputting the sampling rate
- Plugins: SignalDisplay : Remove redraw of all channel when stimulation is received. Was slowing down the box
- Plugins: Fix bug in topographic map display (mantis 97)
- Plugins: CSV file reader/writer : renamed default out/input (mantis issue 76)
- Plugins: Allow the automatic renaming of channel selector box based on channel list, mantis 64
- Plugins: External stimulations should now be passable to multiple clients
- Plugins: Fixed TCPWriter export of undefined stimuli
- Designer: Fixed issue with restoring nonsaved state
- Designer: Fix tab reordering issue.
- Designer : allow easier pick for line and easier connection between boxes.
- Designer: Restore the previous state of the log expander.
- Designer: Prevent any plugin windows to be displayed if no gui is active.
- Designer: Prevent from display the popup of warning in intialization mechanism if no-gui is active.
- Designer: fix for drag&drop scenario file on windows
- Designer: fix memory leak when getting Enumeration setting value (MANTIS issue #158)
- Designer: drag and drop scenario file in designer (MANTIS issue #48)
- Designer : fix display of boxes with name containing &
- Designer: Enable shortcuts after drag and drop a box.
- Designer will now return an error if it cannot open a scenario file for writing
- Applications: Fix Skeleton generator.
- Applications: Fixed issues with Skeleton Generator and spaces in paths
- Launchers: Fixed handling of spaces in Windows command arguments
- Build: Changed MicroMed dll search to look for VS2010 based lib
- Server: Fixed issue with too many stimuli sent in case of NaNs in the data
- - Fixed time placement of Correct/Incorrect stimuli in cases of NaNs
- Everything: Allowed compilation without GTK.
- Examples: Added memory deallocation to vrpn examples
- bugfix : kernel/Scheduler, Chunks accumulated at the inputs of muted boxes and were never cleared causing an increase in memory use over time
- bugfix : mantis 120. The same change may have to be introduced in other boxes as well
- Dependencies: Fixed GLFW3 dependency archive requiring Visual Studio debug dll

Source code reorganization, cleanup & build optimization

- Drivers: Moved the BrainProducts ActiCHamp driver from contrib/ to core
- Drivers: Moved TMSiSDK.dll to be an external dependency
- - fixed Refa32B include guards
- Drivers: Moved the remaining driver .dlls to be external dependencies
- Plugins: Moved the BioSemi ActiveTwo driver from contrib/ to core
- Plugins: Moved the TMSi driver from contrib/ to core
- Plugins: Code cleanup, removed some lingering unnecessary references to IReader.h
- Plugins: Moved some plugins from Samples/ category to more reasonable places
- Plugins: Removed a few more obsolete boxes
- Plugins: Changed output channel names of some boxes to be be more distinct / Boxes affected: FastICA, Noise Generator, Sinus Oscillator, Spatial Filter
- Plugins: Refactored CSV writer to use the time arithmetics class for conversions
- Plugins: Separated the Tests and Examples category into two
- Plugins: Removed some references to unnecessary headers
- Plugins: Factorize parameter management.
- Plugins: Avoid compilation of itpp code if itpp package is there but not at the right place.
- Plugins: Clean + remove old bliff classifier.
- Plugins: Remove itpp from dependencies of classification.
- Plugins: Moved Clock Stimulator box to the Stimulation category
- Plugins: Renamed obsolete references to SignalProcessingGpl namespace
- Source: All boxes now use the encoder/decoder approach
- Source: Lots of unused code removed; Automaton, Callbacks, various boxes
- Source: Renamed samples/ plugin path to data-generation/
- Build: Linux multicore build now adapts to the number of cores
- Build: Changed Windows build to use multiple cores
- Build: Differentiated between vs100 and vs90 lua
- Build: dropped Presage dependency on VS2008.
- Build: Improved LUA detection on Fedora20
- Build: Minor tweak to ITPP detection script
- Build: Updated VRPN dependency to 7.31
- Build: Made Ogre 3D optional (3D plugins not usable)
- Build: Made GTK optional (i.e. builds what is possible the build without GTK)
- Build: Fix ogre package install on ubuntu 14.10.
- Installer: Removed dependency on VS2005 and VS2008 redists
- Applications: Skeleton Generator no longer depends on sed
- Applications: Modified plugin inspector to provide a list of all registered boxes
- Designer: Removed SettingCollectionHelper.
- Everything: Reduced C11 dependencies
- Modules: Renamed system/ modules to avoid conflicts with system files e.g. Time.h -> ovCTime.h etc.
- Modules: Removed unused modules Automation and Stream
- Toolkit: After move to codecs, removed code of deprecated callbacks
- Documentation: Fixed generating the ERP Plot doc


- Tests: Added test for generic stream reader/writer
- Tests: Added Classifier tests
- Tests: Added CSV file IO tests
- Tests: Added an automatic test for EBML write and read
- Tests: Added a script to find out boxes that are not in any scenario (in test/)

Known issues

- CoAdapt P300 cannot be built with Visual Studio 2008 as we have not provided the corresponding vs90 dependencies: glfw, presage, inpout32
- Signal Display doesn't zoom labels when zooming the signal
- Loading classifier trainer settings in the box config does not correctly restore the parameters if the load changes the number of parameters (e.g. classifier or pairing strategy type changes)

Posts: 775
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: OpenViBE v1.0.0 is available!

Post by jtlindgren »

There is now a bugfix release 1.0.1 available. It has the following changes to 1.0.0,

Applications: Added some verbosity to VR Demo & fixed an unimportant memory leak
Application: bugfix: Fix a bug with the stimulation stream in the skeleton generator.
Application: bugifx: Edit the tips of the message interface in the skeleton generator.
Build: Enabled NSIS installer logging
Build: Fixed build without Ogre
Designer will now point to the version-specific web documentation
Documentation: Fixed version number in the generated doc. Its now automatically generated.
Drivers: Added include guards to LSL driver
Drivers: Fixed Generic Oscillator channel naming when > 4chns
Drivers: Inserted author information where it was missing
Examples: Added some instructions to the P300 scenarios
Examples: Fixed convert app to work with spaces in exe paths
Plugin: BugFix: The type stimulation is available in the python box.
Plugins: Fixed indexing in sign change detector
Plugins: GDF Reader no longer appends extra chunk
Plugins: Improved error handling for missing classifiers
Scenario: Fix wrong LDA id.
Tests: Added test for GDF Writer
Tutorials: Fixed lua stimulator tutorial (Mantis #172)