New release of OpenViBE 0.15.0 available

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

New release of OpenViBE 0.15.0 available

Post by jlegeny »

The OpenViBE Team is proud to announce a new release of our software. The new version is 0.15.0 and can be downloaded on the Downloads page: http://openvibe.inria.fr/downloads/

Contributors

Many thanks to our contributors for their continuos support.

- Mensia Technologies (BrainMaster Atlantis and Discovery drivers, BrainProducts ActiCHamp driver)
- Anton Andreev (software tagging capabilities of the Acquisition Server)

Release Notes

OpenViBE gets support for more EEG devices

BrainProducts ActiCHamp

Mensia Technologies has developed a driver for the BrainProducts ActiCHamp device. For the documentation please visit the BrainProducts ActiCHamp documentation page.

BrainMaster Atlantis and Discovery

Mensia Technologies has also developed a driver for BrainMaster acquisition devices: Atlantis and Discovery. If you are interested in using this driver, please look at the BrainMaster Atlantis and Discovery documentation page.

Send stimulations from your application to Acquisition Server

With the External Stimulation feature it is now possible to send stimulations from any c++ application directly to the Acquisition Server which will embed them into the signal acquired from the EEG device. To learn more about this feature please visit the External Stimulation documentation page.

Self-contained scenario configuration

You can now reference files that reside inside the folder of the opened scenario. The $__volatile_ScenarioDir configuration token will always expand to the path of the folder of the current scenario.

The full changelog can be seen in the following post.

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

Re: New release of OpenViBE 0.15.0 available

Post by jlegeny »

Created tag 0.15.0 r3327-3394 consisting of following changes

openvibe-applications/acquisition-server
* ovasCDriverEmotivEPOC.cpp : fixed the "double connect" bug happening on Windows Installer version (you had to connect twice to get the connection working).
* ovasCDriverEmotivEPOC.cpp : improved the PATH modification on Windows so that the PATH is not set everytime the initialize function is called.
+ ovasTCustomConcurrentQueue.h : queue threaded for concurrent access
* ovasCDriverGTecGUSBamp : threading added for the acquisition loop. This solves the disconnection issue when experiencing a computer freeze (when leaving a fullscreen app for example). The threading of the device acquisition loop seems to prevent the lost of a packet at that moment (128 bytes missing, then connection is broken for further packets). This problem has to be investigated to identify the source of the problem (may be in gtec SDK).
* ovasCDriverGTecGUSBamp, ovasTCustomConcurrentQueue.h : identification of the contributions made by Anton Andreev (Gipsa-lab). This includes the event channel feature and the threading of GT_GetData.
* ovasCDriverGTecGUSBamp : added mutex lock when accessing the m_bIsThreadRunning member, to prevent a possible crash. The stop function will wait that the current acquisition loop is complete to stop the acquisition thread.
* ovasCDriverGTecGUSBamp : revert all latest changes, trunk back in rev3347. The current development (threading, etc.) is moved to a proper branch for cross-development with contributor Anton Andreev (Gipsa-lab).
+ added community contribution : Brainaster driver for Atlantis 2x2, Atlantis 4x4 and Discovery 24E
* removed the multiplication factor from the fieldtrip driver (patch by Aurelien van Langhenhove)
* turned atlantis driver default to 24 bits instead of 8 bits - 8/16 bits have bad behavior with Atlantis 4x4 - this should be fixed by Brainmaster at the Brainmaster DLL level
* fixed EEG channels 3 & 4 flat line issue on Brainmaster Atlantis 4x4 - Needed a magic byte code from Brainmaster
merged branch wip-jlegeny-software-tagging -r3262:3387 to trunk resulting in following changes
+ added initial files created by Anton Andreev to implement the triggers from an external application
+ added a configuration token for the name of the message queue
- [ovasTCustomConcurrentQueue.h] removed old headers which are no longer used
+ added a configuration object to the Generic Oscilator
+ added a configuration token for the Generic Oscilator, it is now possible to turn stimulations it sends on and off (useful for debugging the software tagging)
- commented out some debug output in the software tagging code

cmake-modules:
+ FindThirdPartyActiCHampAPI.cmake : cmake script to find the actiCHAmp dependency (contribution from Mensia Tech.)
openvibe-applications/acquisition-server:
+ src/brainproducts-actichamp/ovasCDriverBrainProductsActiCHamp.h/cpp : actiCHamp driver for openvibe (contribution from Mensia Tech.)
+ src/brainproducts-actichamp/ovasCConfigurationBrainProductsActiCHamp.h/cpp : actiCHamp config for the driver (contribution from Mensia Tech.)
+ share/openvibe-applications/acquisition-server/filters/ALL : filter coefficients for the actiCHamp driver. This driver uses FIR filters to decimate the signal from 5kHz to the usual openvibe frequencies (eg 512). Filter coefs are generated using python and saved in binary dumps. (contribution from Mensia Tech.)
+ share/openvibe-applications/acquisition-server/interface-BrainProducts-ActiCHamp.ui : gtk user interface file for the actiCHamp driver (contribution from Mensia Tech.)
+ share/openvibe-applications/acquisition-server/easycap-64ch-electrode-names-10-20.txt : electrode names for the easyCap 64 channels delivered with the actiCHamp (fixed topology) (contribution from Mensia Tech.)
+ share/openvibe-applications/acquisition-server/ov-channel-rename-easycap-64ch.cfg : Channel Rename box configuration file for the easyCap 64 channels. (contribution from Mensia Tech)
* src/ovasCAcquisitionServer.cpp/h : you can now set the inner latency of a driver using a driver context function setInnerLatencySampleCount(). Used in the actiCHamp driver as the FIR filters induce a 50ms fixed delay. Drift correction takes in account this inner latency. (contribution from Mensia Tech.)
* src/ovasIDriver.h : setInnerLatencySampleCount added and documented
* src/ovasCAcquisitionServerGUI.cpp : actiChamp driver added in the main GUI (contribution from Mensia Tech.)
openvibe-toolkit:
* src/openvibe-toolkit/ovtk_defines.h : added new stimulations (button pressed and released - 1 to 4). Used for the actiChamp MyButton special trigger. (contribution from Mensia Tech.)
* src/ovtk_main.cpp : registered new stimulations and their names (button pressed and released - 1 to 4). Used for the actiChamp MyButton special trigger. (contribution from Mensia Tech.)
openvibe-kernel:
* share/openvibe.conf : added a token to manually set the impedance threshold of the built-in impedance checker in openvibe (bad/good imp) (contribution Mensia Tech.)
* FindThirdPartyActiCHampAPI.cmake : added LGPL/Author header
openvibe-applications/acquisition-server
* ovasCConfigurationBrainProductsActiCHamp.cpp/h : added LGPL/Author header
* ovasCDriverBrainProductsActiCHamp.cpp/h : added LGPL/Author header

openvibe-applications/designer:
* interface.ui : fixed the issue that prevented you from renaming windows and tabs in the Designer's Window Manager
* Changed Designer to create and store a configation token for scenario path when a scenario is loaded or saved-as. The token is identified by the scenario identifier. Code originally contributed by Loic Mahe.
openvibe-kernel-omk:
* kernel: when scenario playback is started, looks for a scenario-specific config token specifying the scenario working directory (assumed to have been stored when the scenario was loaded to memory or saved), and tries to append 'scenario.conf' from that directory. Also, it generates a local configuration token called __volatile_ScenarioDir that specifies the working dir. This token is meant to be read by scenarios. Code originally contributed by Loic Mahe.
* kernel: Fixed issue with local and delayed conf files getting appended to the global (parent) configuration manager instead of the scenario's local manager.
* Changed Designer to create and store a configation token for scenario path when a scenario is loaded or saved-as. The token is identified by the scenario identifier. Code originally contributed by Loic Mahe.

openvibe-applications/external-stimulation-connection-example:
+ created a new project for an example use of the external stimulations sent to the acquisition server
+ added openvibeStimulationConnection.hpp which contains the API necessary to connect to the acquisition server
+ added an example implementation in ovesce_main.cpp
+ added a CMake project file

openvibe-application/skeleton-generator:
* minor bug fix with the clock frequency (nLL<<32)

openvibe-applications/vr-demo/handball
+ resources.cfg-base : the handball launch script on Windows expects to find this file

openvibe-documentation:
- removed deprecated documentation files
- removed old css, header and footer
+ added a simplified version of the css file and html templates
+ added back the header and footer which was missing

openvibe-kernel:
- commented out several debug messages to make the log file less verbose
+ added configure function to File and Console Log managers
* changed FileLog listener to a stream
- removed multiple configuration manager accesses from the log listeners

openvibe-kernel-omk:
* added configuration tokens for external software stimulations
* kernel: when scenario playback is started, looks for a scenario-specific config token specifying the scenario working directory (assumed to have been stored when the scenario was loaded to memory or saved), and tries to append 'scenario.conf' from that directory. Also, it generates a local configuration token called __volatile_ScenarioDir that specifies the working dir. This token is meant to be read by scenarios. Code originally contributed by Loic Mahe.
* kernel: Fixed issue with local and delayed conf files getting appended to the global (parent) configuration manager instead of the scenario's local manager.

openvibe-modules/system:
openvibe-plugins/signal-processing:
+ added a flag to System::Memory::copy which enables the usage of memmove instead of memcpy
* modified the ovpCTimeBasedEpoching to use memmove at places where buffers are overlapping
- removed the bMove flag from the copy function in System::Memory
+ added a System::Memory:move function using memmove
* modified the CTimeBasedEpoching to use the new move function

openvibe-plugins/file-io:
* ovpCBoxAlgorithmGenericStreamWriter.h : changed default setting "use compression" to false. Complaints about the warning message always displayed (compression not implemented).
* ovpCBoxAlgorithmGenericStreamWriter : re-enable compression as default setting, but changed the log level of the msg from warning to info. Some unexperienced users were disturbed by these warnings and reported them.

openvibe-plugins/matlab
* ovpCBoxAlgorithmMatlabScripting.cpp : fixed the "double play" bug happening on Windows Installer version (you had to play twice a scenario with matlab box to find matlab DLL).
* all : improved the PATH modification on Windows so that the PATH is not set everytime the initilize function is called.
* ovpCBoxAlgorithmMatlabFilter.cpp : fixed issue with Windows not finding Matlab if the specified path didn't end in /. Also added conversion of / paths to \ style paths.
* ovpCBoxAlgorithmMatlabScripting.cpp : fixed issue with Windows not finding Matlab if the specified path didn't end in /. Also added conversion of / paths to \ style paths. Fixed an exit crash issue when init failed.

openvibe-scenarios:
* motor-imagery : fixed the inconsistency between the example data and the Lua scripts that provides the stimulation (the train trigger was not the same in both conditions)
* bci-motor-imagery.ov : added to the end of file the stimulation OVTK_StimulationId_Train.
* motor-imagery-bci-4-online.xml; motor-imagery-bci-5-replay.xml : changed the identity IO type from signal to streamed matrix. users were unable to connect it to the classification state output of the classifier.

Locked