BCI2000 Binaries: Difference between revisions

From BCI2000 Wiki
Jump to navigation Jump to search
Line 55: Line 55:


'''Changes to contributed code:'''
'''Changes to contributed code:'''
*ModularEEG now compiles in v3 (removed mouse-modulation) (J. Hill)
*ModularEEG is now present in v3 (J. Hill)
*Changed executable name for NeuroscanAccessSDK source module from "Neuroscan.exe" to "NeuroscanAccess.exe" in order to avoid confusion with the Neuroscan Acquire client source module (which is called NeuroscanClient.exe).  
*Changed executable name for NeuroscanAccessSDK source module from "Neuroscan.exe" to "NeuroscanAccess.exe" in order to avoid confusion with the Neuroscan Acquire client source module (which is called NeuroscanClient.exe).  
*NIDAQ-MX source module now includes NIDAQ logging components written by J. Renga: [[Contributions:NIDAQLogger]] and [[Contributions:NIDAQFilter]]
*NIDAQ-MX source module now includes NIDAQ logging components written by J. Renga: [[Contributions:NIDAQLogger]] and [[Contributions:NIDAQFilter]]

Revision as of 15:39, 6 May 2011

Access

Access to BCI2000 is provided to users who have agreed to the terms of the GNU General Public License (GPL). Thus, you need a user account to download the binary version of BCI2000.

Latest Version

The latest binary version of BCI2000 is always available at

http://bci2000.org/downloads/bin/BCI2000Setup.exe

Dependencies

The original version 3 release build required VisualC++ runtime libraries to run. An installer for the runtime libraries may be downloaded from here: http://bci2000.org/downloads/bin/vcredist_x86.exe

Newer builds of BCI2000 don't have this dependency any more.

Contributed Code

BCI2000 modules from the contribution section are not part of the BCI2000 core distribution. Especially, this is the case for a number of source modules. For convenience, we provide an extended binary distribution that includes binary versions of BCI2000 contributions. This extended distribution is always built from the same source code version as the most recent core distribution, and is available at

http://bci2000.org/downloads/bin/BCI2000Contrib.exe

NOTE: While we do our best to maintain contributed code, we cannot promise that it is functional, nor provide extensive support. This is especially true in case of contributed source modules which we cannot test for functionality in the absence of the respective hardware. When you experience problems with contributed code, please contact the contributor indicated on the contribution's reference page (accessible through Contributions:Contents).

BCPy2000 Contribution

The extended distribution does not contain the BCPy2000 contribution. Rather, all required executables may be downloaded here.

Version History

Version 3 Builds

May 2011 Version 3.0.1

Latest changeset: 3261

New features in this version:

  • SignalGenerator, FilePlayback and PythonSource all now have the option of *not* checking realtime operation, 
since they may be used to play artificial signals in non-real time. 
(J. Hill)
  • Visualization windows now have a status bar; keyboard shortcuts to toggle filters between on and off (h, l, and n); keyboard shortcuts cycle through available filter settings (H, L, N).
  • Operator and tools now use application-local ini files rather than the registry to store settings.
  • bci_stream2mat now outputs ChannelLabels, ElementLabels, ElementValues, and ElementUnit in Matlab format (J. Hill)
  • bci_dat2stream now has a -p option: parameters are optionally read from a parameter file, overshadowing the ones previously read from the dat file 
 (J. Hill)
  • bci_stream2mat now outputs a string containing all the parameters found at the *beginning* of the stream (J. Hill)
  • A new Matlab function bci2000chain.m runs BCI2000 filters as a single linear process chain on the command line (J. Hill)
  • Custom-development bootstrapping for new source, sigproc and application modules (J. Hill)
  • Source modules now use a separate thread for writing data, avoiding data loss when the file is locked by another process (A. Wilson)
  • A change in the filter registration mechanism: Rather than being restricted to signal processing modules, Filter() statements (as well as PipeDefinition.cpp files) may now appear in any type of module, and will override all RegisterFilter() statements present in the module.
  • FFTFilter now displays frequency labels in its visualization windows.

Bug fixes in this version:

  • Updated buildmex to repair missing linker symbols, and to work with Matlab 2010b. (A. Wilson)
  • Fixed Preflight in gUSBampADC: Now SourceChList is checked properly when multiple amplifiers are connected.
  • P300Classifier is now able to deal with files recorded with StimulusPresentation.
  • ARFilter now allows a single frequency bin. (J. Hilll)
  • Fixed a bug in bci_filtertool: parameter properties would be read from the input stream rather than from the filter present in the tool.
  • Fixed compilation of mex files using Qt.
  • Made filter registration mechanism more stable when compiling with gcc.
  • Removed mex files from OfflineAnalysis directory; OfflineAnalysis now adds the BCI2000 mex file directory to its path. This is to avoid "function not found"-errors on non-win32 systems.
  • Visualization displays now show labels in field2d visualizations.

Changes to contributed code:

  • ModularEEG is now present in v3 (J. Hill)
  • Changed executable name for NeuroscanAccessSDK source module from "Neuroscan.exe" to "NeuroscanAccess.exe" in order to avoid confusion with the Neuroscan Acquire client source module (which is called NeuroscanClient.exe).
  • NIDAQ-MX source module now includes NIDAQ logging components written by J. Renga: Contributions:NIDAQLogger and Contributions:NIDAQFilter

February 2011 Version 3 Release Build

Latest changeset: 3113

Version 2 Builds

November 2010 Build

Latest changeset: 2990

Changes in this version:

  • Removed upper/lower bounds of 0 and 1 for the RandomSeed parameter, allowing for any parameter value.
  • Neuroscan Acquire client now translates event channel into states on a sample-by-sample basis rather than block-by-block.
  • Fixed "TestMode" parameter naming conflict between gMOBILab source and P3Speller (A. Wilson)
  • ARSignalProcessing module would use wrong bin when frequency was specified in Hz in the classifier, and first bin center was nonzero.
  • LinearClassifier now properly rounds channel and element indices when not exactly meeting an index.
  • save_bcidat now uses signal dimensions to infer the value of the SourceCh parameter rather than the SourceCh parameter in the parameter struct.

August 2010 Build

Latest changeset: 2932

Changes in this version:

  • SoundStimulus and SpeechStimulus objects now finish playback even when deleted (fixes some muted sound conditions in P3Speller and StimulusPresentation application modules).
  • Removed additional 1-block latency from state changes recorded via bcievents.
  • Update to P300Classifier (C.M. Potes)

June 2010 Build

Latest changeset: 2860

New features in this version:

  • Added lowpass option to SourceFilter which is present in a number of source modules (e.g. gMOBIlab source module).
  • P3TemporalFilter now uses the NumberOfSequences parameter when available to determine the number of epochs to average.

Bug fixes in this version:

  • bci_dat2stream now uses float32 format when providing calibrated output signal.
  • Fixed a bug in TransmissionFilter and SpatialFilter which would lead to channel numbers being forwarded as channel labels.
  • P300Classifier does not crash any more when it is unable to generate feature weights. (C.M. Potes)
  • Operator modules' "Load Matrix" button now works correctly with values containing escape characters.

Changes to contributed code:

  • vAmp source module:
    • Impedance mode now works with vAmp8; better stability in impedance mode. (J Mellinger)
    • Impedances are now shown on the amplifier's display rather than a window. (J Mellinger)
    • Code concerning multi-amp use mostly removed (vAmp doesn´t support multi-Amp use) (M. Schatt)
    • Parameters that make only sense when using several amps have been removed ("DeviceIds", "SourceChDevices") (M. Schatt)
    • Improvements to Impedance view: Update the vAmp-Display less frequently. 
(M. Schatt)
    • Use return values of Impedance API functions to improve error handling and prevent crashes. (M. Schatt)

April 2010 Version 2.1 Release Build

Latest changeset: 2770

New features in this version:

  • Operator module now allows for saving of matrices in parameter format, and allows to specify empty matrices in the GUI.

Bug fixes in this version:

  • Fixed usability issues in BCI2000Viewer (arrow keys should now work as expected).
  • Fixed a bug that could lead to enabled start button even when an initialization error occurred.
  • INSERT STATE operator script command is now consistent with documentation: name, bit width, and initial value are sufficient to specify a state.
  • Pre-run duration in StimulusPresentation and P3Speller applications was one block longer than defined by the user.
  • Floating point exceptions are now masked in all modules. This should result in more stable behavior during recording.
  • P3Speller no longer crashes when text-to-speech output is configured for matrix elements.
  • buildmex Matlab script now works on Win64 systems.
  • OfflineAnalysis now runs on Win64 systems.
  • MEM mex file usage info now contains correct input signal dimensions.

Changes to contributed code:

  • Fixed a potential problem with the DASSource when initializing an unknown board.
  • Fixed a reinitialization bug in the Biosemi source module. Now, pressing SetConfig more than once works (G Schalk).
  • Amp Server Pro now works with GM version 1 release (R Bell).
  • Fixed anti-aliasing filter and high pass configuration in vAmp source module (A Wilson).
  • Tucker-Davis source module now uses threading (A Wilson).

February 2010 Build

Latest changeset: 2671

Bug fixes in this version:

  • Operator scripts now correctly report failure when an invalid state line is given.
  • Drag-and-drop batch files in the command line directory will now work more reliably.
  • Image stimuli are now displayed correctly for an AspectRatioMode of AdjustBoth.
  • Win32 mex files now have a mexw32 extension.

Changes to contributed code:

  • RDAClient works more reliable for higher sampling rates and larger numbers of channels.

December 2009 Build

Latest changeset: 2630

Bug fixes in this version:

  • Fixed broken EEGLabImport contribution.

November 2009 Build

Latest changeset: 2606

Bug fixes in this version:

  • Mouse and joystick logging will now correctly record initial position at the beginning of a run.

Changes to contributed code:

  • A number of bugfixes and improvements to the TMSi source module (J. Hill).

August 2009 Build

Latest changeset: 2514

Bug fixes in this version:

  • Fixed treatment of state names beginning with "Signal" in ConnectorInput filter.
  • Fixed computation of SelectedRow/SelectedColumn states in P3SpellerTask.
  • Fixed BCI2000 Export tool which was broken in the previous bindist.
  • Improved robustness against undocumented data packets in RDAClient.
  • Fixed a number of issues in user tutorials.

New features in this version:

  • New split_bcidat contribution allows splitting large dat files into smaller ones to work around 2GB file size limit when loading dat files.
  • Matlab-independent P300 classifier tool replaces P300GUI contribution.

June 2009 Build

Latest changeset: 2421

Bug fixes in this version

  • P3Speller application log now correctly counts the number of intensifications.
  • Inconsistent parameters no longer cause ARFilter::Preflight to hang.
  • P3Speller sleep mode now works as documented (requires two "SLEEP" selections in a row to unsleep).

Changes to contributed code:

  • Biosemi: Fixed bugged trigger masks and added functionality for "downsampling" the trigger signal 
(for each bit, all samples over the decimation period are logical-ORred together) (J. Hill)
  • Biosemi: Added the option to specify the TriggerChList? as a single '0', which means "read all triggers as a 16-bit integer" (J. Hill)

May 2009 Build

Latest changeset: 2355

Changes in this version:

  • Added an offset of 32768 to mouse coordinates recorded by the KeyLogger component.

Bug fixes in this version

  • Fixed AlignChannels parameter in gUSBamp.prm parameter fragment.
  • A number of minor bug fixes related to ERP visualization in the P3TemporalFilter.
  • P3TemporalFilter no longer crashes when an invalid channel is specified in TargetERPChannel parameter.

Changes to contributed code:

  • Renamed getparams tool to RDAgetparams
  • Contrib distribution now contains neurogetparams tool.

April 2009 Build

Latest changeset: 2342

Changes in this version:

  • Updated load_bcidat copies in tools directories to latest version.
  • Various improvements to gUSBamp source module (JA Wilson).

Changes to contributed code:

  • Renamed load_bcidat in EEGlabImport to avoid version conflicts.
  • P300GUI is now more robust in case the system was suspended before a run was complete (J Temprano).

February 2009 Build

Latest changeset: 2245

Changes in this version:

  • Improvements to gUSBamp source (A Wilson).
  • Operator Module: Improved timing behavior when clicking window titles.
  • CursorTask: TargetCode and ResultCode states are now 8 bits wide, allowing for a maximum of 255 targets.
  • Asynchronous events recorded into bcievent are now available for online processing.

Changes to contributed code:

  • RDAClient and Biosemi2 source modules now compile under cygwin gcc 3 in mingw mode (J Hill).
  • DateGlove5DTUFilter now supports the 5DT Data Glove 14 Ultra as well (P Brunner).

Bug fixes in this version:

  • The Normalizer filter would ignore BufferCondition entries under certain circumstances.
  • load_bcidat mex file would perform conversion of nested matrices into Matlab structs incorrectly.
  • Recording of cursor position by CursorTask into state variables did not match specification.
  • StimulusPresentationTask did not handle empty image and sound file entries correctly.

December 2008 Build

Latest changeset: 2209

Changes in this version:

  • Some issues in runtime/component deployment have been fixed in the Offline Analysis tool (J Fialkoff).
  • Choosing Help->BCI2000 Help should be more reliable now.
  • FIRFilter has been rewritten to simplify configuration.
  • RDAClient (BrainVision) source module now issues a notification rather than a runtime error when blocks are out-of-sequence.

November 2008 Build

Latest changeset: 2200

Enhancements in this version:

  • P300 and Mu rhythm examples and tutorials use new SpatialFilter options.

Enhancements to contributed code:

  • Biosemi source module:
    • Support for an auxiliary Analog Input Box (AIB),
    • Simplified/more consistent parameterization,
    • Subsampling now uses averaging (J Hill).
  • P300 GUI has been updated to use a current version of load_bcidat (S Halder).
  • A number of enhancements and bug fixes to BCPy2000 (J Hill). (Note: BCPy2000 is not part of the BCI2000 binary distribution.)

Bug fixes in this version:

  • AmpServerPro source module: Data could be scrambled due to an endianness issue.
  • Biosemi source module:
    • Fixed bug with determination of battery status (J Hill),
    • Fixed "mode changed from 4 to 0" error; fixed battery warning (ML Blefari).
  • Source display now avoids artifacts induced by reduced numeric resolution for signals with large DC offsets.
  • Application modules: Worked around a window positioning issue with recent versions of the Borland VCL (reported by A Wilson and G Sudre).
  • Various issues with the OfflineAnalysis tool (J Fialkoff).
  • Improvements to configuration consistency and stability of the FFTFilter.
  • Fixed a potiential CursorTask crash on program exit.
  • Microsoft compilers no longer link mex files against debug libraries (J Roland).
  • Fixed a bug in a LinearClassifier::Preflight() range check; improved LinearClassifier configuration error messages.
  • Application modules' run statistics are now reset when starting a new run.
  • When logging mouse position, initial mouse position at the beginning of a run will be recorded.
  • Events recorded during the first data block are no longer reset at the beginning of the second block.
  • Event recording no longer stops on SourceTime state wraparound (reported by G Milsap).
  • gUSBamp source module uses modified buffering scheme to avoid losing data (A Wilson).

October 2008 Build

Latest changeset: 2152

Enhancements in this version:

  • Example files are now more consistent with state names in BCI2000 v2 (J Fialkoff).
  • Binary mex files for 64-bit Windows XP (D Krusienski).

Newly contributed code in this version:

  • Source module for BrainProducts V-Amp (A Wilson).
  • BCPy2000: write BCI2000 modules in the Python scripting language (J Hill, Th Schreiner, C Puzicha, J Farquhar).

Bug fixes in this version:

  • AmpServerPro source module now uses float32 data type for output (J Fialkoff).
  • A parameter would be treated as changed when read from the StopRun function (reported by J Hill).
  • The FilterDesign class would mistakenly report an error for valid corner frequencies in Butterworth and Chebyshev filters (reported by A Wilson).
  • Activating the ConnectorInput filer with an empty input filter list would cause an exception (reported by aloplop).
  • Ill-formed input would cause ConnectorInput to hang.
  • P300GUI > r2142 would incorrectly treat the case of a single input file.
  • Audio stimuli for matrix rows/columns would be incorrectly associated with row/column flashes in P300 speller (reported by ariel).

August 2008 Build

Latest changeset: 2104

New features in this version:

  • Operator visualization windows now have a zoom function in their context menus ("More Samples"/"Fewer Samples").
  • A number of additional keyboard shortcuts in the Operator Module's visualization windows, and in BCI2000Viewer (contributed by Jeremy Hill).
  • The CursorTask application module now allows to specify the number of trials rather than a run's duration (Adam Wilson).
  • Updated SpatialFilter to include a CAR, sparse, and empty matrix options (Adam Wilson).
  • Updated support of GDF file format to version 2.10 of the GDF specification. BCI2000 parameters are now documented inside GDF files.
  • A. Wilson's EEGLabImport tool is now present in the binary distribution (formerly, it was part of the source distribution).
  • Added a DebugLog option to direct bcidbg messages into log files.

Bug fixes in this version:

  • Fixed a number of issues in the save_bcidat mex file.
  • Examples in BCI2000/data/samplefiles now follow Parameter and State naming conventions from BCI2000 Version 2.
  • Fixed a one-off error in the source signal display (reported by Jeremy Hill).
  • The ARFilter would hang for certain data triggering an infinite loop in extlib/math/Ratpoly::Evaluate().
  • Fixed an additional artifact/channel permutation problem in gMOBIlab and gMOBIlabPlus ADCs (thanks to Peter Brunner for testing).
  • Some bug fixes to the P300Analysis tool (Peter Brunner).
  • Some bug fixes to the OfflineAnalysis tool (Josh Fialkoff).
  • Sometimes, BCI2000 could block when pressing Start after SetConfig (reported by Peter Brunner)

New in the Contributions section:

  • Created a FieldTripBuffer filter, connecting BCI2000 to FieldTrip Realtime Agents (Robert Oostenveld, Jürgen Mellinger)
  • A source module acquiring data from EGI's AmpServerPro (Josh Fialkoff).
  • Micromed Source module update: support for digital trigger packets, priority, note output to textfile; improved error handling (Erik Aarnoutse)

May 2008 Build

Latest changeset: 1987

New features in this version:

  • State variables may now be set and read for individual samples rather than entire sample blocks.
  • Threads within BCI2000 modules may now record asynchronous events into state variables at single-sample time resolution.
  • Mouse, Keyboard, and Joystick events are now recorded at single-sample time resolution by the source module when requested from the command line.
  • Added a NumericValue field to the Matlab parameter struct returned by load_bcidat.

Bug fixes in this version:

  • Fixed occasional channel swapping in gMOBIlab source modules (fix contributed by George Townsend).
  • Fixed "TransmitChList out of range" message when specifying channels by labels in TransmitChList.

Apr 2008 Build

Latest changeset: 1921

New features in this version:

  • Support for the gMOBIlab+ amplifier.
  • The MatlabFilter now allows choosing Matlab's working directory at startup, and has an option to leave the Matlab window open when quitting BCI2000.
  • Added JoystickFilter to the CursorTask application module's default configuration.
  • Introduced the ExpressionFilter into the ARSignalProcessing module's default configuration.
  • Modified Expression class to handle 1-based offsets, physical units and labels in expressions.
  • Added an option to invert the background in the operator module's signal display windows, and in BCI2000Viewer.

Bug fixes in this version:

  • Adding parameters and states from filter constructors will not overwrite existing parameter values any more (mostly affects command line tools).
  • Fixed error in convert_bciprm that would change the type of list parameters to "matrix" when converting into parameter strings.
  • A number of minor bug fixes and modifications to the OfflineAnalysis tool.
  • EEGlabImport tool now makes sure that the imported signal is of "single" data type.

Mar 2008 Build

Latest changeset: 1828

New features in this version:

  • The operator module's parameter configuration window now has a help button. Clicking on the help button, and then on a parameter's name, will open the corresponding help file in a browser window.
  • There is now an 8 channel CAR filter parameter fragment provided in parms/fragments/spatial_filters.
  • The application log window has been re-introduced into the P3SpellerTask.

Bug fixes in this version:

  • The load_bcimat Matlab function would scramble 3-dimensional data.
  • Under rare conditions, visualization windows would move across the screen by themselves.
  • The P3TemporalFilter's visualization display would always display zero data.

Feb 2008 Build

Latest changeset: 1790

New features in this version:

  • The CursorTask application module now uses fast 2D drawing when RenderingQuality is set to "low", and only uses OpenGL rendering when quality is set to "high".
  • It is now possible to display a downsized copy of the subject's application window in an operator visualization window.
  • Command line tools have been updated to support propagation of signal units as introduced in Version 2.

Bug fixes in this version:

  • Parameters updated in the GenericFilter::StopRun() function would not be propagated to the operator module. Most notably, the Normalizer's adapted offsets and gains would not be reflected in the operator module's parameter dialog. This has been fixed.
  • A number of minor fixes in the OfflineAnalysis tool.

Jan 2008 Version 2 Release Build

Latest changeset: 1746


Version 2 Preview Builds

Nov 2007 Build (changeset 1646)

Oct 2007 Build (changeset 1577)


Version 1 Builds

Jul 2007 Build (changeset 1401)

Apr 2007 Build (changeset 1299)

Jan 2007 Build (changeset 1255)

Dec 2006 Build (changeset 1183)

Jun 2006 Build (changeset 1135)