New release of OpenViBE 0.16.0 available

OpenViBE software releases, jobs and events
Posts: 239
Joined: Tue Nov 02, 2010 8:51 am
Location: Mensia Technologies Paris FR

New release of OpenViBE 0.16.0 available

Post by jlegeny »

The OpenViBE Team is pleased to announce a new release v0.16.0 of our software. It can be obtained from the downloads page.

If you're upgrading from a previous version, it is important to check the migration instructions here.

If you get OpenViBE from the SVN: The trunk address for 0.16.0 and later has changed. Please see details here.


Many thanks to our contributors for their continuous support.
  • - Anton Andreev (for upgraded Gtec driver from gipsa.lab)
    - NeuroSky (for contributing NeuroSky Mobile device for debugging)
    - Nicolas Bourdaud (for contributions to Debian packaging compatibility)
Release Highlights
  • - License has been changed to AGPLv3.

    - New build system with full Microsoft Visual Studio IDE support

    - New source code directory organization that is easier to grasp for new developers.

    - New EEG devices: NeuroSky Mindwave Mobile is now supported

    - New boxes: AutoRegressive Coefficients, Timeout, and Stimulus Voter

    - Source distribution includes files to build a basic Debian/Ubuntu/Mint binary package

    - Scores of bugfixes all across the board, fixing issues of varying severity.
The full changelog can be seen in the following post.

On behalf of the OpenViBE development team.

Posts: 239
Joined: Tue Nov 02, 2010 8:51 am
Location: Mensia Technologies Paris FR

Re: New release of OpenViBE 0.16.0 available

Post by jlegeny »

(trimmed changelog up to 19.jun.2013)

Upgrading from v0.15.0
- For thorough instructions, see here.
- User scenarios using "external application launcher" must be updated as the usage of the launcher has changed. See below.
- User subprojects such as applications and plugins that are not part of the OpenViBE distribution must be adapted to the new OpenViBE build system to compile. The transition should be relatively easy, as various components are picked up automatically by the build. See e.g. "applications/developer-tools/CMakeLists.txt" and "applications/developer-tools/id-generator/CMakeLists.txt" for examples.
- Some configuration tokens have changed their default values to avoid OpenVibe writing to non-user space of the filesystem.
${Path_Root} = Installation root directory
${Path_Data} = ${Path_Root}/share/openvibe/
${Path_UserData} = "$APPDATA/openvibe/" on Windows, "$HOME/.config/openvibe" on Linux
${Path_Log} = ${Path_UserData}/log
${Path_Tmp} = ${Path_UserData}/tmp
- #include <openvibe/ov_all.h> should now be #include <ov_all.h>

Version Highlights

General changes & new features
* OpenViBE license has been changed to AGPL-3
+ New boxes: AutoRegressive Features, Timeout, Stimulus Voter

Bug fixes
* Fixed incompatibility problems with NeuroSky MindWave Mobile
* Neurosky driver: Due to crashes related to calling both TG_Disconnect() and TG_FreeConnection() with MindWave Mobile, changed the conventions to only use TG_FreeConnection() and always ask for a new handle.
* NeuroSky Mindset loop() function: added timeouting if data is not received for a while. Prevents the server from freezing if the headset is disconnected.
* Fix for v1.8.0+ Ogre included e.g. in forthcoming Fedora 19.
* Bugfix: OpenViBE's VRPN analog client box was not correctly decoding multi-sample data as it is encoded by the OpenViBE VRPN server. Fixed.
* Fixed crashes and memory leaks in KeyboardStimulator in case its initialization failed.
* Fixed crashes and memory leaks in DisplayCueImage in case its initialization failed.
* Quick patch to Spectral Analysis not to crash if it computes a buffer size of 0.
* Fixed Win32 crashes related to calling Py_CLEAR on borrowed references
* Compilation fix for Ubuntu 13.04 about shm_open() missing. Patch was tested to pass compilation on Fedora 18 and Mint 13.
* Launching these apps will now properly create the log/ directory if it doesn't exist
* Fixed SSVEP demo default config to have the actually used colour tokens.

Changes revelant to OpenViBE packagers
+ Added debian/ folder that contains files to build an elementary OpenViBE Debian/Ubuntu/Mint package

Changes relevant to developers
* New OpenViBE build system supporting Visual Studio IDE
* New OpenViBE source tree structure
* A lot of small changes to alleviate Linux packaging and comformity to (Debian-derived) distro standards
* New ITimeArithmetics class to standardize time conversion computations between OpenViBE 32:32 fixed point and floats
* Header unification. The almost-duplicate headers used by many subprojects have been replaced by a few global headers in common/.

Some details & more minor changes,

* Acquisition Server build includes contributed drivers from contrib/
* All OpenViBE libraries and executables now have lowercase filenames in the filesystem
* The "-dynamic" postfix is no longer appended as dynamic linking is the default. Static builds still retain the "-static" postfix. Note also that the static-linking builds may have broken at some point as they're not used in devel/test cycle. Static linking can be fixed/supported later if needed (let us know).
* Launch scripts:
- The launch scripts are now called openvibe-*.
- On Linux, launch scripts (.sh extension) are only be used for development. There is no need to package them.
- On Linux, Openvibe-related environment path variables are not used by default, but they can be set in the (development) launch scripts if desired to override the install location set by CMake.
- On Windows, launch scripts (.cmd) are still needed and installed to install root.
- On Windows, only environment variable that remains is OV_PATH_ROOT, which the launch scripts set to their location in the filesystem. The install tree is assumed to be a fixed one in a known relative position to the location of each script.
* Directories.h: in case the OV_PATH_* ENV variables are not set, the path getters return locations defined by CMake and the install targets that were specified at build time
* Plugins.cfg of Ogre is now called openvibe-ogre-plugins.cfg and installed to "share/". Removed the executable bit from it.
* All OpenViBE subprojects now by default copy the version numbers from the global variables set in the main CMakeLists.txt. If you wish to maintain unique versions for a subproject, you can change the version in that project's own CMakeLists.txt.
* OpenViBE documentation is now built in a single pass along with the main package. However, this does not work on Visual Studio.
+ Added Boost_System and X11 dependencies to kernel as Linux packaging on Mint/Ubuntu ("lintian") was complaining of missing deps
+ Added FindThirdPartyBoost_System.cmake
+ Added FindThirdPartyPThreadsVCE2.cmake, changed acquisition server CMakeLists.txt to use it instead of hardcoding (FieldTrip driver relies on this on Win)
* CMake will now include *.hpp files as dependencies in the few cases they exist
* Unified and cleaned up the Linux CMake build so that it uses CMake variables for paths like the Windows build does, not environment variables.
+ added parameters to plugin inspector, it can now load plugins from arbitrary folders and dump folders can be specified from the command line
* Refactored most time->sample and sample->time computations to use the time arithmetics class in ovITimeArithmetics.h
* Language polish: Gloabal->Global, COMPILATOR->COMPILER
* Header unification. Background: Previously, almost identical type- and platform -defining header code has been copy-pasted all over the OpenViBE codebase. This is maintenance heavy, error prone if any changes are made, and an unnecessary cognitive load. This commit alleviates the issue by making the subprojects include two global headers instead of using their own definitions.
+ Added common/, a project for hosting definitions used by the different openvibe subprojects. Most important of these are the various basic numeric types.
* Renamed all OV*_API macros to OV_API, set by ov_common_defines.h
* Renamed all OV*_OS_* defines to TARGET_OS_*, set by CMake
* Renamed all OV*_BUILDTYPE_* defines to TARGET_BUILDTYPE_*, set by CMake
* Renamed all OV*_ARCHITECTURE_* defines to TARGET_ARCHITECTURE_*, set by CMake
* Renamed all OV*_COMPILER_* defines to TARGET_COMPILER_*, set by CMake
- Removed the pretty-much-duplicated type, target and API definitions from all subprojects. The projects now depend on the headers from common/ instead.
- Subprojects no longer make static assert checks on the numeric types, reducing their dependencies to Boost. Compiling common/ will perform these tests.
- External Application Launcher entry in openvibe.conf is now specified with a path token instead of ENV var.
- External Application Launcher now takes as a parameter the name of the actual openvibe executable(!), NOT the launcher script as before. This is to retain compatibility with Linux package that may not have the launcher scripts.
- INCOMPATIBILITY: This will introduce an issue with scenarios that have relied on the previous behaviour. This has been taken care of in scenarios included with OpenViBE.
* Updated README and INSTALL to contain a bit less of information that is likely to go stale.
* Lua scripts: removed the first line mentioning interpreter as it can be in different locations on different Linux distros. Also, these .lua files are not executed from a shell command line, so the line is not strictly needed.
* SSVEP-Demo: Converted the two separate launching scripts into one script that takes shooter/training as a parameter. This is because after Linux packaging, we have no launch scripts, but would still like the SSVEP scenario to be runnable from the package. SSVEP scenario makes the same external app call on Linux and Windows systems, but if we're on a Linux package there'll be just one executable, not two scripts.
* Fixed a show-stopping typo in classifier-training-flipswitch.lua
* Moved matroska_ebml_syntax.txt to modules/ebml/ from the share/ root.
* Designer default work path in openvibe.conf is now share/openvibe/scenarios/
* Moved "ovp_global_defines.h" to a more natural location in "common/include/". This has the benefit that the file comes to the scope of the build system and becomes visible in IDE source/header lists.
* Changed VRPN Analog Remote initialization to happen after we've setup the buffers of the client box.
* Restructured the code some for easier understandability.
* Added some debug printing.
* Dropped the VRPN channel amount to 8 as the simulator GUI also has only 8 channels.

For a complete list of changes please see the SVN log.