BioEra

 

Updated on July 4, 2008. The most recent version of this manual can be accessed here.

 

Introduction. 7

Installation. 7

Biofeedback device. 8

DVD. 8

MIDI 8

Hardware requirements 8

Upgrades 9

3D graphics 9

Supported devices 9

User interface. 10

Designer 10

Runtime. 10

Examples 10

Architecture. 11

Run modes 11

Create bio-design. 11

Pipes 11

Vector streams 12

Event inputs/outputs 12

Filters 12

Compare filters with FFT. 12

Controls 12

Interactors 13

Signal parameters on element level 13

System settings 13

Design settings 14

Signed design. 16

Element status 16

Scales 16

Amplitude. 16

Time. 17

Processing and initialization order 17

Graphics and performance. 18

Access to serial port 18

Mac OS X. 18

Command line options 18

Colors 19

Averaging functions 19

Tools 19

Video. 19

Integers versus float values 19

Float calculations on Integers 20

Border 20

Nested designs 20

Create nested design. 21

Add nested design. 21

Chart properties 21

General Tab. 21

Colors Tab. 22

Pen properties 22

Rendering hints 22

Color properties dialog. 22

Signal properties 23

Advanced properties 23

General Tab. 24

Signal properties Tab. 24

Java platofrm. 24

Java performance. 24

On PDA. 25

Elements 25

ActivityDetector 25

ApplicationPlayer 26

BarDisplay. 26

BrainMaster 26

BTGP38. 27

Button. 27

CMixer 27

ColorChartSensor 27

ColorSet 28

ComboToolbarControl 28

ComplexFFTTransform. 28

ComplexToVector 28

ComplexTransform. 29

ComponentInteractor 29

Counter 29

CustomInteractor 29

DAQ6008. 29

DayTimer 30

DayTimeCoincidence. 30

DebuggerElement 30

Decimator 30

Delay. 30

Demultiplexer 30

DesignInteractor 31

DeviceSet 31

DialogComboList 31

DialogText 31

DVDPlayer 32

EDFFileReader 33

EDFFileWriter 33

EEGNeuroAmp. 34

ElementArray. 34

ElementInteractor 34

Evaluator 34

ExcelFileReader 35

ExcelFileWriter 36

ExpressionEvaluator 36

ExternalSource. 37

FFTTransform. 37

FFT2Transform. 38

FileStorageSource. 38

FileStorageWriter 39

Filter 39

FlashPlayer 39

FloatToScalar 40

Formatter 40

GainInteractor 40

Generator 40

GroupInteractor 41

GroupPropertySet 41

HotSpotMouseSensor 42

IconToolbarControl 42

ImageDisplay. 42

ImageMixer 43

ImageSource. 43

ImageSequencer 43

ImageToMatrix. 43

ImageTransform. 43

InputText 43

InteractiveScalarSource. 43

Iterator 44

JandJ. 44

KeyboardAdvSource. 44

KeyboardSource. 44

KeyInteractor 44

KeyAdvSelector 45

KeySelector 45

Lamp. 45

Lightstone. 45

LogicalMixer 46

LogicalMixerM. 46

MatrixToImage. 46

MatrixTransform. 46

MediaPlayer 46

MenuItemControl 46

MenuListControl 47

MF_Temperature. 47

MIDI 47

MindMaster 48

Mixer 48

MixerM. 49

ModEEG_P2. 49

ModEEG_P3. 49

ModEEG_v21. 49

MouseAdvPosition. 49

MouseChartSensor 49

MouseInteractor 50

Multiplexer 50

NestedDesign. 50

NestedInputs 51

NestedOutputs 51

NestedProperties 51

NetworkClient 51

NetworkServer 52

Neurobit 52

NeuroServerSource. 52

NeuroServerWriter 52

NeuroSync. 52

NeuroSyncRemontage. 52

Nonin4100. 52

Notice. 53

NoticeYesNo. 53

NumericDisplay. 53

ObjectCompare. 53

ObjectCounter 53

ObjectDebugger 53

OrbitalDisplay. 54

Oscilloscope. 54

Displayable range. 55

OscilloscopeXY. 56

OSInfo. 56

OSInteractor 56

PatternRunner 57

PatternTrainer 57

PCMAudioPlayer 58

PCMAudioSource. 58

PCMMixer 58

PET. 58

PianoKeyboard. 59

Pocket-EEG/HEG. 59

Pendant mode. 59

Polygraph. 60

ProgressBarDisplay. 60

PropertyBuilder 60

PropertyGetter 61

PropertySetter 61

RangeFilter 62

RangeMapper 62

RateLimiter 62

RawFileReader 62

RawFileWriter 63

Resampler 63

RouteGame. 63

RuntimePanel 63

QPET. 63

ScalarBuffer 64

ScalarCrossTimeRatio. 65

ScalarCrossTransform. 65

ScalarInstantTransform. 65

ScalarSet 65

ScalarShifter 66

ScalarSingleMap. 66

ScalarTimeRatio. 66

ScalarTimeTransform. 66

ScalarToLogical 67

ScalarToText 67

ScalarsToVector 67

Selector 68

ScalarValue. 68

Sequencer 68

SerialDevice. 69

SerialPort 69

SetSignalParameters 69

Slider 70

SoundFileReader 70

SourceSelector 70

Status 70

StatusML. 70

SimulationSource. 71

SteppedSoundFileReader 71

SteppedSoundPlayer 72

StreamToVector 72

StreamToVector2. 72

SubVector 73

SubVector2. 73

Synchronizer 73

Switch. 74

SystemEventSource. 74

SystemInteractor 74

TextDisplay. 75

TextFileReader 75

TextFileWriter 75

TextToLogical 75

TextToScalar 75

TextTransform. 75

TextSet 76

TextValue. 76

Threshold. 76

TimeInterval 76

Timer 77

TimeRangeFilter 77

TimeSource. 77

ToggleButton. 77

Toolbar 77

Valve. 78

Vector2Transform. 78

Vector3DDisplay. 78

VectorBuffer 78

VectorCrossTransform. 79

VectorConstant 79

VectorConcatenator 79

VectorDisplay. 79

VectorInstantTransform. 80

VectorLineDisplay. 80

VectorMixer 80

VectorStorageSource. 80

VectorStorageWriter 80

VectorSTransform. 81

VectorTimeTransform. 81

VectorToComplex. 81

VectorToScalar 81

VectorValue. 82

VideoCameraImageSource. 82

VideoCameraRecorder 82

VideoFileImageSource. 82

VideoFileImageWriter 82

VideoFilePlayer 82

VideoScreenImageSource. 83

VLCPlayer 83

WiTilt 83

WMVideoFilePlayer 83

WavFileWriter 83

XmlFileReader 84

XmlNetController 84

XmlNetServer 85

Support 85

Debugging and problems 85

Troubleshooting. 85

Feedback and comment is welcome. 85

New versions 86

Related links 86

Copyright notice. 86

 

 

Introduction

 

BioEra is a visual designer for analyzing bio-signals in real time. It is usually used together with bio-signal device which has an ability to send data to a computer via USB, wireless or other media.

 

BioEra provides mechanisms to create designs. A design is a signal flow model from input (e.g. biofeedback device) to output (e.g. visual or sound feedback). The signal flow can be modified using built-in objects (elements). There are hundreds built-in elements and functions that can be used to modify the signal flow.

 

BioEra is a tool which allows virtually any type of processing type. To create a design no programming language is required, only understanding of the process and requirements.

 

BioEra usually performs as a real time processor on digital signals arriving from a biofeedback device. But it is also possible to read data from an archive files, simulators or data sources connected via network. To read from archive files (EDF) use EDFFileReader.

 

Installation

 

BioEra installer is very easy to use. BioEra is ready to run after installation with preconfigured settings.

 

Biofeedback device

 

After installation BioEra is configured to read data from Simulator or File. To receive data from a device, select from Menu ‘Tools’ and then ‘Install device’ and follow the instructions.

 

DVD

DVD decoder must be installed in system before BioEra’s DVD can be played. Generally any DVD decoder which works with Windows Media Player should be fine.

 

Supported DVD decoders:

1.    InterVideo DVD - this decoder comes with WinDVD software. It can be also purchased here: http://www.corel.com/servlet/Satellite/us/en/Product/1177441133801

2.    Cyberlink DVD – comes with Cyberlink DVD player, can be purchased here: http://www.cyberlink.com/winxp_plugin/2007/enu/wmp.jsp

 

The above links are for decoders on Windows XP and were tested with BioEra. Other decoders (not tested but may also work) are listed here.

MIDI

BioEra contains MIDI bank with basic instruments. To improve the quality of MIDI sounds it is possible to download deluxe sound bank from here. It contains about 400 instruments of the best sound quality. It can be installed either by following the instructions (coming with the installation file) or simply by unzipping and copying the soundbank.gm file into main BioEra folder.

Hardware requirements

Generally BioEra is platform independent; it works on any machine with Java Virtual Machine (JVM). It has been confirmed to successfully run on following operating systems:

·         Windows (XP) – currently this is the only supported system

·         UNIX (Sun Solaris),

·         Linux (RedHat, Debian),

·         MAC OS X

·         PDA linux.

·         PDA Windows Mobile 2003 - PocketPC

 

Since BioEra is supposed to work on PDA (Personal Digital Assistant) with limited resources therefore it requires not much processing power. I would guess that any machine that runs java 1.4 should be ok. Pentium II with 64M RAM is minimum requirement. The faster the machine the smoother processing will be, especially with graphic display.

 

Note: Currently only version for Windows is officially released and supported. Other platforms will be added when there is high enough demand.

Upgrades

The best way to upgrade is to uninstall previous version and install new one and keep copy of files (designs, archives) manually. But it is safe to install new version on previous version without uninstallation.

 

3D graphics

BioEra supports 3D graphics whenever possible and it is available on most computers. If 3D support is not available, then BioEra will automatically detect it and disable support showing this message: 3D graphics has been disabled.

 

If you notice the above message, it means 3D support has not been detected in system. It will not appear again unless you change system setting “3D graphics support” to ON. Possible reasons why this happened:

1.    Older graphics cards not always support all required features. We recommend ATI or NVidia cards. We also recommend installing all latest drivers.

2.    Another possible reason is that DirectX has not been installed, or its version is too old. Make sure that your version of DirectX is 9.0c and released in December 2006 or later. You can check this (and other parameters) using this command: dxdiag (type it in command line). Those are the most important values to verify on dxdiag screen: picture1 and picture2.

 

When you fixed your DirectX and you are ready to try 3D again, change the system setting “3D graphics support” back to ON and restart BioEra. Then load a design with 3D graphics (many examples use it).

 

As the last resort, when none of the above worked, you can try to select this option: “Older version of 3D” (remember to restart BioEra after selected that). It will switch to older version of 3D library which is slower but less demanding.

Supported devices

BioEra has built-in support for:

·         P-I and P-II (Abhayamudra) EEG/HEG pocket-neurobics.com

·         Pendant - EEG pocket-neurobics.com

·         PET - EEG, EMG, ECG, GSR device www.brainquiry.nl

·         Neurobit – EEG device http://www.neurobitsystems.com

·         EEGNeuroAmp – EEG device http://www.eeginfo.com

·         J&J C2-Plus – EEG, EMG, ECG, Temp device http://www.jjengineering.com

·         JCPirHEG – Jeff Carmen’s HEG device

·         QPET - EEG, EMG, ECG, GSR device www.brainquiry.nl

·         MindMaster - EEG device www.mindmaster.de

·         MF_Temperature – temperature sensor www.mindfield.de

·         QDS – EEG device http://www.qeeg.com.ar/defaultENG.htm

·         Nonin4100 – bluetooth (wireless) oximeter www.nonin.com

·         WiTilt – accelerometer and gyrometer www.sparkfun.com

·         DAQ6008 – data acquisition USB device www.ni.com

·         ModEEG - EEG device openeeg.sourceforge.net

·         Lightstone – HRV and GSR device http://www.wilddivine.com

·         Roshi, EEG device

·         BrainMaster - EEG www.brainmaster.com

 

Here is information how to request support for a new device in BioEra.

User interface

In the default mode there are two windows: Designer and Runtime. Designer window serves as a design editor. Runtime window(s) present results in real time. They can run both in the same time or individually. It is possible to have 2 Runtime windows and multiple dialogs.

Designer

Designs are created and edited with mouse and keyboard.

 

Brief description:

a.    To add new element press right mouse button and choose “new” from the popup menu. Choose any element from the list.

b.    To edit existing element highlight it and then press right mouse button over it and choose “properties” or press “space” on keyboard.

c.    To move existing element to new position press left button and drag. It is possible to highlight group of elements and drag them all.

d.    To learn about functionality press right mouse button and choose “description”.

e.    To add connection between output and input of two elements, click on node of an element, then move mouse to another node and click again.

f.    To remove an element or a connection, highlight it and choose “remove” with right mouse button or press “Del” button on the keyboard.

g.    To view a problem in the element (this can be observed when a small red cross appears in the bottom left corner of the element), choose “view error” with right mouse button.

h.    To load previously saved design, choose from menu System->Load and choose design file.

i.    To save your design in file, choose from menu System->Save or System->Save as.

j.    To switch between Edit and View mode of Runtime, choose Runtime->set edit mode (Runtime->set view mode) in Designer menu.

k.    To highlight group of elements press Ctrl button and click over next elements.

 

Runtime

There are 2 Runtime windows available. By default only one is displayed, the other one can be selected in Design Settings.

Runtime window has 2 modes: View or Edit. Either mode can be selected in designer window’s menu. The Edit mode is for setting layout of the display charts. The View mode is set by default when BioEra starts.

Examples

A few examples are included with BioEra to allow quick start and simple training. To load any of them click on Menu->System->LoadDesign and navigate to design\examples folder. Example names are self explanatory, some of them contain one reward filter and others one reward and one inhibit filters. They demonstrate various types of feedback including:

·         3D Racer game,

·         Video,

·         Continuous tone,

·         Binaural Beats,

·         Midi,

·         Simple PacMan game.

 

Architecture

Run modes

There are 4 run modes used to execute BioEra:

1.    Normal mode, both visual designer and runtime windows are shown.

2.    Runtime mode only, only runtime window is shown (perfect for finished applications). Processing is automatically started when the BioEra starts.

3.    Command line runtime mode, no graphics is displayed. All components that use graphics are not being processed at all. Processing is automatically started when BioEra starts.

4.    Designer Only mode. This is rarely needed.

 

Create bio-design

System handles one bio-design at a time (but many designs can be nested with NestedDesign element). Each design is stored in a single bpd (BioEra process design) file. The same design file is used for any run mode.

Pipes

Pipes are the end points used to connect elements. There are many different pipe types e.g.: scalar, vector, object etc. Scalar stream value (up to 32 bit) can be considered as a vector with just one element. Object stream contains objects (e.g. texts) which are exchanged by reference (not by value like in other streams).

 

·         Logical pipe is based on scalar pipe (they can be connected each to other). The 0 value is FALSE, and 1 is TRUE. This pipe operates on logical state rather then logical stream. This means, that logical elements usually send only the final logical value based on all available input.

·         Complex pipe is compatible with vector pipe. Two complex vectors are stored in one: lower half part contains real fields and higher half part contains imaginary values. It is possible to use vector elements to process complex vectors.

·         Matrix pipe is compatible with vector stream. Each matrix is stored as a vector, and matrix parameters (width, height) are stored in MatrixSignalParameters.

 

There are input pipes and output pipes. One output pipe can be connected to many input pipes. Input pipe is usually connected to only one output pipe. If input is connected to many outputs then it works as multiplexer, but without known order. Each input pipe has internal buffer.

 

Vector streams

Aside from traditional data streaming, BioEra introduces new way of data processing on vectors in real time. It is possible to process vector stream and that option gives new possibilities comparing to traditional scalar (single value) data systems.

 

One example is filtering. In conventional applications, input stream is being filtered with various types of digital filters. For example to get the amplitude of alpha brainwave a bandwidth filter is applied on the signal and the amplitude of the filtered result is measured. In BioEra signal can be first converted to vector (for example with FFT or Wavelet transform or any other), and then all further processing can be done on vectors.

 

Traditional filtering is also supported in BioEra.

 

One-dimensional vector streams have good support in BioEra. Matrix streams (two-dimensional) were added in version 1.1 and have little support (they were used mostly for image processing).

Event inputs/outputs

Each element in BioEra has special input/output (located at the bottom of each element) for special purpose. Usually they are connected to blue outputs/inputs of an element which allows such special functions e.g. PropertySetter.

 

Filters

BioEra supports traditional digital filters (as well as filtering based on FFT). At the moment, there is one available implementation of Fidlib native (C-built) filters.

 

Compare filters with FFT

 

Several comparisons between FFT filtering (on vectors) and traditional filters were done, and either method has its unique advantages. Traditional filters provide more options and don’t require windowing; the FFT filtering produces more information (whole frequency spectrum) at one time. The overall results are similar.

 

An example comparison between traditional Butterworth 4-th order filter and FFT filter (on vectors) is presented here. The input signal comes from quasi random generator. Both filters are set at 7 to 11Hz. Each outcome is averaged over one second. The bottom left chart shows JTF characteristics from FFT filter (green line) and Butterworth filter (green). Although they are not exactly the same, all trends and amplitudes are quite similar.

Controls

BioEra Pro contains controls - elements which lets the user to modify current processing settings. They are put on Runtime window into toolbar, menu etc.

·         ComboToolbarControl – combo component to select one value out of many.

·         IconToolbarControl – icon that can be used as button to trigger action on current design.

·         MenuList – automatically creates list of submenus, only one sub-menu can be chosen at a time.

·         MenuItemControl, MenuItemList – creates a menu field which can then be used to trigger an action on current design.

Interactors

BioEra Pro contains several interactors - elements for advanced operations and communication with system. They are for advanced use.

 

·         KeyInteractor – keyboard activity can be generated here

·         MouseInteractor  - mouse activity (buttons and movement)

·         SystemInteractor – to stop, start, pause, save etc.

·         SystemEventSource – to receive various system events about start, stop, pause, resume, init, errors and others.

·         ElementIntractor – various operations on single element (activate, deactivate, process)

·         DesignInteractor – load another design

·         CustomInteractor – load/save file path

·         OSInfo – get the list of available drives or files in folder

·         OSInteractor – execute external application

 

Signal parameters on element level

Information about signal parameters like rate, range or number of bits is provided on element level (as oppose to global level). An element can retrieve these values from other element connected to one of its inputs. An element can also modify its own values if necessarily. For example if an FFT transform is being done 4 times per second, then it means that the output rate is 4, and this value is returned when rate value is requested.

System settings

Those settings are default and global for all designs, available under Menu->System->SystemSettings.

General:

·         Designer zoom [%] – not used at this moment.

·         Designer grid [pixels] – grid resolution on Designer window

·         Runtime grid [pixels] - grid resolution on Runtime windows

·         Maximum start time [s] – this is advanced options, usually should not be modified. It specifies how long BioEra should wait before the startup process is interrupted.

·         Resizable runtime window – if selected then user can resize Runtime window(s).

·         Moveable runtime window – if selected then user can move the Runtime window(s).

·         Clear buffers on resume – advanced option, if selected all data in buffers is cleared when processing is resumed.

·         Designer has icons – designer can be shown in one of two modes: drawn or with icons. Icons are preferred and default mode.

·         Allow only one instance – if set, then BioEra will not start another instance if it is already running.

·         Input buffer length – this option was added for better memory management. Each input buffer length of any element is calculated automatically on base of the input rate and this value. For example if the rate is 200Hz, and this value is 2 seconds, then total buffer length is 400. Unless there are higher rates of the signal (example for real time sound processing) this options doesn’t need to be modified. The minimum default buffer size is 100.

·         Start design after loaded – if this is selected, then design is started automatically after it has been loaded.

·         Reinitialize all design elements on change – advanced, this option is accessed when a properties of an element has been changed in Designer, if this is selected then all elements are reinitialized, otherwise only this one element is reinitialized (which may cause the design to not function properly until next restart). This option should not be changed, unless the design contain a lot of elements (over hundred).

·         Native event loop delay – very advanced, it is used for special elements like Video or DVD. Normally should not be changed.

·         Designer window change when started – this option specifies what happens with Designer window when a design is started.

·         3D graphics support – defines how 3D support is organized, because on some (especially older) computers the default setting may not work

·         Hide detached dialog on X – if selected, then any dialog is hidden when mouse pressed X icon, otherwise nothing happens.

·         Keep window location visible – when selected then the window (Designer or Runtime) is moved to main screen if it is not visible. This can happen when design is created on higher resolution monitor.

 

 

Chart colors:

·         Contain default chart colors. They can be overridden in each individual element.

 

Color profile:

·         Contain colors which can affect graphic appearance of BioEra windows.

 

Iconified designer:

·         Provides advanced options for icon sizes and fonts used to draw elements on designer. Usually should not be changed.

 

Internet:

·         Some options require access to internet. If access to Internet is via proxy, then proxy settings should be set here.

 

 

Design settings

Each design can have its own set of properties modified under Menu->System->DesignerSettings menu.

General:

·         Sleep time [ms]: advanced option, elements in design are being processed in a loop one after another. This value defines how long to wait between consecutive loops. Generally processing will be faster (more loops in time) when this value is smaller. If this time is set to 0, then BioEra is started automatically in special – ultra fast mode, it may cause other programs and applications in operating system slow down. By default it is set to 10 milliseconds which best for most cases.

·         Default size of vector buffer: each element has input buffer for each input pipe. This value defines default buffer size for vector input pipe (includes complex pipes). Some elements may not use this default value.

·         Default size of scalar buffer: each element has input buffer for each input pipe. This value defines default buffer size for scalar input pipe (includes logical pipes). Some elements may not use this default value.
Note: Since version 1.5 in most elements scalar buffer length is automatically calculated in regard to the input rate (of the element connected to input) and field Input buffer length set is System Settings. This allows to process wide range of signal rate and optimal use of memory.

·         Default size of object buffer: each element has input buffer in each input pipe. This value defines default buffer size for object input pipe. Some elements may not use this default value.

·         Reinitialize element if failed during processing – advanced, if an exception (error) occurred during processing of an element, it is deactivated. If this option is set, then this element is reinitialized and started again automatically.

·         Stop when a single processing failed – if marked, then the processing is stopped when there is an error in any active element. Otherwise the element is deactivated, and processing continues.

·         Runtime 1 window hidden, Runtime 2 window hidden – runtime charts can be put on either of two separate windows. This allows for example to show them on two monitors. This option is also useful on PDA (with limited scre