init
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
doc/html/*
|
||||
Doxyfile
|
||||
.vscode/
|
||||
test/scenarios-tests/*output*
|
||||
@@ -0,0 +1,55 @@
|
||||
PROJECT(openvibe-plugins-artifact)
|
||||
|
||||
SET(PROJECT_VERSION_MAJOR ${OV_GLOBAL_VERSION_MAJOR})
|
||||
SET(PROJECT_VERSION ${OV_GLOBAL_VERSION_STRING})
|
||||
|
||||
FILE(GLOB_RECURSE SRC_FILES src/*.cpp src/*.hpp src/*.h src/*.inl src/*.c)
|
||||
ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRC_FILES}
|
||||
)
|
||||
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES
|
||||
VERSION ${PROJECT_VERSION}
|
||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||
FOLDER ${PLUGINS_FOLDER}
|
||||
COMPILE_FLAGS "-DOVP_Exports -DOVP_Shared -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE")
|
||||
|
||||
INCLUDE_DIRECTORIES("src")
|
||||
|
||||
|
||||
# OpenViBE Base
|
||||
INCLUDE("FindOpenViBE")
|
||||
INCLUDE("FindOpenViBECommon")
|
||||
INCLUDE("FindOpenViBEToolkit")
|
||||
|
||||
# OpenViBE Module
|
||||
INCLUDE("FindModuleGeometry")
|
||||
#INCLUDE("FindOpenViBEModuleSystem")
|
||||
#INCLUDE("FindOpenViBEModuleXML")
|
||||
|
||||
# OpenViBE Third Party
|
||||
INCLUDE("FindThirdPartyEigen")
|
||||
|
||||
# ---------------------------------
|
||||
# Target macros
|
||||
# Defines target operating system, architecture and compiler
|
||||
# ---------------------------------
|
||||
SET_BUILD_PLATFORM()
|
||||
|
||||
# -----------------------------
|
||||
# Install files
|
||||
# -----------------------------
|
||||
INSTALL(TARGETS ${PROJECT_NAME}
|
||||
RUNTIME DESTINATION ${DIST_BINDIR}
|
||||
LIBRARY DESTINATION ${DIST_LIBDIR}
|
||||
ARCHIVE DESTINATION ${DIST_LIBDIR})
|
||||
|
||||
SET(SUB_DIR_NAME artifact)
|
||||
|
||||
INSTALL(DIRECTORY box-tutorials/ DESTINATION ${DIST_DATADIR}/openvibe/scenarios/box-tutorials/${SUB_DIR_NAME})
|
||||
#INSTALL(DIRECTORY bci-examples/ DESTINATION ${DIST_DATADIR}/openvibe/scenarios/bci-examples/${SUB_DIR_NAME})
|
||||
|
||||
# ---------------------------------
|
||||
# Test applications
|
||||
# ---------------------------------
|
||||
IF(OV_COMPILE_TESTS)
|
||||
#ADD_SUBDIRECTORY(test)
|
||||
ENDIF()
|
||||
+1434
File diff suppressed because it is too large
Load Diff
+832
@@ -0,0 +1,832 @@
|
||||
<OpenViBE-Scenario>
|
||||
<FormatVersion>2</FormatVersion>
|
||||
<Creator>OpenViBE Designer</Creator>
|
||||
<CreatorVersion>3.0.0-beta</CreatorVersion>
|
||||
<Settings></Settings>
|
||||
<Inputs></Inputs>
|
||||
<Outputs></Outputs>
|
||||
<Boxes>
|
||||
<Box>
|
||||
<Identifier>(0x0000586a, 0x00001f44)</Identifier>
|
||||
<Name>Time based epoching</Name>
|
||||
<AlgorithmClassIdentifier>(0x00777fa0, 0x5dc3f560)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Epoched signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch duration (in sec)</Name>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
<Value>1.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch intervals (in sec)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>0.5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>480</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xc5ff41e9, 0xccc59a01)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00006bd5, 0x0000489b)</Identifier>
|
||||
<Name>ASR Trainer</Name>
|
||||
<AlgorithmClassIdentifier>(0x41727469, 0xc05f38ff)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input Signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Tran-completed Flag</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename to save model</Name>
|
||||
<DefaultValue>${Player_ScenarioDirectory}/ASR-model.xml</DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/ASR-model.xml</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Train trigger</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Train</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Train</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x5261636b, 0x4d455452)</TypeIdentifier>
|
||||
<Name>Metric</Name>
|
||||
<DefaultValue>Euclidian</DefaultValue>
|
||||
<Value>Euclidian</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Channel ratio to reconstruct</Name>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
<Value>1</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Rejection limit</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>528</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xe02de2aa, 0x821ba183)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>5</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00007f96, 0x00002d09)</Identifier>
|
||||
<Name>Stimulation listener</Name>
|
||||
<AlgorithmClassIdentifier>(0x65731e1d, 0x47de5276)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulation stream 1</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xa88b3667, 0x0871638c)</TypeIdentifier>
|
||||
<Name>Log level to use</Name>
|
||||
<DefaultValue>Information</DefaultValue>
|
||||
<Value>Information</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>592</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xf451ad91, 0x14c75f86)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x11a6038b, 0x7157c284)</Identifier>
|
||||
<Name>Generic stream reader</Name>
|
||||
<AlgorithmClassIdentifier>(0x6468099f, 0x0370095a)</AlgorithmClassIdentifier>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output stream 2</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 3</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue></DefaultValue>
|
||||
<Value>${Path_Data}/scenarios/signals/bci-motor-imagery.ov</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>208</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xf37b8e7a, 0x1bc33e4e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x005e1c11)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x1396fde6, 0x1c649749)</Identifier>
|
||||
<Name>Identity</Name>
|
||||
<AlgorithmClassIdentifier>(0x5dffe431, 0x35215c50)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Input stream 1</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>272</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>624</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xa8ffe2a3, 0x27038f03)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x0017fc7a)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x1396fde6, 0x1c64974a)</Identifier>
|
||||
<Name>Identity</Name>
|
||||
<AlgorithmClassIdentifier>(0x5dffe431, 0x35215c50)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Input stream 1</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>480</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>624</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xa8ffe2a3, 0x27038f03)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x0017fc7a)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x2b88852d, 0x43d7a773)</Identifier>
|
||||
<Name>Reference Channel</Name>
|
||||
<AlgorithmClassIdentifier>(0x444721ad, 0x78342cf5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel</Name>
|
||||
<DefaultValue>Ref_Nose</DefaultValue>
|
||||
<Value>Nz</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>272</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x7e39891d, 0x32cf5be7)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5045ebd9, 0x67325c0b)</Identifier>
|
||||
<Name>Player Controller</Name>
|
||||
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Stimulation name</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_EndOfFile</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
|
||||
<Name>Action to perform</Name>
|
||||
<DefaultValue>Pause</DefaultValue>
|
||||
<Value>Stop</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>272</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>912</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x568d148e, 0x650792b3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5194b6cb, 0x7e001787)</Identifier>
|
||||
<Name>C3;C4;FC3;FC4</Name>
|
||||
<AlgorithmClassIdentifier>(0x361722e8, 0x311574e8)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel List</Name>
|
||||
<DefaultValue>-</DefaultValue>
|
||||
<Value>C3;C4;FC3;FC4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x3bcf9e67, 0x0c23994d)</TypeIdentifier>
|
||||
<Name>Action</Name>
|
||||
<DefaultValue>Select</DefaultValue>
|
||||
<Value>Select</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>320</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x277826e1, 0xa30a3bd0)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>3</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x558c587f, 0x223f3b67)</Identifier>
|
||||
<Name>Temporal filter</Name>
|
||||
<AlgorithmClassIdentifier>(0xb4f9d042, 0x9d79f2e5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Filtered signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2f2c606c, 0x8512ed68)</TypeIdentifier>
|
||||
<Name>Filter method</Name>
|
||||
<DefaultValue>Butterworth</DefaultValue>
|
||||
<Value>Butterworth</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xfa20178e, 0x4cba62e9)</TypeIdentifier>
|
||||
<Name>Filter type</Name>
|
||||
<DefaultValue>Low pass</DefaultValue>
|
||||
<Value>Band pass</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Filter order</Name>
|
||||
<DefaultValue>4</DefaultValue>
|
||||
<Value>4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Low cut frequency (Hz)</Name>
|
||||
<DefaultValue>29</DefaultValue>
|
||||
<Value>8.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>High cut frequency (Hz)</Name>
|
||||
<DefaultValue>40</DefaultValue>
|
||||
<Value>24.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Pass band ripple (dB)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>0.500000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>432</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x27a4ceec, 0x876d6384)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x001a79f8)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
</Boxes>
|
||||
<Links>
|
||||
<Link>
|
||||
<Identifier>(0x00000bfd, 0x00000a7c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00000d01, 0x00005533)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00007f96, 0x00002d09)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000023c3, 0x0000335d)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>2</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c649749)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002551, 0x0000620c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002996, 0x00001419)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>2</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5045ebd9, 0x67325c0b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x0000311a, 0x00000602)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c64974a)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00003869, 0x000048f3)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxInputIndex>1</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00004034, 0x000058ef)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000043f4, 0x0000072e)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>1</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00006db7, 0x00007acd)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c649749)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c64974a)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
</Links>
|
||||
<Comments>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae2)</Identifier>
|
||||
<Text>Input Signal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>256</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae3)</Identifier>
|
||||
<Text>Signal Processing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>432</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
</Comments>
|
||||
<Metadata>
|
||||
<Entry>
|
||||
<Identifier>(0x05377d7e, 0x41751bb3)</Identifier>
|
||||
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
|
||||
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":592,"identifier":"(0x00001f6c, 0x000012a7)","name":"Display","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":1348},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00003bf6, 0x000002ba)","index":0,"name":"Default tab","parentIdentifier":"(0x00001f6c, 0x000012a7)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x00002c10, 0x00007fa3)","index":0,"name":"Empty","parentIdentifier":"(0x00003bf6, 0x000002ba)","type":0}]</Data>
|
||||
</Entry>
|
||||
</Metadata>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x079d1f09, 0x667c7871)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4c90d4ad, 0x7a2554ec)</Identifier>
|
||||
<Value>320</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x60bc58ab, 0x7a1b4d83)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x790d75b8, 0x3bb90c33)</Identifier>
|
||||
<Value>Thibaut Monseigne</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7a3a1558, 0xf12c63c2)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7b814cca, 0x271df6dd)</Identifier>
|
||||
<Value>475</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x84009d7c, 0x3c4e763b)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x8c1fc55b, 0x7b433dc2)</Identifier>
|
||||
<Value>1.0</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x9f5c4075, 0x4a0d3666)</Identifier>
|
||||
<Value>Matrix Classification Training Example</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xf36a1567, 0xd13c53da)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xf6b2e3fa, 0x7bd43926)</Identifier>
|
||||
<Value>bci-examples</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xf8034a49, 0x8b3f37cc)</Identifier>
|
||||
<Value>Inria</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</OpenViBE-Scenario>
|
||||
+457
@@ -0,0 +1,457 @@
|
||||
<OpenViBE-Scenario>
|
||||
<FormatVersion>2</FormatVersion>
|
||||
<Creator>OpenViBE Designer</Creator>
|
||||
<CreatorVersion>3.0.0-beta</CreatorVersion>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Identifier>(0x00425137, 0xf2a30c29)</Identifier>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Test Name</Name>
|
||||
<DefaultValue>Covariance-Matrix-Calculator</DefaultValue>
|
||||
<Value>Artefact-Amplitude</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Inputs></Inputs>
|
||||
<Outputs></Outputs>
|
||||
<Boxes>
|
||||
<Box>
|
||||
<Identifier>(0x00000700, 0x00003fcf)</Identifier>
|
||||
<Name>Time signal</Name>
|
||||
<AlgorithmClassIdentifier>(0x28a5e7ff, 0x530095de)</AlgorithmClassIdentifier>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Generated signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Sampling frequency</Name>
|
||||
<DefaultValue>512</DefaultValue>
|
||||
<Value>512</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Generated epoch sample count</Name>
|
||||
<DefaultValue>32</DefaultValue>
|
||||
<Value>32</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>208</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x9e5ca01e, 0x30a4d8c3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00001721, 0x00002728)</Identifier>
|
||||
<Name>Simple DSP</Name>
|
||||
<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input - A</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Equation</Name>
|
||||
<DefaultValue>x</DefaultValue>
|
||||
<Value>sin(2*x)</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>272</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x21889dc4, 0x1126497e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x000029af, 0x00003a24)</Identifier>
|
||||
<Name>Artefact Amplitude</Name>
|
||||
<AlgorithmClassIdentifier>(0x41727469, 0xb68095e4)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Non-artefact signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Max (mV)</Name>
|
||||
<DefaultValue>100</DefaultValue>
|
||||
<Value>0.9</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>336</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x3dd557b8, 0xa3fba55d)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00002b7b, 0x00002df8)</Identifier>
|
||||
<Name>After</Name>
|
||||
<AlgorithmClassIdentifier>(0x0055be5f, 0x087bdd12)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Data</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6ab26b81, 0x0f8c02f3)</TypeIdentifier>
|
||||
<Name>Channel Units</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x5de046a6, 0x086340aa)</TypeIdentifier>
|
||||
<Name>Display Mode</Name>
|
||||
<DefaultValue>Scan</DefaultValue>
|
||||
<Value>Scan</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x33a30739, 0x00d5299b)</TypeIdentifier>
|
||||
<Name>Auto vertical scale</Name>
|
||||
<DefaultValue>Per channel</DefaultValue>
|
||||
<Value>None</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Scale refresh interval (secs)</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Vertical Scale</Name>
|
||||
<DefaultValue>100</DefaultValue>
|
||||
<Value>1.5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Vertical Offset</Name>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
<Value>0</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Time Scale</Name>
|
||||
<DefaultValue>10</DefaultValue>
|
||||
<Value>10</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Bottom ruler</Name>
|
||||
<DefaultValue>true</DefaultValue>
|
||||
<Value>true</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Left ruler</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Multiview</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>400</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>752</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x92c056a7, 0x2dc71aff)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>9</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>3</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00002b7b, 0x00002df9)</Identifier>
|
||||
<Name>Before</Name>
|
||||
<AlgorithmClassIdentifier>(0x0055be5f, 0x087bdd12)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Data</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6ab26b81, 0x0f8c02f3)</TypeIdentifier>
|
||||
<Name>Channel Units</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x5de046a6, 0x086340aa)</TypeIdentifier>
|
||||
<Name>Display Mode</Name>
|
||||
<DefaultValue>Scan</DefaultValue>
|
||||
<Value>Scan</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x33a30739, 0x00d5299b)</TypeIdentifier>
|
||||
<Name>Auto vertical scale</Name>
|
||||
<DefaultValue>Per channel</DefaultValue>
|
||||
<Value>None</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Scale refresh interval (secs)</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Vertical Scale</Name>
|
||||
<DefaultValue>100</DefaultValue>
|
||||
<Value>1.5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Vertical Offset</Name>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
<Value>0</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Time Scale</Name>
|
||||
<DefaultValue>10</DefaultValue>
|
||||
<Value>10</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Bottom ruler</Name>
|
||||
<DefaultValue>true</DefaultValue>
|
||||
<Value>true</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Left ruler</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Multiview</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>400</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>864</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x92c056a7, 0x2dc71aff)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>9</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>3</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
</Boxes>
|
||||
<Links>
|
||||
<Link>
|
||||
<Identifier>(0x000011b7, 0x00007822)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00001721, 0x00002728)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00002b7b, 0x00002df9)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x0000243f, 0x000014b5)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00001721, 0x00002728)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x000029af, 0x00003a24)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000027fa, 0x000003f7)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00000700, 0x00003fcf)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00001721, 0x00002728)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x0000499a, 0x00006eed)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x000029af, 0x00003a24)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00002b7b, 0x00002df8)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
</Links>
|
||||
<Comments></Comments>
|
||||
<Metadata>
|
||||
<Entry>
|
||||
<Identifier>(0x000062ac, 0x00003721)</Identifier>
|
||||
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
|
||||
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":582,"identifier":"(0x0000041e, 0x000069b5)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":844},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004c5d, 0x000021d4)","index":0,"name":"Default tab","parentIdentifier":"(0x0000041e, 0x000069b5)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":2,"dividerPosition":266,"identifier":"(0x000028e6, 0x00005ce6)","index":0,"maxDividerPosition":537,"name":"Vertical split","parentIdentifier":"(0x00004c5d, 0x000021d4)","type":4},{"boxIdentifier":"(0x00002b7b, 0x00002df9)","childCount":0,"identifier":"(0x00005d1e, 0x00006cf8)","index":0,"parentIdentifier":"(0x000028e6, 0x00005ce6)","type":3},{"boxIdentifier":"(0x00002b7b, 0x00002df8)","childCount":0,"identifier":"(0x000023a5, 0x0000366a)","index":1,"parentIdentifier":"(0x000028e6, 0x00005ce6)","type":3}]</Data>
|
||||
</Entry>
|
||||
</Metadata>
|
||||
</OpenViBE-Scenario>
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* \page BoxAlgorithm_ASRProcessor ASR Processor
|
||||
__________________________________________________________________
|
||||
|
||||
Detailed description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Description|
|
||||
Artifact Subspace Reconstruction (ASR) Trainer (see \ref CASR::process).
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Description|
|
||||
__________________________________________________________________
|
||||
|
||||
Inputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Inputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Inputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Input1|
|
||||
The input signal on which the Artifact reconstruction is used.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Input1|
|
||||
__________________________________________________________________
|
||||
|
||||
Outputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Outputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Outputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Output1|
|
||||
Send \"OVTK_StimulationId_TrainCompleted\" if signal is reconstructed.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Output1|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Output2|
|
||||
The reconstructed signal if needed, the input signal otherwise.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Output2|
|
||||
__________________________________________________________________
|
||||
|
||||
Settings description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Settings|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Settings|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Setting1|
|
||||
ASR model Filename.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Setting1|
|
||||
__________________________________________________________________
|
||||
|
||||
Examples description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Examples|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Examples|
|
||||
__________________________________________________________________
|
||||
|
||||
Miscellaneous description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRProcessor_Miscellaneous|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRProcessor_Miscellaneous|
|
||||
*/
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* \page BoxAlgorithm_ASRTrainer ASR Trainer
|
||||
__________________________________________________________________
|
||||
|
||||
Detailed description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Description|
|
||||
Artifact Subspace Reconstruction (ASR) Trainer (see \ref CASR::train).
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Description|
|
||||
__________________________________________________________________
|
||||
|
||||
Inputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Inputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Inputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Input1|
|
||||
Stimulation to start the training.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Input1|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Input1|
|
||||
The input signal.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Input1|
|
||||
__________________________________________________________________
|
||||
|
||||
Outputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Outputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Outputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Output1|
|
||||
Send \"OVTK_StimulationId_TrainCompleted\" when training is completed.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Output1|
|
||||
__________________________________________________________________
|
||||
|
||||
Settings description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Settings|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Settings|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Setting1|
|
||||
ASR model Filename.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Setting1|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Setting2|
|
||||
Stimulation that starts the training.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Setting2|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Setting3|
|
||||
The Metric to use : Riemman or Euclidian.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Setting3|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Setting4|
|
||||
The Channel ratio to reconstruct at maximum in [0;1] 0 for no reconstruction, 1 to allow reconstruction of all channels.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Setting4|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Setting5|
|
||||
The Rejection Limit of ASR model.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Setting5|
|
||||
__________________________________________________________________
|
||||
|
||||
Examples description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Examples|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Examples|
|
||||
__________________________________________________________________
|
||||
|
||||
Miscellaneous description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ASRTrainer_Miscellaneous|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ASRTrainer_Miscellaneous|
|
||||
*/
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
/**
|
||||
* \page BoxAlgorithm_ArtifactAmplitude Artifact Amplitude
|
||||
__________________________________________________________________
|
||||
|
||||
Detailed description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Description|
|
||||
Check if one element is higher than Max setting.\nThe signal is returned if no element exceeds the defined value.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Description|
|
||||
__________________________________________________________________
|
||||
|
||||
Inputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Inputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Inputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Input1|
|
||||
The input signal on which the Artifact detection is used.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Input1|
|
||||
__________________________________________________________________
|
||||
|
||||
Outputs description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Outputs|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Outputs|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Output1|
|
||||
The input signal if there were no artifacts .
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Output1|
|
||||
__________________________________________________________________
|
||||
|
||||
Settings description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Settings|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Settings|
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Setting1|
|
||||
The amplitude threshold.
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Setting1|
|
||||
__________________________________________________________________
|
||||
|
||||
Examples description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Examples|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Examples|
|
||||
__________________________________________________________________
|
||||
|
||||
Miscellaneous description
|
||||
__________________________________________________________________
|
||||
|
||||
* |OVP_DocBegin_BoxAlgorithm_ArtifactAmplitude_Miscellaneous|
|
||||
* |OVP_DocEnd_BoxAlgorithm_ArtifactAmplitude_Miscellaneous|
|
||||
*/
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
#include "CBoxAlgorithmASRProcessor.hpp"
|
||||
|
||||
//@todo put functions in this file in sdk it's duplication of file in riemann module
|
||||
#include "utils/misc.hpp" // For conversion Openvibe to Eigen
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRProcessor::initialize()
|
||||
{
|
||||
//***** Codecs *****
|
||||
m_SignalDecoder.initialize(*this, 0);
|
||||
m_stimulationEncoder.initialize(*this, 0);
|
||||
m_signalEncoder.initialize(*this, 1);
|
||||
m_signalEncoder.getInputSamplingRate().setReferenceTarget(m_SignalDecoder.getOutputSamplingRate()); // Link Sampling
|
||||
m_signalEncoder.getInputMatrix().setReferenceTarget(m_SignalDecoder.getOutputMatrix()); // Link Matrix
|
||||
|
||||
//***** Pointers *****
|
||||
m_iMatrix = m_SignalDecoder.getOutputMatrix();
|
||||
m_oStimulation = m_stimulationEncoder.getInputStimulationSet();
|
||||
m_oMatrix = m_signalEncoder.getInputMatrix();
|
||||
|
||||
// Settings
|
||||
m_filename = CString(FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0)).toASCIIString();
|
||||
|
||||
OV_ERROR_UNLESS_KRF(!m_filename.empty(), "Invalid empty model filename", Kernel::ErrorType::BadSetting);
|
||||
OV_ERROR_UNLESS_KRF(m_asr.loadXML(m_filename), "Loading XML Error", Kernel::ErrorType::BadFileRead);
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRProcessor::uninitialize()
|
||||
{
|
||||
m_SignalDecoder.uninitialize();
|
||||
m_stimulationEncoder.uninitialize();
|
||||
m_signalEncoder.uninitialize();
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRProcessor::processInput(const size_t /*index*/)
|
||||
{
|
||||
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRProcessor::process()
|
||||
{
|
||||
Kernel::IBoxIO& boxCtx = this->getDynamicBoxContext();
|
||||
for (size_t i = 0; i < boxCtx.getInputChunkCount(0); ++i)
|
||||
{
|
||||
m_SignalDecoder.decode(i); // Decode the chunk
|
||||
OV_ERROR_UNLESS_KRF(m_iMatrix->getDimensionCount() == 2, "Invalid Input Signal", Kernel::ErrorType::BadInput);
|
||||
const uint64_t start = boxCtx.getInputChunkStartTime(0, i), // Time Code Chunk Start
|
||||
end = boxCtx.getInputChunkEndTime(0, i); // Time Code Chunk End
|
||||
|
||||
if (m_SignalDecoder.isHeaderReceived()) // Header received
|
||||
{
|
||||
m_signalEncoder.encodeHeader();
|
||||
m_stimulationEncoder.encodeHeader();
|
||||
boxCtx.markOutputAsReadyToSend(0, start, end);
|
||||
}
|
||||
if (m_SignalDecoder.isBufferReceived()) // Buffer received
|
||||
{
|
||||
const bool prevTrivial = m_asr.getTrivial();
|
||||
Eigen::MatrixXd in, out;
|
||||
MatrixConvert(*m_iMatrix, in);
|
||||
OV_ERROR_UNLESS_KRF(m_asr.process(in, out), "ASR Process Error", Kernel::ErrorType::BadProcessing);
|
||||
MatrixConvert(out, *m_oMatrix);
|
||||
m_signalEncoder.encodeBuffer();
|
||||
|
||||
const bool newTrivial = m_asr.getTrivial();
|
||||
if (!newTrivial && !prevTrivial) // We have reconstruct signal
|
||||
{
|
||||
m_oStimulation->appendStimulation(OVTK_StimulationId_Artifact, start, 0);
|
||||
m_stimulationEncoder.encodeBuffer();
|
||||
boxCtx.markOutputAsReadyToSend(0, start, end);
|
||||
}
|
||||
}
|
||||
if (m_SignalDecoder.isEndReceived()) // Buffer received
|
||||
{
|
||||
m_signalEncoder.encodeEnd();
|
||||
m_stimulationEncoder.encodeEnd();
|
||||
boxCtx.markOutputAsReadyToSend(0, start, end);
|
||||
}
|
||||
boxCtx.markOutputAsReadyToSend(1, start, end);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// \file CBoxAlgorithmASRProcessor.hpp
|
||||
/// \brief Classes of the box ASR Processor.
|
||||
/// \author Thibaut Monseigne (Inria).
|
||||
/// \version 1.0.
|
||||
/// \date 08/12/2020.
|
||||
/// \copyright <a href="https://choosealicense.com/licenses/agpl-3.0/">GNU Affero General Public License v3.0</a>.
|
||||
///
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "defines.hpp"
|
||||
#include <openvibe/ov_all.h>
|
||||
#include <toolkit/ovtk_all.h>
|
||||
#include <geometry/artifacts/CASR.hpp>
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> The class CBoxAlgorithmASRProcessor describes the box Artifact Subspace Reconstruction (ASR) Processor. </summary>
|
||||
class CBoxAlgorithmASRProcessor final : virtual public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
|
||||
{
|
||||
public:
|
||||
void release() override { delete this; }
|
||||
|
||||
bool initialize() override;
|
||||
bool uninitialize() override;
|
||||
bool processInput(const size_t index) override;
|
||||
bool process() override;
|
||||
|
||||
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, ClassId_Box_ASR_Processor)
|
||||
|
||||
protected:
|
||||
//***** Codecs *****
|
||||
Toolkit::TSignalDecoder<CBoxAlgorithmASRProcessor> m_SignalDecoder; ///< Input Signal Decoder
|
||||
Toolkit::TStimulationEncoder<CBoxAlgorithmASRProcessor> m_stimulationEncoder; ///< Output Stimulation Encoder
|
||||
Toolkit::TSignalEncoder<CBoxAlgorithmASRProcessor> m_signalEncoder; ///< Output Signal Encoder
|
||||
|
||||
//***** Pointers *****
|
||||
CMatrix *m_iMatrix = nullptr, ///< Input Matrix Pointer
|
||||
*m_oMatrix = nullptr; ///< Output Matrix Pointer
|
||||
IStimulationSet* m_oStimulation = nullptr; ///< Output Stimulation Pointer
|
||||
|
||||
//***** ASR *****
|
||||
std::string m_filename; ///< ASR Model Path
|
||||
Geometry::CASR m_asr; ///< ASR Model
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> Descriptor of the box Artifact Subspace Reconstruction (ASR) Processor. </summary>
|
||||
class CBoxAlgorithmASRProcessorDesc final : virtual public IBoxAlgorithmDesc
|
||||
{
|
||||
public:
|
||||
|
||||
void release() override { }
|
||||
|
||||
CString getName() const override { return "ASR Processor"; }
|
||||
CString getAuthorName() const override { return "Thibaut Monseigne"; }
|
||||
CString getAuthorCompanyName() const override { return "Inria"; }
|
||||
CString getShortDescription() const override { return "Artifact Subspace Reconstruction (ASR) Processor."; }
|
||||
CString getDetailedDescription() const override { return "Artifact Subspace Reconstruction (ASR) Processor."; }
|
||||
CString getCategory() const override { return "Artifact"; }
|
||||
CString getVersion() const override { return "0.1"; }
|
||||
CString getStockItemName() const override { return "gtk-execute"; }
|
||||
|
||||
CIdentifier getCreatedClass() const override { return ClassId_Box_ASR_Processor; }
|
||||
IPluginObject* create() override { return new CBoxAlgorithmASRProcessor; }
|
||||
|
||||
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
|
||||
{
|
||||
prototype.addInput("Input Signal", OV_TypeId_Signal);
|
||||
|
||||
prototype.addOutput("Signal Reconstructed",OV_TypeId_Stimulations);
|
||||
prototype.addOutput("Output Signal", OV_TypeId_Signal);
|
||||
|
||||
prototype.addSetting("Filename to load model", OV_TypeId_Filename, "${Player_ScenarioDirectory}/ASR-model.xml");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, ClassId_Box_ASR_Processor_Desc)
|
||||
};
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
#include "CBoxAlgorithmASRTrainer.hpp"
|
||||
|
||||
//@todo put functions in this file in sdk it's duplication of file in riemann module
|
||||
#include "utils/misc.hpp" // For conversion Openvibe to Eigen
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainer::initialize()
|
||||
{
|
||||
// Stimulations
|
||||
m_stimulationDecoder.initialize(*this, 0);
|
||||
m_iStimulation = m_stimulationDecoder.getOutputStimulationSet();
|
||||
|
||||
m_stimulationEncoder.initialize(*this, 0);
|
||||
m_oStimulation = m_stimulationEncoder.getInputStimulationSet();
|
||||
|
||||
// Classes
|
||||
m_signalEncoder.initialize(*this, 1);
|
||||
m_iMatrix = m_signalEncoder.getOutputMatrix();
|
||||
|
||||
// Settings
|
||||
m_filename = CString(FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0)).toASCIIString();
|
||||
m_stimulationName = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 1);
|
||||
m_metric = Geometry::EMetric(uint64_t(FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 2)));
|
||||
m_ratio = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 3);
|
||||
m_rejection = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 4);
|
||||
|
||||
OV_ERROR_UNLESS_KRF(!m_filename.empty(), "Invalid empty model filename", Kernel::ErrorType::BadSetting);
|
||||
OV_ERROR_UNLESS_KRF(Geometry::InRange(m_ratio, 0, 1), "Channel ratio must be in [0;1], actual : " + std::to_string(m_ratio), Kernel::ErrorType::BadSetting);
|
||||
OV_ERROR_UNLESS_KRF(m_rejection >= 0, "Rejection limit must be positive, actual : " + std::to_string(m_rejection), Kernel::ErrorType::BadSetting);
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainer::uninitialize()
|
||||
{
|
||||
m_stimulationDecoder.uninitialize();
|
||||
m_signalEncoder.uninitialize();
|
||||
m_stimulationEncoder.uninitialize();
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainer::processInput(const size_t /*index*/)
|
||||
{
|
||||
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainer::process()
|
||||
{
|
||||
if (!m_isTrain)
|
||||
{
|
||||
Kernel::IBoxIO& boxCtx = this->getDynamicBoxContext();
|
||||
//***** Stimulations *****
|
||||
for (size_t i = 0; i < boxCtx.getInputChunkCount(0); ++i)
|
||||
{
|
||||
m_stimulationDecoder.decode(i); // Decode the chunk
|
||||
const uint64_t start = boxCtx.getInputChunkStartTime(0, i), // Time Code Chunk Start
|
||||
end = boxCtx.getInputChunkEndTime(0, i); // Time Code Chunk End
|
||||
|
||||
if (m_stimulationDecoder.isHeaderReceived())
|
||||
{
|
||||
m_stimulationEncoder.encodeHeader();
|
||||
boxCtx.markOutputAsReadyToSend(0, 0, 0);
|
||||
}
|
||||
if (m_stimulationDecoder.isBufferReceived()) // Buffer received
|
||||
{
|
||||
for (size_t j = 0; j < m_iStimulation->getStimulationCount(); ++j)
|
||||
{
|
||||
if (m_iStimulation->getStimulationIdentifier(j) == m_stimulationName)
|
||||
{
|
||||
OV_ERROR_UNLESS_KRF(train(), "Train or Save failed", Kernel::ErrorType::BadProcessing);
|
||||
m_oStimulation->appendStimulation(OVTK_StimulationId_TrainCompleted, m_iStimulation->getStimulationDate(j), 0);
|
||||
m_isTrain = true;
|
||||
}
|
||||
}
|
||||
m_stimulationEncoder.encodeBuffer();
|
||||
boxCtx.markOutputAsReadyToSend(0, start, end);
|
||||
}
|
||||
if (m_stimulationDecoder.isEndReceived())
|
||||
{
|
||||
m_stimulationEncoder.encodeEnd();
|
||||
boxCtx.markOutputAsReadyToSend(0, start, end);
|
||||
}
|
||||
}
|
||||
|
||||
//***** Signal *****
|
||||
for (size_t i = 0; i < boxCtx.getInputChunkCount(1); ++i)
|
||||
{
|
||||
m_signalEncoder.decode(i); // Decode the chunk
|
||||
OV_ERROR_UNLESS_KRF(m_iMatrix->getDimensionCount() == 2, "Invalid Input Signal", Kernel::ErrorType::BadInput);
|
||||
|
||||
if (m_signalEncoder.isBufferReceived()) // Buffer received
|
||||
{
|
||||
Eigen::MatrixXd m;
|
||||
MatrixConvert(*m_iMatrix, m);
|
||||
m_dataset.push_back(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainer::train()
|
||||
{
|
||||
Geometry::CASR asr(m_metric);
|
||||
asr.setMaxChannel(m_ratio);
|
||||
this->getLogManager() << Kernel::LogLevel_Info << "Train Beginning...\n";
|
||||
OV_ERROR_UNLESS_KRF(asr.train(m_dataset, m_rejection), "Train failed", Kernel::ErrorType::BadProcessing);
|
||||
getLogManager() << Kernel::LogLevel_Info << "Train Finished. Save Beginning...\n";
|
||||
OV_ERROR_UNLESS_KRF(asr.saveXML(m_filename), "Save failed", Kernel::ErrorType::BadProcessing);
|
||||
this->getLogManager() << Kernel::LogLevel_Info << "Save Finished.\n";
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmASRTrainerListener::onSettingValueChanged(Kernel::IBox& box, const size_t index)
|
||||
{
|
||||
if (index == 2)
|
||||
{
|
||||
CString tmp;
|
||||
box.getSettingValue(index, tmp);
|
||||
const Geometry::EMetric m = Geometry::StringToMetric(tmp.toASCIIString());
|
||||
if (m != Geometry::EMetric::Euclidian && m != Geometry::EMetric::Riemann)
|
||||
{
|
||||
const std::string s1 = toString(Geometry::EMetric::Euclidian), s2 = toString(Geometry::EMetric::Riemann);
|
||||
getLogManager() << Kernel::LogLevel_Warning << "Metric must be " << s1 << " or " << s2 << ". Setting is set to " << s1 << "\n";
|
||||
box.setSettingValue(index, s1.c_str());
|
||||
}
|
||||
}
|
||||
else if (index == 3)
|
||||
{
|
||||
CString tmp;
|
||||
box.getSettingValue(index, tmp);
|
||||
|
||||
double ratio = 0.0;
|
||||
std::stringstream ss(tmp.toASCIIString());
|
||||
ss >> ratio;
|
||||
if (ratio < 0.0)
|
||||
{
|
||||
getLogManager() << Kernel::LogLevel_Warning <<
|
||||
"Channel ratio must be in [0;1] (0 for no reconstruction, 1 for no limit). Setting is set to 0. \n";
|
||||
box.setSettingValue(index, "0");
|
||||
}
|
||||
else if (ratio > 1.0)
|
||||
{
|
||||
getLogManager() << Kernel::LogLevel_Warning <<
|
||||
"Channel ratio must be in [0;1] (0 for no reconstruction, 1 for no limit). Setting is set to 1. \n";
|
||||
box.setSettingValue(index, "1");
|
||||
}
|
||||
}
|
||||
else if (index == 4)
|
||||
{
|
||||
CString tmp;
|
||||
box.getSettingValue(index, tmp);
|
||||
|
||||
double rejection = 0.0;
|
||||
std::stringstream ss(tmp.toASCIIString());
|
||||
ss >> rejection;
|
||||
if (rejection < 0.0)
|
||||
{
|
||||
getLogManager() << Kernel::LogLevel_Warning << "Rejection limit must be positive. Setting is set to 0. \n";
|
||||
box.setSettingValue(index, "0");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// \file CBoxAlgorithmASRProcessor.hpp
|
||||
/// \brief Classes of the box ASR Processor.
|
||||
/// \author Thibaut Monseigne (Inria).
|
||||
/// \version 1.0.
|
||||
/// \date 08/12/2020.
|
||||
/// \copyright <a href="https://choosealicense.com/licenses/agpl-3.0/">GNU Affero General Public License v3.0</a>.
|
||||
///
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "defines.hpp"
|
||||
#include <openvibe/ov_all.h>
|
||||
#include <toolkit/ovtk_all.h>
|
||||
#include <geometry/artifacts/CASR.hpp>
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> The class CBoxAlgorithmASRTrainer describes the box Artifact Subspace Reconstruction (ASR) Trainer. </summary>
|
||||
class CBoxAlgorithmASRTrainer final : virtual public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
|
||||
{
|
||||
public:
|
||||
void release() override { delete this; }
|
||||
|
||||
bool initialize() override;
|
||||
bool uninitialize() override;
|
||||
|
||||
bool processInput(const size_t index) override;
|
||||
bool process() override;
|
||||
|
||||
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, ClassId_Box_ASR_Trainer)
|
||||
|
||||
protected:
|
||||
//***** Codecs *****
|
||||
Toolkit::TStimulationDecoder<CBoxAlgorithmASRTrainer> m_stimulationDecoder; ///< Input Stimulation Decoder
|
||||
Toolkit::TSignalDecoder<CBoxAlgorithmASRTrainer> m_signalEncoder; ///< Input Signal Encoder
|
||||
Toolkit::TStimulationEncoder<CBoxAlgorithmASRTrainer> m_stimulationEncoder; ///< Output Stimulation Encoder
|
||||
|
||||
//***** Pointers *****
|
||||
CMatrix* m_iMatrix = nullptr; ///< Input Matrix pointer
|
||||
IStimulationSet *m_iStimulation = nullptr, ///< Stimulation receiver
|
||||
*m_oStimulation = nullptr; ///< Stimulation sender
|
||||
|
||||
//***** Settings *****
|
||||
std::string m_filename; ///< Filename of ASR Model
|
||||
uint64_t m_stimulationName = OVTK_StimulationId_Train; ///< Name of stimulation to check for train launch
|
||||
Geometry::EMetric m_metric = Geometry::EMetric::Euclidian; ///< Metric for ASR
|
||||
double m_ratio = 1.0; ///< Ratio of channel to reconstruct for ASR
|
||||
double m_rejection = 5.0; ///< Rejection limit of threshold for ASR
|
||||
|
||||
//***** Misc *****
|
||||
std::vector<Eigen::MatrixXd> m_dataset; ///< Dataset stack
|
||||
bool m_isTrain = false; ///< <c>True</c> if train is already done, <c>False</c> otherwise
|
||||
|
||||
bool train();
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> Listener of the box Artifact Subspace Reconstruction (ASR) Trainer. </summary>
|
||||
class CBoxAlgorithmASRTrainerListener final : public Toolkit::TBoxListener<IBoxListener>
|
||||
{
|
||||
public:
|
||||
bool onSettingValueChanged(Kernel::IBox& box, const size_t index) override;;
|
||||
|
||||
_IsDerivedFromClass_Final_(Toolkit::TBoxListener<IBoxListener>, OV_UndefinedIdentifier)
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> Descriptor of the box Artifact Subspace Reconstruction (ASR) Trainer. </summary>
|
||||
class CBoxAlgorithmASRTrainerDesc final : virtual public IBoxAlgorithmDesc
|
||||
{
|
||||
public:
|
||||
|
||||
void release() override { }
|
||||
|
||||
CString getName() const override { return "ASR Trainer"; }
|
||||
CString getAuthorName() const override { return "Thibaut Monseigne"; }
|
||||
CString getAuthorCompanyName() const override { return "Inria"; }
|
||||
CString getShortDescription() const override { return "Artifact Subspace Reconstruction (ASR) Trainer."; }
|
||||
CString getDetailedDescription() const override { return "Artifact Subspace Reconstruction (ASR) Trainer."; }
|
||||
CString getCategory() const override { return "Artifact"; }
|
||||
CString getVersion() const override { return "0.1"; }
|
||||
CString getStockItemName() const override { return "gtk-execute"; }
|
||||
|
||||
CIdentifier getCreatedClass() const override { return ClassId_Box_ASR_Trainer; }
|
||||
IPluginObject* create() override { return new CBoxAlgorithmASRTrainer; }
|
||||
|
||||
IBoxListener* createBoxListener() const override { return new CBoxAlgorithmASRTrainerListener; }
|
||||
void releaseBoxListener(IBoxListener* listener) const override { delete listener; }
|
||||
|
||||
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
|
||||
{
|
||||
prototype.addInput("Stimulations",OV_TypeId_Stimulations);
|
||||
prototype.addInput("Input Signal", OV_TypeId_Signal);
|
||||
|
||||
prototype.addOutput("Train-completed Flag",OV_TypeId_Stimulations);
|
||||
|
||||
prototype.addSetting("Filename to save model", OV_TypeId_Filename, "${Player_ScenarioDirectory}/ASR-model.xml");
|
||||
prototype.addSetting("Train trigger", OV_TypeId_Stimulation, "OVTK_StimulationId_Train");
|
||||
prototype.addSetting("Metric", TypeId_Metric, toString(Geometry::EMetric::Euclidian).c_str());
|
||||
prototype.addSetting("Channel ratio to reconstruct", OV_TypeId_Float, "1");
|
||||
prototype.addSetting("Rejection limit", OV_TypeId_Float, "5");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, ClassId_Box_ASR_Trainer_Desc)
|
||||
};
|
||||
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
#include "CBoxAlgorithmArtifactAmplitude.hpp"
|
||||
#include <cmath> // Floor
|
||||
#include <sstream>
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmArtifactAmplitude::initialize()
|
||||
{
|
||||
//***** Codecs *****
|
||||
m_decoder.initialize(*this, 0);
|
||||
m_iMatrix = m_decoder.getOutputMatrix();
|
||||
|
||||
//***** Settings *****
|
||||
m_max = FSettingValueAutoCast(*this->getBoxAlgorithmContext(), 0);
|
||||
|
||||
//***** Assert *****
|
||||
OV_ERROR_UNLESS_KRF(m_max > 0, "Invalid Maximum [" << m_max << "] (expected value > 0)\n", Kernel::ErrorType::BadSetting);
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmArtifactAmplitude::uninitialize()
|
||||
{
|
||||
m_decoder.uninitialize();
|
||||
std::stringstream ss;
|
||||
ss << m_nArtifact << " artifacts detected in " << m_nSamples << " samples (";
|
||||
ss.precision(2);
|
||||
ss << std::fixed << 100.0 * double(m_nArtifact) / double(m_nSamples) << "%)" << std::endl;
|
||||
this->getLogManager() << Kernel::LogLevel_Info << ss.str();
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmArtifactAmplitude::processInput(const size_t /*index*/)
|
||||
{
|
||||
getBoxAlgorithmContext()->markAlgorithmAsReadyToProcess();
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool CBoxAlgorithmArtifactAmplitude::process()
|
||||
{
|
||||
Kernel::IBoxIO& boxContext = this->getDynamicBoxContext();
|
||||
for (size_t i = 0; i < boxContext.getInputChunkCount(0); ++i)
|
||||
{
|
||||
bool artifact = false;
|
||||
m_decoder.decode(i); // Decode chunk
|
||||
OV_ERROR_UNLESS_KRF(m_iMatrix->getDimensionCount() == 2, "Invalid Input Signal", Kernel::ErrorType::BadInput);
|
||||
m_nSamples++;
|
||||
//if (m_decoder.isHeaderReceived()) {} // Header
|
||||
if (m_decoder.isBufferReceived()) // Buffer
|
||||
{
|
||||
const size_t size = m_iMatrix->getDimensionSize(0) * m_iMatrix->getDimensionSize(1); // get buffer size
|
||||
const double* iBuffer = m_iMatrix->getBuffer(); // input buffer
|
||||
for (size_t idx = 0; idx < size; ++idx)
|
||||
{
|
||||
if (abs(iBuffer[idx]) >= m_max) // Amplitude comparison
|
||||
{
|
||||
this->getLogManager() << Kernel::LogLevel_Trace << "Artifact detected in channel (" << floor(idx / m_iMatrix->getDimensionSize(1)) << ")\n";
|
||||
artifact = true;
|
||||
m_nArtifact++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//if (m_decoder.isEndReceived()) {} // End
|
||||
// We don't need output codec we copy just the input to the output if there is no amplitude artifact
|
||||
if (!artifact)
|
||||
{
|
||||
uint64_t tStart = 0, tEnd = 0;
|
||||
size_t size = 0;
|
||||
const uint8_t* buffer = nullptr;
|
||||
boxContext.getInputChunk(0, i, tStart, tEnd, size, buffer);
|
||||
boxContext.appendOutputChunkData(0, buffer, size);
|
||||
boxContext.markOutputAsReadyToSend(0, tStart, tEnd);
|
||||
boxContext.markInputAsDeprecated(0, i);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// \file CBoxAlgorithmArtifactAmplitude.hpp
|
||||
/// \brief Classes of the box Artifact Amplitude.
|
||||
/// \author Thibaut Monseigne (Inria).
|
||||
/// \version 1.0.
|
||||
/// \date 12/08/2019.
|
||||
/// \copyright <a href="https://choosealicense.com/licenses/agpl-3.0/">GNU Affero General Public License v3.0</a>.
|
||||
///
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
#pragma once
|
||||
|
||||
#include "defines.hpp"
|
||||
#include <openvibe/ov_all.h>
|
||||
#include <toolkit/ovtk_all.h>
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> The class CBoxAlgorithmArtifactAmplitude describes the box Artifact Amplitude. </summary>
|
||||
class CBoxAlgorithmArtifactAmplitude final : virtual public Toolkit::TBoxAlgorithm<IBoxAlgorithm>
|
||||
{
|
||||
public:
|
||||
void release() override { delete this; }
|
||||
|
||||
bool initialize() override;
|
||||
bool uninitialize() override;
|
||||
|
||||
bool processInput(const size_t index) override;
|
||||
bool process() override;
|
||||
|
||||
_IsDerivedFromClass_Final_(Toolkit::TBoxAlgorithm<IBoxAlgorithm>, ClassId_Box_Artifact_Amplitude)
|
||||
|
||||
protected:
|
||||
|
||||
Toolkit::TSignalDecoder<CBoxAlgorithmArtifactAmplitude> m_decoder; ///< Input Signal decoder
|
||||
CMatrix* m_iMatrix = nullptr; ///< Input Matrix pointer
|
||||
|
||||
double m_max = 0; ///< Amplitude max
|
||||
size_t m_nSamples = 0, ///< Sample checked
|
||||
m_nArtifact = 0; ///< Artifact found
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
/// <summary> Descriptor of the box Artifact Detector. </summary>
|
||||
class CBoxAlgorithmArtifactAmplitudeDesc final : virtual public IBoxAlgorithmDesc
|
||||
{
|
||||
public:
|
||||
|
||||
void release() override { }
|
||||
|
||||
CString getName() const override { return "Artifact Amplitude"; }
|
||||
CString getAuthorName() const override { return "Thibaut Monseigne"; }
|
||||
CString getAuthorCompanyName() const override { return "Inria"; }
|
||||
CString getShortDescription() const override { return "Simple Artifact Detection"; }
|
||||
|
||||
CString getDetailedDescription() const override
|
||||
{
|
||||
return "Check if one element is higher than Max setting.\nThe signal is returned if no element exceeds the defined value.";
|
||||
}
|
||||
|
||||
CString getCategory() const override { return "Artifact"; }
|
||||
CString getVersion() const override { return "1.0"; }
|
||||
CString getStockItemName() const override { return "gtk-no"; }
|
||||
|
||||
CIdentifier getCreatedClass() const override { return ClassId_Box_Artifact_Amplitude; }
|
||||
IPluginObject* create() override { return new CBoxAlgorithmArtifactAmplitude; }
|
||||
|
||||
bool getBoxPrototype(Kernel::IBoxProto& prototype) const override
|
||||
{
|
||||
prototype.addInput("Signal",OV_TypeId_Signal);
|
||||
prototype.addOutput("Non-artifact signal",OV_TypeId_Signal);
|
||||
prototype.addSetting("Max (mV)",OV_TypeId_Float, "100");
|
||||
return true;
|
||||
}
|
||||
|
||||
_IsDerivedFromClass_Final_(IBoxAlgorithmDesc, ClassId_Box_Artifact_Amplitude_Desc)
|
||||
};
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
@@ -0,0 +1,25 @@
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// \file defines.hpp
|
||||
/// \brief Defines list for Setting, Shortcut Macro and const.
|
||||
/// \author Thibaut Monseigne (Inria).
|
||||
/// \version 1.0.
|
||||
/// \date 08/12/2020.
|
||||
/// \copyright <a href="https://choosealicense.com/licenses/agpl-3.0/">GNU Affero General Public License v3.0</a>.
|
||||
///
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
// Boxes
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
#define ClassId_Box_Artifact_Amplitude OpenViBE::CIdentifier(0x41727469, 0xb68095e4)
|
||||
#define ClassId_Box_Artifact_Amplitude_Desc OpenViBE::CIdentifier(0x41727469, 0x83596875)
|
||||
#define ClassId_Box_ASR_Processor OpenViBE::CIdentifier(0x41727469, 0x17f1c6e2)
|
||||
#define ClassId_Box_ASR_Processor_Desc OpenViBE::CIdentifier(0x41727469, 0x1de22c87)
|
||||
#define ClassId_Box_ASR_Trainer OpenViBE::CIdentifier(0x41727469, 0xc05f38ff)
|
||||
#define ClassId_Box_ASR_Trainer_Desc OpenViBE::CIdentifier(0x41727469, 0x966737cb)
|
||||
|
||||
#ifndef TypeId_Metric
|
||||
#define TypeId_Metric OpenViBE::CIdentifier(0x5261636B, 0x4D455452)
|
||||
#endif
|
||||
@@ -0,0 +1,37 @@
|
||||
#include <openvibe/ov_all.h>
|
||||
#include "defines.hpp"
|
||||
|
||||
// Boxes Includes
|
||||
#include "boxes/CBoxAlgorithmArtifactAmplitude.hpp"
|
||||
#include "boxes/CBoxAlgorithmASRTrainer.hpp"
|
||||
#include "boxes/CBoxAlgorithmASRProcessor.hpp"
|
||||
|
||||
namespace OpenViBE {
|
||||
namespace Plugins {
|
||||
namespace Artifact {
|
||||
|
||||
template <typename T>
|
||||
static void setEnumeration(const Kernel::IPluginModuleContext& context, const CIdentifier& typeID, const std::string& name, const std::vector<T>& enumeration)
|
||||
{
|
||||
context.getTypeManager().registerEnumerationType(typeID, name.c_str());
|
||||
for (const auto& e : enumeration) { context.getTypeManager().registerEnumerationEntry(typeID, toString(e).c_str(), size_t(e)); }
|
||||
}
|
||||
|
||||
OVP_Declare_Begin()
|
||||
// Register boxes
|
||||
OVP_Declare_New(CBoxAlgorithmArtifactAmplitudeDesc);
|
||||
OVP_Declare_New(CBoxAlgorithmASRTrainerDesc);
|
||||
OVP_Declare_New(CBoxAlgorithmASRProcessorDesc);
|
||||
|
||||
// Enumeration Metric
|
||||
const std::vector<Geometry::EMetric> metrics = {
|
||||
Geometry::EMetric::Riemann, Geometry::EMetric::Euclidian, Geometry::EMetric::LogEuclidian, Geometry::EMetric::LogDet,
|
||||
Geometry::EMetric::Kullback, Geometry::EMetric::Harmonic, Geometry::EMetric::Identity
|
||||
};
|
||||
setEnumeration(context, TypeId_Metric, "Metric", metrics);
|
||||
|
||||
OVP_Declare_End()
|
||||
|
||||
} // namespace Artifact
|
||||
} // namespace Plugins
|
||||
} // namespace OpenViBE
|
||||
@@ -0,0 +1,120 @@
|
||||
#include "utils/misc.hpp"
|
||||
|
||||
//*****************************************************
|
||||
//******************** CONVERSIONS ********************
|
||||
//*****************************************************
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixConvert(const OpenViBE::CMatrix& in, Eigen::MatrixXd& out)
|
||||
{
|
||||
if (in.getDimensionCount() != 2) { return false; }
|
||||
out.resize(in.getDimensionSize(0), in.getDimensionSize(1));
|
||||
|
||||
// double loop to avoid the problem of row major and column major storage
|
||||
size_t idx = 0;
|
||||
const double* buffer = in.getBuffer();
|
||||
for (size_t i = 0, nR = out.rows(); i < nR; ++i) { for (size_t j = 0, nC = out.cols(); j < nC; ++j) { out(i, j) = buffer[idx++]; } }
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixConvert(const Eigen::MatrixXd& in, OpenViBE::CMatrix& out)
|
||||
{
|
||||
if (in.rows() == 0 || in.cols() == 0) { return false; }
|
||||
const size_t nR = in.rows(), nC = in.cols();
|
||||
MatrixResize(out, nR, nC);
|
||||
|
||||
// double loop to avoid the problem of row major and column major storage
|
||||
size_t idx = 0;
|
||||
double* buffer = out.getBuffer();
|
||||
for (size_t i = 0; i < nR; ++i) { for (size_t j = 0; j < nC; ++j) { buffer[idx++] = in(i, j); } }
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixConvert(const Eigen::RowVectorXd& in, OpenViBE::CMatrix& out)
|
||||
{
|
||||
if (in.size() == 0) { return false; }
|
||||
VectorResize(out, in.size());
|
||||
//one row system copy doesn't cause problem
|
||||
memcpy(out.getBuffer(), in.data(), out.getBufferElementCount() * sizeof(double));
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixConvert(const OpenViBE::CMatrix& in, Eigen::RowVectorXd& out)
|
||||
{
|
||||
if (in.getDimensionCount() != 1) { return false; }
|
||||
out.resize(in.getDimensionSize(0));
|
||||
//one row system copy doesn't cause problem
|
||||
memcpy(out.data(), in.getBuffer(), in.getBufferElementCount() * sizeof(double));
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixConvert(const std::vector<double>& in, OpenViBE::CMatrix& out)
|
||||
{
|
||||
if (in.empty()) { return false; }
|
||||
VectorResize(out, in.size());
|
||||
//one row system copy doesn't cause problem
|
||||
memcpy(out.getBuffer(), in.data(), out.getBufferElementCount() * sizeof(double));
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//***********************************************************
|
||||
//******************** MATRIX MANAGEMENT ********************
|
||||
//***********************************************************
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixInit(OpenViBE::CMatrix& m, const size_t rows, size_t columns)
|
||||
{
|
||||
if (columns < 1) { columns = rows; }
|
||||
MatrixResize(m, rows, columns);
|
||||
m.resetBuffer(); // Set to 0
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool MatrixResize(OpenViBE::CMatrix& m, const size_t rows, size_t columns)
|
||||
{
|
||||
if (columns < 1) { columns = rows; }
|
||||
if (m.getDimensionCount() != 2 || m.getDimensionSize(0) != rows || m.getDimensionSize(1) != columns)
|
||||
{
|
||||
m.setDimensionCount(2);
|
||||
m.setDimensionSize(0, rows);
|
||||
m.setDimensionSize(1, columns);
|
||||
|
||||
// CHange label to have 1 to N label on row and column (Square Matrix Feature)
|
||||
for (size_t i = 0; i < rows; ++i) { m.setDimensionLabel(0, i, std::to_string(i + 1).c_str()); }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//***********************************************************
|
||||
//******************** VECTOR MANAGEMENT ********************
|
||||
//***********************************************************
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool VectorInit(OpenViBE::CMatrix& m, const size_t n)
|
||||
{
|
||||
VectorResize(m, n);
|
||||
m.resetBuffer(); // Set to 0
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
bool VectorResize(OpenViBE::CMatrix& m, const size_t n)
|
||||
{
|
||||
if (m.getDimensionCount() != 1 || m.getDimensionSize(0) != n)
|
||||
{
|
||||
m.setDimensionCount(1);
|
||||
m.setDimensionSize(0, n);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,71 @@
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
///
|
||||
/// \file misc.hpp
|
||||
/// \brief All functions to Convert OpenViBE::CMatrix and Eigen::MatrixXd, links to Eigen function, manipulate OpenVibe::CMatrix and more.
|
||||
/// \author Thibaut Monseigne (Inria).
|
||||
/// \version 1.0.
|
||||
/// \date 26/10/2018.
|
||||
/// \copyright <a href="https://choosealicense.com/licenses/agpl-3.0/">GNU Affero General Public License v3.0</a>.
|
||||
///
|
||||
///-------------------------------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <openvibe/ov_all.h>
|
||||
#include <Eigen/Dense>
|
||||
|
||||
//*****************************************************
|
||||
//******************** Conversions ********************
|
||||
//*****************************************************
|
||||
/// <summary> Convert OpenViBE Matrix to Eigen Matrix. </summary>
|
||||
/// <param name="in"> The Eigen Matrix. </param>
|
||||
/// <param name="out"> The OpenVibe Matrix. </param>
|
||||
bool MatrixConvert(const OpenViBE::CMatrix& in, Eigen::MatrixXd& out);
|
||||
|
||||
/// <summary> Convert Eigen Matrix to OpenViBE Matrix (It doesn't use Memory::copy because of Eigne store in column major by default). </summary>
|
||||
/// <param name="in"> The Eigen Matrix. </param>
|
||||
/// <param name="out"> The OpenVibe Matrix. </param>
|
||||
bool MatrixConvert(const Eigen::MatrixXd& in, OpenViBE::CMatrix& out);
|
||||
|
||||
/// <summary> Convert Eigen Row Vector to OpenViBE Matrix with one dimension. </summary>
|
||||
/// <param name="in"> The Eigen Row Vector. </param>
|
||||
/// <param name="out"> The OpenVibe Matrix. </param>
|
||||
bool MatrixConvert(const Eigen::RowVectorXd& in, OpenViBE::CMatrix& out);
|
||||
|
||||
/// <summary> Convert OpenViBE Matrix with one dimension to Eigen Row Vector. </summary>
|
||||
/// <param name="in"> The OpenVibe Matrix. </param>
|
||||
/// <param name="out"> The Eigen Row Vector. </param>
|
||||
bool MatrixConvert(const OpenViBE::CMatrix& in, Eigen::RowVectorXd& out);
|
||||
|
||||
/// <summary> Convertvector double to OpenViBE Matrix with one dimension. </summary>
|
||||
/// <param name="in"> The Vector of double. </param>
|
||||
/// <param name="out"> The OpenVibe Matrix. </param>
|
||||
bool MatrixConvert(const std::vector<double>& in, OpenViBE::CMatrix& out);
|
||||
|
||||
//***********************************************************
|
||||
//******************** Matrix Management ********************
|
||||
//***********************************************************
|
||||
/// <summary>Initialize the matrix (do not create objects).</summary>
|
||||
/// <param name="m">The matrix to initialize.</param>
|
||||
/// <param name="rows">The number of rows.</param>
|
||||
/// <param name="columns">The number of columns (if < 1 Init to a Square Matrix) .</param>
|
||||
bool MatrixInit(OpenViBE::CMatrix& m, size_t rows = 2, size_t columns = 0);
|
||||
|
||||
/// <summary>Resize the matrix (do not create objects).</summary>
|
||||
/// <param name="m">The matrix to resize.</param>
|
||||
/// <param name="rows">The number of rows.</param>
|
||||
/// <param name="columns">The number of columns (if < 1 resize to a Square Matrix) .</param>
|
||||
bool MatrixResize(OpenViBE::CMatrix& m, size_t rows = 2, size_t columns = 0);
|
||||
|
||||
//***********************************************************
|
||||
//******************** Vector Management ********************
|
||||
//***********************************************************
|
||||
/// <summary>Initialize the vector (matrix with one dimension) (do not create objects).</summary>
|
||||
/// <param name="m">The vector to initialize.</param>
|
||||
/// <param name="n">The number of elements.</param>
|
||||
bool VectorInit(OpenViBE::CMatrix& m, size_t n = 2);
|
||||
|
||||
/// <summary>Resize the vector (matrix with one dimension) (do not create objects).</summary>
|
||||
/// <param name="m">The vector to resize.</param>
|
||||
/// <param name="n">The number of elements.</param>
|
||||
bool VectorResize(OpenViBE::CMatrix& m, size_t n = 2);
|
||||
@@ -0,0 +1,42 @@
|
||||
IF(WIN32)
|
||||
SET(EXT cmd)
|
||||
SET(OS_FLAGS "--no-pause")
|
||||
ELSE()
|
||||
SET(EXT sh)
|
||||
SET(OS_FLAGS "")
|
||||
ENDIF()
|
||||
|
||||
SET(PATH_TEST scenarios-tests)
|
||||
|
||||
############
|
||||
SET(TEST_NAME Artifact-Amplitude)
|
||||
|
||||
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-output.csv")
|
||||
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
|
||||
ADD_TEST(compare_${TEST_NAME} "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "${PATH_TEST}/${TEST_NAME}-output.csv" "${PATH_TEST}/${TEST_NAME}-ref.csv" 0.0001)
|
||||
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
|
||||
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
|
||||
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
|
||||
|
||||
############
|
||||
SET(TEST_NAME ASR-Trainer)
|
||||
|
||||
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/ASR-model-output.xml")
|
||||
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
|
||||
# No compare between xml
|
||||
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
|
||||
|
||||
############
|
||||
SET(TEST_NAME ASR-Processor)
|
||||
ADD_TEST(clean_${TEST_NAME} "${CMAKE_COMMAND}" "-E" "remove" "-f" "${PATH_TEST}/${TEST_NAME}-output.csv")
|
||||
ADD_TEST(run_${TEST_NAME} "$ENV{OV_BINARY_PATH}/openvibe-designer.${EXT}" ${OS_FLAGS} "--no-session-management" "--invisible" "--play-fast" "${PATH_TEST}/${TEST_NAME}-test.xml")
|
||||
ADD_TEST(compare_${TEST_NAME} "$ENV{OV_BINARY_PATH}/test_thresholdDataComparison.${EXT}" ${OS_FLAGS} "${PATH_TEST}/${TEST_NAME}-output.csv" "${PATH_TEST}/${TEST_NAME}-ref.csv" 0.0001)
|
||||
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL ${OV_CONFIG_SUBDIR})
|
||||
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES ATTACHED_FILES_ON_FAIL "${PATH_TEST}/${TEST_NAME}-output.csv")
|
||||
SET_TESTS_PROPERTIES(compare_${TEST_NAME} PROPERTIES DEPENDS run_${TEST_NAME})
|
||||
SET_TESTS_PROPERTIES(run_${TEST_NAME} PROPERTIES DEPENDS clean_${TEST_NAME})
|
||||
+15361
File diff suppressed because it is too large
Load Diff
+797
@@ -0,0 +1,797 @@
|
||||
<OpenViBE-Scenario>
|
||||
<FormatVersion>2</FormatVersion>
|
||||
<Creator>OpenViBE Designer</Creator>
|
||||
<CreatorVersion>3.0.0-beta</CreatorVersion>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Identifier>(0x00425137, 0xf2a30c29)</Identifier>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Test Name</Name>
|
||||
<DefaultValue>Covariance-Matrix-Calculator</DefaultValue>
|
||||
<Value>ASR-Processor</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Inputs></Inputs>
|
||||
<Outputs></Outputs>
|
||||
<Boxes>
|
||||
<Box>
|
||||
<Identifier>(0x00000e25, 0x00003c5e)</Identifier>
|
||||
<Name>Timeout</Name>
|
||||
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
|
||||
<Name>Input Stream</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output Stimulations</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Timeout delay</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>30</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Output Stimulation</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Label_00</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>560</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>944</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00001182, 0x00005e08)</Identifier>
|
||||
<Name>ASR Processor</Name>
|
||||
<AlgorithmClassIdentifier>(0x41727469, 0x17f1c6e2)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input Signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Signal Reconstructed</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output Signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename to load model</Name>
|
||||
<DefaultValue>${Player_ScenarioDirectory}/ASR-model.xml</DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/ASR-model-ref.xml</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>528</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x3c89d3cf, 0x83076356)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x000026cd, 0x00007e87)</Identifier>
|
||||
<Name>Simple DSP</Name>
|
||||
<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input - A</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Equation</Name>
|
||||
<DefaultValue>x</DefaultValue>
|
||||
<Value>1.5*x</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>480</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x21889dc4, 0x1126497e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x0000586a, 0x00001f44)</Identifier>
|
||||
<Name>Time based epoching</Name>
|
||||
<AlgorithmClassIdentifier>(0x00777fa0, 0x5dc3f560)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Epoched signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch duration (in sec)</Name>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
<Value>1</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch intervals (in sec)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>1</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>432</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xc5ff41e9, 0xccc59a01)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00007dde, 0x00001445)</Identifier>
|
||||
<Name>CSV File Writer</Name>
|
||||
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input stream</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations stream</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/$var{Test Name}-output.csv</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Precision</Name>
|
||||
<DefaultValue>10</DefaultValue>
|
||||
<Value>10</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Append data</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Only last matrix</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>608</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xee4b6d30, 0x788aed29)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>4</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x11a6038b, 0x7157c284)</Identifier>
|
||||
<Name>Generic stream reader</Name>
|
||||
<AlgorithmClassIdentifier>(0x6468099f, 0x0370095a)</AlgorithmClassIdentifier>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output stream 2</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 3</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue></DefaultValue>
|
||||
<Value>${Path_Data}/scenarios/signals/bci-motor-imagery.ov</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>160</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xf37b8e7a, 0x1bc33e4e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x005e1c11)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x2b88852d, 0x43d7a773)</Identifier>
|
||||
<Name>Reference Channel</Name>
|
||||
<AlgorithmClassIdentifier>(0x444721ad, 0x78342cf5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel</Name>
|
||||
<DefaultValue>Ref_Nose</DefaultValue>
|
||||
<Value>Nz</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>224</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x7e39891d, 0x32cf5be7)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5045ebd9, 0x67325c0b)</Identifier>
|
||||
<Name>Player Controller</Name>
|
||||
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Stimulation name</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Label_00</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
|
||||
<Name>Action to perform</Name>
|
||||
<DefaultValue>Pause</DefaultValue>
|
||||
<Value>Stop</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>608</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>944</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x568d148e, 0x650792b3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5194b6cb, 0x7e001787)</Identifier>
|
||||
<Name>C3;C4;FC3;FC4</Name>
|
||||
<AlgorithmClassIdentifier>(0x361722e8, 0x311574e8)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel List</Name>
|
||||
<DefaultValue>-</DefaultValue>
|
||||
<Value>C3;C4;FC3;FC4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x3bcf9e67, 0x0c23994d)</TypeIdentifier>
|
||||
<Name>Action</Name>
|
||||
<DefaultValue>Select</DefaultValue>
|
||||
<Value>Select</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>272</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x277826e1, 0xa30a3bd0)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>3</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x558c587f, 0x223f3b67)</Identifier>
|
||||
<Name>Temporal filter</Name>
|
||||
<AlgorithmClassIdentifier>(0xb4f9d042, 0x9d79f2e5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Filtered signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2f2c606c, 0x8512ed68)</TypeIdentifier>
|
||||
<Name>Filter method</Name>
|
||||
<DefaultValue>Butterworth</DefaultValue>
|
||||
<Value>Butterworth</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xfa20178e, 0x4cba62e9)</TypeIdentifier>
|
||||
<Name>Filter type</Name>
|
||||
<DefaultValue>Low pass</DefaultValue>
|
||||
<Value>Band pass</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Filter order</Name>
|
||||
<DefaultValue>4</DefaultValue>
|
||||
<Value>4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Low cut frequency (Hz)</Name>
|
||||
<DefaultValue>29</DefaultValue>
|
||||
<Value>8.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>High cut frequency (Hz)</Name>
|
||||
<DefaultValue>40</DefaultValue>
|
||||
<Value>24.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Pass band ripple (dB)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>0.500000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>384</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x27a4ceec, 0x876d6384)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x001a79f8)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
</Boxes>
|
||||
<Links>
|
||||
<Link>
|
||||
<Identifier>(0x00000bfd, 0x00000a7c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000017f2, 0x00004d57)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x000026cd, 0x00007e87)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00001182, 0x00005e08)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002551, 0x0000620c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00004034, 0x000058ef)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000043f4, 0x0000072e)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>1</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000052e6, 0x00006ead)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00000e25, 0x00003c5e)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5045ebd9, 0x67325c0b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000060a3, 0x00005f0d)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00001182, 0x00005e08)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00007dde, 0x00001445)</BoxIdentifier>
|
||||
<BoxInputIndex>1</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00006a9f, 0x00004bba)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00001182, 0x00005e08)</BoxIdentifier>
|
||||
<BoxOutputIndex>1</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00007dde, 0x00001445)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00006d07, 0x00002bf8)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x000026cd, 0x00007e87)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
</Links>
|
||||
<Comments>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae2)</Identifier>
|
||||
<Text>Input Signal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>208</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae3)</Identifier>
|
||||
<Text>Signal Processing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>384</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
</Comments>
|
||||
<Metadata>
|
||||
<Entry>
|
||||
<Identifier>(0x000062ac, 0x00003721)</Identifier>
|
||||
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
|
||||
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x0000041e, 0x000069b5)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004c5d, 0x000021d4)","index":0,"name":"Default tab","parentIdentifier":"(0x0000041e, 0x000069b5)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x0000420e, 0x000074bb)","index":0,"name":"Empty","parentIdentifier":"(0x00004c5d, 0x000021d4)","type":0}]</Data>
|
||||
</Entry>
|
||||
</Metadata>
|
||||
</OpenViBE-Scenario>
|
||||
+801
@@ -0,0 +1,801 @@
|
||||
<OpenViBE-Scenario>
|
||||
<FormatVersion>2</FormatVersion>
|
||||
<Creator>OpenViBE Designer</Creator>
|
||||
<CreatorVersion>3.0.0-beta</CreatorVersion>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Identifier>(0x00425137, 0xf2a30c29)</Identifier>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Test Name</Name>
|
||||
<DefaultValue>Covariance-Matrix-Calculator</DefaultValue>
|
||||
<Value>ASR-Trainer</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Inputs></Inputs>
|
||||
<Outputs></Outputs>
|
||||
<Boxes>
|
||||
<Box>
|
||||
<Identifier>(0x000015a8, 0x000079e9)</Identifier>
|
||||
<Name>Player Controller</Name>
|
||||
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Stimulation name</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_TrainCompleted</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
|
||||
<Name>Action to perform</Name>
|
||||
<DefaultValue>Pause</DefaultValue>
|
||||
<Value>Stop</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>496</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x568d148e, 0x650792b3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x01165f9f)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
|
||||
<Value>false</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x0000586a, 0x00001f44)</Identifier>
|
||||
<Name>Time based epoching</Name>
|
||||
<AlgorithmClassIdentifier>(0x00777fa0, 0x5dc3f560)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Epoched signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch duration (in sec)</Name>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
<Value>1.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Epoch intervals (in sec)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>0.5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>400</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xc5ff41e9, 0xccc59a01)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00006bd5, 0x0000489b)</Identifier>
|
||||
<Name>ASR Trainer</Name>
|
||||
<AlgorithmClassIdentifier>(0x41727469, 0xc05f38ff)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input Signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Tran-completed Flag</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename to save model</Name>
|
||||
<DefaultValue>${Player_ScenarioDirectory}/ASR-model.xml</DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/ASR-model-output.xml</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Train trigger</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Train</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Train</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x5261636b, 0x4d455452)</TypeIdentifier>
|
||||
<Name>Metric</Name>
|
||||
<DefaultValue>Euclidian</DefaultValue>
|
||||
<Value>Euclidian</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Channel ratio to reconstruct</Name>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
<Value>1</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Rejection limit</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>5</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>448</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xe02de2aa, 0x821ba183)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>5</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x11a6038b, 0x7157c284)</Identifier>
|
||||
<Name>Generic stream reader</Name>
|
||||
<AlgorithmClassIdentifier>(0x6468099f, 0x0370095a)</AlgorithmClassIdentifier>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output stream 2</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 3</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue></DefaultValue>
|
||||
<Value>${Path_Data}/scenarios/signals/bci-motor-imagery.ov</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>128</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xf37b8e7a, 0x1bc33e4e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x005e1c11)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x1396fde6, 0x1c649749)</Identifier>
|
||||
<Name>Identity</Name>
|
||||
<AlgorithmClassIdentifier>(0x5dffe431, 0x35215c50)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Input stream 1</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>192</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>608</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xa8ffe2a3, 0x27038f03)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x0017fc7a)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x1396fde6, 0x1c64974a)</Identifier>
|
||||
<Name>Identity</Name>
|
||||
<AlgorithmClassIdentifier>(0x5dffe431, 0x35215c50)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Input stream 1</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stream 1</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x17ee7c08, 0x94c14893)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>400</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>608</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xa8ffe2a3, 0x27038f03)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x0017fc7a)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xfba64161, 0x65304e21)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x2b88852d, 0x43d7a773)</Identifier>
|
||||
<Name>Reference Channel</Name>
|
||||
<AlgorithmClassIdentifier>(0x444721ad, 0x78342cf5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel</Name>
|
||||
<DefaultValue>Ref_Nose</DefaultValue>
|
||||
<Value>Nz</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>192</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x7e39891d, 0x32cf5be7)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5045ebd9, 0x67325c0b)</Identifier>
|
||||
<Name>Player Controller</Name>
|
||||
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Stimulation name</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_EndOfFile</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
|
||||
<Name>Action to perform</Name>
|
||||
<DefaultValue>Pause</DefaultValue>
|
||||
<Value>Stop</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>192</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>896</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x568d148e, 0x650792b3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x5194b6cb, 0x7e001787)</Identifier>
|
||||
<Name>C3;C4;FC3;FC4</Name>
|
||||
<AlgorithmClassIdentifier>(0x361722e8, 0x311574e8)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Channel List</Name>
|
||||
<DefaultValue>-</DefaultValue>
|
||||
<Value>C3;C4;FC3;FC4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x3bcf9e67, 0x0c23994d)</TypeIdentifier>
|
||||
<Name>Action</Name>
|
||||
<DefaultValue>Select</DefaultValue>
|
||||
<Value>Select</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x666f25e9, 0x3e5738d6)</TypeIdentifier>
|
||||
<Name>Channel Matching Method</Name>
|
||||
<DefaultValue>Smart</DefaultValue>
|
||||
<Value>Smart</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>240</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x277826e1, 0xa30a3bd0)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>3</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x558c587f, 0x223f3b67)</Identifier>
|
||||
<Name>Temporal filter</Name>
|
||||
<AlgorithmClassIdentifier>(0xb4f9d042, 0x9d79f2e5)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Filtered signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2f2c606c, 0x8512ed68)</TypeIdentifier>
|
||||
<Name>Filter method</Name>
|
||||
<DefaultValue>Butterworth</DefaultValue>
|
||||
<Value>Butterworth</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xfa20178e, 0x4cba62e9)</TypeIdentifier>
|
||||
<Name>Filter type</Name>
|
||||
<DefaultValue>Low pass</DefaultValue>
|
||||
<Value>Band pass</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Filter order</Name>
|
||||
<DefaultValue>4</DefaultValue>
|
||||
<Value>4</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Low cut frequency (Hz)</Name>
|
||||
<DefaultValue>29</DefaultValue>
|
||||
<Value>8.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>High cut frequency (Hz)</Name>
|
||||
<DefaultValue>40</DefaultValue>
|
||||
<Value>24.000000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Pass band ripple (dB)</Name>
|
||||
<DefaultValue>0.5</DefaultValue>
|
||||
<Value>0.500000</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>352</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x27a4ceec, 0x876d6384)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x001a79f8)</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
</Boxes>
|
||||
<Links>
|
||||
<Link>
|
||||
<Identifier>(0x00000bfd, 0x00000a7c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002161, 0x00005718)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x000015a8, 0x000079e9)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000023c3, 0x0000335d)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>2</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c649749)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002551, 0x0000620c)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5194b6cb, 0x7e001787)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00002996, 0x00001419)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>2</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x5045ebd9, 0x67325c0b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x0000311a, 0x00000602)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c64974a)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00003869, 0x000048f3)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00006bd5, 0x0000489b)</BoxIdentifier>
|
||||
<BoxInputIndex>1</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00004034, 0x000058ef)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x558c587f, 0x223f3b67)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x0000586a, 0x00001f44)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x000043f4, 0x0000072e)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x11a6038b, 0x7157c284)</BoxIdentifier>
|
||||
<BoxOutputIndex>1</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x2b88852d, 0x43d7a773)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00006db7, 0x00007acd)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c649749)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x1396fde6, 0x1c64974a)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
</Links>
|
||||
<Comments>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae2)</Identifier>
|
||||
<Text>Input Signal
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>176</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
<Comment>
|
||||
<Identifier>(0x000054d7, 0x00005ae3)</Identifier>
|
||||
<Text>Signal Processing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</Text>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x473d9a43, 0x97fc0a97)</Identifier>
|
||||
<Value>736</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x7234b86b, 0x2b8651a5)</Identifier>
|
||||
<Value>352</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Comment>
|
||||
</Comments>
|
||||
<Metadata>
|
||||
<Entry>
|
||||
<Identifier>(0x000062ac, 0x00003721)</Identifier>
|
||||
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
|
||||
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x0000041e, 0x000069b5)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004c5d, 0x000021d4)","index":0,"name":"Default tab","parentIdentifier":"(0x0000041e, 0x000069b5)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x0000420e, 0x000074bb)","index":0,"name":"Empty","parentIdentifier":"(0x00004c5d, 0x000021d4)","type":0}]</Data>
|
||||
</Entry>
|
||||
</Metadata>
|
||||
</OpenViBE-Scenario>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<ASR>
|
||||
<ASR-data metric="Euclidian" nChannel="4" maxChannel="1" trivial="true">
|
||||
<Median size="4"> 3.64776520261426 1.29023655895292 2.32623534894098 0.971947765103693
|
||||
1.29023655895292 3.58502947106046 0.935080263836635 2.28024769881738
|
||||
2.32623534894098 0.935080263836635 3.41566493769342 1.15232554661866
|
||||
0.971947765103693 2.28024769881738 1.15232554661866 3.46016343202863</Median>
|
||||
<Threshold size="4">-0.708243887391283 0.667512895061541 0.72870499429868 -0.667988195409754
|
||||
-1.14363606301638 -1.24139284292518 1.21015772890246 1.29220172963208
|
||||
3.42229744240393 -3.44412809610297 3.34928062316736 -3.41650295481661
|
||||
-5.86740559674539 -5.72285798578988 -5.52079337731776 -5.52039255373496</Threshold>
|
||||
<R size="4">1 0 0 0
|
||||
0 1 0 0
|
||||
0 0 1 0
|
||||
0 0 0 1</R>
|
||||
<Cov size="0"></Cov>
|
||||
</ASR-data>
|
||||
</ASR>
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
Time:32Hz,Epoch,sinusOsc 1,sinusOsc 2,sinusOsc 3,sinusOsc 4,Event Id,Event Date,Event Duration
|
||||
0.0000000000,0,0.0000000000,0.0000000000,0.0000000000,0.0000000000,,,
|
||||
0.0312500000,0,1.3687341120,0.0834505686,1.3965074831,2.3460347303,,,
|
||||
0.0625000000,0,0.0834505686,3.3460347303,1.6342771847,0.0223674799,,,
|
||||
0.0937500000,0,1.3965074831,1.6342771847,0.8587778323,0.2862985568,,,
|
||||
0.1250000000,0,2.3460347303,0.0223674799,0.2862985568,1.2564364343,,,
|
||||
0.1562500000,0,0.6652579106,1.0605198516,0.7209285523,0.3100244990,,,
|
||||
0.1875000000,0,1.6342771847,0.2862985568,1.5912609145,0.5189549878,,,
|
||||
0.2187500000,0,2.0374036140,-0.8460419110,1.6531536145,-1.3302670931,,,
|
||||
0.2500000000,1,0.0223674799,1.2564364343,0.5189549878,-2.2082337379,,,
|
||||
0.2812500000,1,0.8587778323,1.5912609145,-0.8135359478,0.7847811254,,,
|
||||
0.3125000000,1,1.0605198516,0.3100244990,-1.0731867792,-0.2119004478,,,
|
||||
0.3437500000,1,-0.8527917255,1.3612667999,-0.1597583084,-1.8827722525,,,
|
||||
0.3750000000,1,0.2862985568,0.5189549878,0.7847811254,0.9814084992,,,
|
||||
0.4062500000,1,0.6745718556,-2.0249997390,0.7541775274,1.5472144212,,,
|
||||
0.4375000000,1,-0.8460419110,-1.3302670931,0.0634287720,0.7819705904,,,
|
||||
0.4687500000,1,0.7209285523,-1.0731867792,-0.0655390377,0.9506913659,,,
|
||||
0.5000000000,2,1.2564364343,-2.2082337379,0.9814084992,-0.5852777802,,,
|
||||
0.5312500000,2,-0.0631007468,-0.2987362122,2.4069561396,0.2823791178,,,
|
||||
0.5625000000,2,1.5912609145,0.7847811254,2.8779488994,0.9030515780,,,
|
||||
0.5937500000,2,1.8564555014,-0.8355661309,2.0520274556,-2.4793752101,,,
|
||||
0.6250000000,2,0.3100244990,-0.2119004478,0.9506913659,-1.7310810939,,,
|
||||
0.6562500000,2,1.6531536145,0.0634287720,0.7412410587,0.9701626979,,,
|
||||
0.6875000000,2,1.3612667999,-1.8827722525,1.3761889031,-0.4108610506,,,
|
||||
0.7187500000,2,-3.5404879020,-0.8086493471,1.7027679072,-0.2124145663,,,
|
||||
0.7500000000,3,0.5189549878,0.9814084992,0.9030515780,0.8068531766,,,
|
||||
0.7812500000,3,-0.1244988728,0.2724851298,-0.4594717137,0.6869181620,,,
|
||||
0.8125000000,3,-2.0249997390,1.5472144212,-1.0439874057,2.0694974039,,,
|
||||
0.8437500000,3,-0.8135359478,2.8779488994,-0.2805237468,0.3641695321,,,
|
||||
0.8750000000,3,-1.3302670931,0.7819705904,0.9701626979,-1.8389984936,,,
|
||||
0.9062500000,3,-2.7774418870,0.2993489279,1.4263392704,0.6679934029,,,
|
||||
0.9375000000,3,-1.0731867792,0.9506913659,0.8667484914,0.1385386313,,,
|
||||
0.9687500000,3,-1.2560591950,-0.8668315473,0.3301381800,-2.4206456881,,,
|
||||
1.0000000000,4,-2.2082337379,-0.5852777802,0.8068531766,-0.7723189861,,,
|
||||
1.0312500000,4,-0.1597583084,1.3761889031,1.9907896528,0.0983659614,,,
|
||||
1.0625000000,4,-0.2987362122,0.2823791178,2.5877673403,5.4087503374,,,
|
||||
1.0937500000,4,-1.1495363031,-0.0385524690,1.8235323387,1.3163956500,,,
|
||||
1.1250000000,4,0.7847811254,0.9030515780,0.3641695321,-0.3034584827,,,
|
||||
1.1562500000,4,0.2599756842,-1.2879184845,-0.4451458738,0.7048895721,,,
|
||||
1.1875000000,4,-0.8355661309,-2.4793752101,-0.1234290101,2.5309068373,,,
|
||||
1.2187500000,4,0.7541775274,-1.0439874057,0.4456384107,-0.8266210987,,,
|
||||
1.2500000000,5,-0.2119004478,-1.7310810939,0.1385386313,-1.7466375845,,,
|
||||
1.2812500000,5,-1.4354651966,-1.5706412435,-1.0080375931,0.2727140524,,,
|
||||
1.3125000000,5,0.0634287720,0.9701626979,-1.7974455953,-0.8262613606,,,
|
||||
1.3437500000,5,-0.9654362809,0.5424888696,-1.2808655550,-0.9489926046,,,
|
||||
1.3750000000,5,-1.8827722525,-0.4108610506,0.0983659614,-0.5547380276,,,
|
||||
1.4062500000,5,-0.0655390377,0.8667484914,0.9871376509,-0.6953344902,,,
|
||||
1.4375000000,5,-0.8086493471,-0.2124145663,0.6661389185,1.9635447878,,,
|
||||
1.4687500000,5,-1.1988821934,-1.3394010772,-0.1688100058,1.5699068231,,,
|
||||
1.5000000000,6,0.9814084992,0.8068531766,-0.3034584827,-1.0425910551,,,
|
||||
1.5312500000,6,0.4099144509,1.1952068865,0.4983557018,1.1445444315,,,
|
||||
1.5625000000,6,0.2724851298,0.6869181620,1.1867185475,1.5013198216,,,
|
||||
1.5937500000,6,2.4069561396,2.5877673403,0.6771519036,-1.2419463750,,,
|
||||
1.6250000000,6,1.5472144212,2.0694974039,-0.8266210987,-1.0463628150,,,
|
||||
1.6562500000,6,1.1997027388,-0.1839871598,-2.0168971580,-1.1194784628,,,
|
||||
1.6875000000,6,2.8779488994,0.3641695321,-1.9643056971,-0.7420012388,,,
|
||||
1.7187500000,6,1.4563051832,-0.2026887361,-1.1487345134,0.7176546469,,,
|
||||
1.7500000000,7,0.7819705904,-1.8389984936,-0.8262613606,-1.0909272040,,,
|
||||
1.7812500000,7,2.0520274556,-0.1234290101,-1.4955637468,-0.3859075051,,,
|
||||
1.8125000000,7,0.2993489279,0.6679934029,-2.2938779901,2.8650857800,,,
|
||||
1.8437500000,7,-0.3417921204,-0.7611641008,-2.0424755980,0.8737882447,,,
|
||||
1.8750000000,7,0.9506913659,0.1385386313,-0.6953344902,-0.6117828212,,,
|
||||
1.9062500000,7,-0.6688572272,0.0043701116,0.5394431118,0.7816769419,,,
|
||||
1.9375000000,7,-0.8668315473,-2.4206456881,0.5615308290,-0.1516857685,,,
|
||||
1.9687500000,7,0.7412410587,-1.7974455953,-0.3822991487,-0.4131300313,,,
|
||||
2.0000000000,8,-0.5852777802,-0.7723189861,-1.0425910551,-0.9497739372,,,
|
||||
2.0312500000,8,-0.3568127661,-1.6840958410,-0.6769683658,-2.3559666125,,,
|
||||
2.0625000000,8,1.3761889031,0.0983659614,0.0737680120,0.4128262271,,,
|
||||
2.0937500000,8,0.0324007523,1.8606501325,-0.0164610272,1.3211814381,,,
|
||||
2.1250000000,8,0.2823791178,0.4087503374,-1.2419463750,-1.2291006398,,,
|
||||
2.1562500000,8,1.7027679072,0.6661389185,-2.5427995283,0.6576534641,,,
|
||||
2.1875000000,8,-0.0385524690,1.3163956500,-2.6920820881,2.2084155704,,,
|
||||
2.2187500000,8,-0.0554208172,-0.6897861214,-1.6940570431,0.5039915002,,,
|
||||
2.2500000000,9,0.9030515780,-0.3034584827,-0.7420012388,0.3243588722,,,
|
||||
2.2812500000,9,-1.1992994843,1.5710854567,-0.7922659696,-0.7607044707,,,
|
||||
2.3125000000,9,-1.2879184845,0.7048895721,-1.4509880084,-0.9995277474,,,
|
||||
2.3437500000,9,-0.4594717137,1.1867185475,-3.4927627539,0.6782850799,,,
|
||||
2.3750000000,9,-2.4793752101,2.5309068373,-0.3859075051,-1.5904395907,,,
|
||||
2.4062500000,9,-2.1726756896,0.3807813663,1.0007956907,-2.2268648350,,,
|
||||
2.4375000000,9,-1.0439874057,-0.8266210987,1.3630557893,1.3784805497,,,
|
||||
2.4687500000,9,-2.6298261328,-0.1052226362,0.4624831701,0.9541473858,,,
|
||||
2.5000000000,10,-1.7310810939,-1.7466375845,-0.6117828212,-0.1603763521,,,
|
||||
2.5312500000,10,-0.2805237468,-1.9643056971,-0.7284838207,1.0964841466,,,
|
||||
2.5625000000,10,-1.5706412435,0.2727140524,-0.0203749932,0.6291119609,,,
|
||||
2.5937500000,10,-0.3846152674,-0.2942868426,0.3347196668,1.0644429647,,,
|
||||
2.6250000000,10,0.9701626979,-0.8262613606,-0.4131300313,0.4825889334,,,
|
||||
2.6562500000,10,-0.4783392019,0.5368167826,-1.6227881216,-2.4009484456,,,
|
||||
2.6875000000,10,0.5424888696,-0.9489926046,-1.9662756714,-0.6742923707,,,
|
||||
2.7187500000,10,1.4263392704,-2.2938779901,-0.9734886565,0.8125103403,,,
|
||||
2.7500000000,11,-0.4108610506,-0.5547380276,0.4128262271,-1.8494334914,,,
|
||||
2.7812500000,11,0.3635555387,-0.5968321736,0.9308023856,-0.8971534422,,,
|
||||
2.8125000000,11,0.8667484914,-0.6953344902,0.4463823054,1.1069949952,,,
|
||||
2.8437500000,11,-1.1002432968,1.9100213158,0.0426636172,0.7912462530,,,
|
||||
2.8750000000,11,-0.2124145663,1.9635447878,0.6576534641,1.4702474315,,,
|
||||
2.9062500000,11,0.3301381800,0.5615308290,1.9028072080,0.2464688260,,,
|
||||
2.9375000000,11,-1.3394010772,1.5699068231,2.4783674333,-0.4482837744,,,
|
||||
2.9687500000,11,0.0041022005,0.7251494037,1.6998640384,1.7383508457,,,
|
||||
3.0000000000,12,0.8068531766,-1.0425910551,0.3243588722,-0.4315280454,,,
|
||||
3.0312500000,12,-0.4912335635,0.5893078056,-0.3080250331,-2.7643803080,,,
|
||||
3.0625000000,12,1.1952068865,1.1445444315,0.1958671810,-0.1897743319,,,
|
||||
3.0937500000,12,1.9907896528,0.0737680120,0.8883208288,0.0114502696,,,
|
||||
3.1250000000,12,0.6869181620,1.5013198216,0.6782850799,-0.7741952885,,,
|
||||
3.1562500000,12,2.2564956184,1.3168811607,-0.3157015938,0.2792427283,,,
|
||||
3.1875000000,12,2.5877673403,-1.2419463750,-0.8753223314,-0.0063782440,,,
|
||||
3.2187500000,12,0.8953186036,-1.0211462797,-0.1299899339,1.5184145208,,,
|
||||
3.2500000000,13,2.0694974039,-1.0463628150,1.3784805497,2.2274498842,,,
|
||||
3.2812500000,13,1.8235323387,-2.6920820881,2.2848351796,-1.0708097558,,,
|
||||
3.3125000000,13,-0.1839871598,-1.1194784628,1.9524956297,-0.4579413455,,,
|
||||
3.3437500000,13,0.8200513727,0.4282048889,1.1561678807,1.3246878224,,,
|
||||
3.3750000000,13,0.3641695321,-0.7420012388,1.0964841466,-1.3229268867,,,
|
||||
3.4062500000,13,-1.4990336855,0.0949124460,1.9292948033,-1.7358532045,,,
|
||||
3.4375000000,13,-0.2026887361,0.7176546469,2.5655088240,-0.5956776917,,,
|
||||
3.4687500000,13,-0.4451458738,-3.4509880084,1.9820311065,-0.5174254152,,,
|
||||
3.5000000000,14,-1.8389984936,-1.0909272040,0.4825889334,1.1467688435,,,
|
||||
3.5312500000,14,-0.0912575086,0.4355042258,-0.5981556844,0.3428316999,,,
|
||||
3.5625000000,14,-0.1234290101,-0.3859075051,-0.4068856788,-0.6407408097,,,
|
||||
3.5937500000,14,-1.2117474109,0.8702078730,0.4843950700,2.4003691243,,,
|
||||
3.6250000000,14,0.6679934029,2.8650857800,0.8125103403,1.5387091828,,,
|
||||
3.6562500000,14,0.4456384107,1.3630557893,0.1532086532,-1.4887291762,,,
|
||||
3.6875000000,14,-0.7611641008,0.8737882447,-0.5766315153,-0.2453985203,,,
|
||||
3.7187500000,14,0.8470458326,1.5190458612,-0.2412622290,-0.2134703607,,,
|
||||
3.7500000000,15,3.1385386313,-0.6117828212,1.1069949952,-1.0133258960,,,
|
||||
3.7812500000,15,-1.3353997060,-1.0513076674,2.2186267603,-0.5325571084,,,
|
||||
3.8125000000,15,0.0043701116,0.7816769419,2.0590285388,-1.6244991150,,,
|
||||
3.8437500000,15,-1.0080375931,-0.0203749932,0.9761195490,0.0997748588,,,
|
||||
3.8750000000,15,-2.4206456881,-0.1516857685,0.2464688260,2.4269124897,,,
|
||||
3.9062500000,15,-0.9395340306,1.3451047636,0.5465998956,-0.2036214940,,,
|
||||
3.9375000000,15,-1.7974455953,-0.4131300313,1.1687187342,-0.1745101669,,,
|
||||
3.9687500000,15,-2.7180780314,-1.9703264255,0.9097323660,2.1418587490,,,
|
||||
4.0000000000,16,-0.7723189861,-0.9497739372,-0.4315280454,0.3403443506,,,
|
||||
4.0312500000,16,-1.2808655550,-1.9662756714,-1.7403637988,-0.7055335942,,,
|
||||
4.0625000000,16,-1.6840958410,-2.3559666125,-1.8417807445,-0.8776538362,,,
|
||||
4.0937500000,16,0.5621986200,0.2326467119,-0.8451463680,-1.5934803325,,,
|
||||
4.1250000000,16,0.0983659614,0.4128262271,0.0114502696,0.3268928833,,,
|
||||
4.1562500000,16,-0.2036004516,-0.2453224994,-0.1722950538,-0.2224224967,,,
|
||||
4.1875000000,16,1.8606501325,1.3211814381,-0.9238158916,-1.9913265080,,,
|
||||
4.2187500000,16,0.9871376509,0.4463823054,-1.0182130516,1.2816197960,,,
|
||||
4.2500000000,17,0.4087503374,-1.2291006398,-0.0063782440,2.2316009870,,,
|
||||
4.2812500000,17,2.0306267967,0.3530693071,1.1785364181,-0.1218676333,,,
|
||||
4.3125000000,17,0.6661389185,0.6576534641,1.2700366680,0.5685098797,,,
|
||||
4.3437500000,17,-0.0986454486,0.0272639229,0.1363600204,0.5013551605,,,
|
||||
4.3750000000,17,1.3163956500,2.2084155704,-1.0708097558,-0.0630998880,,,
|
||||
4.4062500000,17,-0.1688100058,2.4783674333,-1.2623176879,0.2050039337,,,
|
||||
4.4375000000,17,-0.6897861214,0.5039915002,-0.6561812935,-2.1904913958,,,
|
||||
4.4687500000,17,0.9355137218,0.9639543981,-0.4500766717,-1.6627065276,,,
|
||||
4.5000000000,18,-0.3034584827,0.3243588722,-1.3229268867,1.3608217321,,,
|
||||
4.5312500000,18,-0.3386875992,-1.9062872569,-2.5598552254,-0.4934669717,,,
|
||||
4.5625000000,18,1.5710854567,-0.7607044707,-2.8525797785,-0.9834341811,,,
|
||||
4.5937500000,18,0.4983557018,0.1958671810,-1.8324179939,1.6467899274,,,
|
||||
4.6250000000,18,0.7048895721,-0.9995277474,-0.5174254152,1.2563684948,,,
|
||||
4.6562500000,18,2.5225353348,0.1897809985,-0.1405557019,0.9485678810,,,
|
||||
4.6875000000,18,1.1867185475,0.6782850799,-0.7450991679,0.3616207236,,,
|
||||
4.7187500000,18,1.1942482732,-1.6946984350,-1.2063198145,-3.3141503457,,,
|
||||
4.7500000000,19,2.5309068373,-1.5904395907,-0.6407408097,0.4598607025,,,
|
||||
4.7812500000,19,0.6771519036,-0.8753223314,0.4848661573,0.1463891898,,,
|
||||
4.8125000000,19,0.3807813663,-2.2268648350,0.8733864765,-2.8719383531,,,
|
||||
4.8437500000,19,1.2989304814,-0.8191135751,-0.0657413107,-0.7095830712,,,
|
||||
4.8750000000,19,-0.8266210987,1.3784805497,-1.4887291762,1.1618134295,,,
|
||||
4.9062500000,19,-1.0543215730,0.4731135773,-2.0684361890,-0.1603183729,,,
|
||||
4.9375000000,19,-0.1052226362,0.9541473858,-1.5028247523,0.6044175730,,,
|
||||
4.9687500000,19,-2.0168971580,1.9524956297,-0.7998792476,0.6622647617,,,
|
||||
|
+105
@@ -0,0 +1,105 @@
|
||||
Time:32Hz,Epoch,sinusOsc 1,sinusOsc 2,sinusOsc 3,sinusOsc 4,Event Id,Event Date,Event Duration
|
||||
0.2500000000,0,0.0223674799,1.2564364343,0.5189549878,-2.2082337379,,,
|
||||
0.2812500000,0,0.8587778323,1.5912609145,-0.8135359478,0.7847811254,,,
|
||||
0.3125000000,0,1.0605198516,0.3100244990,-1.0731867792,-0.2119004478,,,
|
||||
0.3437500000,0,-0.8527917255,1.3612667999,-0.1597583084,-1.8827722525,,,
|
||||
0.3750000000,0,0.2862985568,0.5189549878,0.7847811254,0.9814084992,,,
|
||||
0.4062500000,0,0.6745718556,-2.0249997390,0.7541775274,1.5472144212,,,
|
||||
0.4375000000,0,-0.8460419110,-1.3302670931,0.0634287720,0.7819705904,,,
|
||||
0.4687500000,0,0.7209285523,-1.0731867792,-0.0655390377,0.9506913659,,,
|
||||
0.7500000000,1,0.5189549878,0.9814084992,0.9030515780,0.8068531766,,,
|
||||
0.7812500000,1,-0.1244988728,0.2724851298,-0.4594717137,0.6869181620,,,
|
||||
0.8125000000,1,-2.0249997390,1.5472144212,-1.0439874057,2.0694974039,,,
|
||||
0.8437500000,1,-0.8135359478,2.8779488994,-0.2805237468,0.3641695321,,,
|
||||
0.8750000000,1,-1.3302670931,0.7819705904,0.9701626979,-1.8389984936,,,
|
||||
0.9062500000,1,-2.7774418870,0.2993489279,1.4263392704,0.6679934029,,,
|
||||
0.9375000000,1,-1.0731867792,0.9506913659,0.8667484914,0.1385386313,,,
|
||||
0.9687500000,1,-1.2560591950,-0.8668315473,0.3301381800,-2.4206456881,,,
|
||||
1.2500000000,2,-0.2119004478,-1.7310810939,0.1385386313,-1.7466375845,,,
|
||||
1.2812500000,2,-1.4354651966,-1.5706412435,-1.0080375931,0.2727140524,,,
|
||||
1.3125000000,2,0.0634287720,0.9701626979,-1.7974455953,-0.8262613606,,,
|
||||
1.3437500000,2,-0.9654362809,0.5424888696,-1.2808655550,-0.9489926046,,,
|
||||
1.3750000000,2,-1.8827722525,-0.4108610506,0.0983659614,-0.5547380276,,,
|
||||
1.4062500000,2,-0.0655390377,0.8667484914,0.9871376509,-0.6953344902,,,
|
||||
1.4375000000,2,-0.8086493471,-0.2124145663,0.6661389185,1.9635447878,,,
|
||||
1.4687500000,2,-1.1988821934,-1.3394010772,-0.1688100058,1.5699068231,,,
|
||||
1.5000000000,3,0.9814084992,0.8068531766,-0.3034584827,-1.0425910551,,,
|
||||
1.5312500000,3,0.4099144509,1.1952068865,0.4983557018,1.1445444315,,,
|
||||
1.5625000000,3,0.2724851298,0.6869181620,1.1867185475,1.5013198216,,,
|
||||
1.5937500000,3,2.4069561396,2.5877673403,0.6771519036,-1.2419463750,,,
|
||||
1.6250000000,3,1.5472144212,2.0694974039,-0.8266210987,-1.0463628150,,,
|
||||
1.6562500000,3,1.1997027388,-0.1839871598,-2.0168971580,-1.1194784628,,,
|
||||
1.6875000000,3,2.8779488994,0.3641695321,-1.9643056971,-0.7420012388,,,
|
||||
1.7187500000,3,1.4563051832,-0.2026887361,-1.1487345134,0.7176546469,,,
|
||||
1.7500000000,4,0.7819705904,-1.8389984936,-0.8262613606,-1.0909272040,,,
|
||||
1.7812500000,4,2.0520274556,-0.1234290101,-1.4955637468,-0.3859075051,,,
|
||||
1.8125000000,4,0.2993489279,0.6679934029,-2.2938779901,2.8650857800,,,
|
||||
1.8437500000,4,-0.3417921204,-0.7611641008,-2.0424755980,0.8737882447,,,
|
||||
1.8750000000,4,0.9506913659,0.1385386313,-0.6953344902,-0.6117828212,,,
|
||||
1.9062500000,4,-0.6688572272,0.0043701116,0.5394431118,0.7816769419,,,
|
||||
1.9375000000,4,-0.8668315473,-2.4206456881,0.5615308290,-0.1516857685,,,
|
||||
1.9687500000,4,0.7412410587,-1.7974455953,-0.3822991487,-0.4131300313,,,
|
||||
2.0000000000,5,-0.5852777802,-0.7723189861,-1.0425910551,-0.9497739372,,,
|
||||
2.0312500000,5,-0.3568127661,-1.6840958410,-0.6769683658,-2.3559666125,,,
|
||||
2.0625000000,5,1.3761889031,0.0983659614,0.0737680120,0.4128262271,,,
|
||||
2.0937500000,5,0.0324007523,1.8606501325,-0.0164610272,1.3211814381,,,
|
||||
2.1250000000,5,0.2823791178,0.4087503374,-1.2419463750,-1.2291006398,,,
|
||||
2.1562500000,5,1.7027679072,0.6661389185,-2.5427995283,0.6576534641,,,
|
||||
2.1875000000,5,-0.0385524690,1.3163956500,-2.6920820881,2.2084155704,,,
|
||||
2.2187500000,5,-0.0554208172,-0.6897861214,-1.6940570431,0.5039915002,,,
|
||||
2.5000000000,6,-1.7310810939,-1.7466375845,-0.6117828212,-0.1603763521,,,
|
||||
2.5312500000,6,-0.2805237468,-1.9643056971,-0.7284838207,1.0964841466,,,
|
||||
2.5625000000,6,-1.5706412435,0.2727140524,-0.0203749932,0.6291119609,,,
|
||||
2.5937500000,6,-0.3846152674,-0.2942868426,0.3347196668,1.0644429647,,,
|
||||
2.6250000000,6,0.9701626979,-0.8262613606,-0.4131300313,0.4825889334,,,
|
||||
2.6562500000,6,-0.4783392019,0.5368167826,-1.6227881216,-2.4009484456,,,
|
||||
2.6875000000,6,0.5424888696,-0.9489926046,-1.9662756714,-0.6742923707,,,
|
||||
2.7187500000,6,1.4263392704,-2.2938779901,-0.9734886565,0.8125103403,,,
|
||||
2.7500000000,7,-0.4108610506,-0.5547380276,0.4128262271,-1.8494334914,,,
|
||||
2.7812500000,7,0.3635555387,-0.5968321736,0.9308023856,-0.8971534422,,,
|
||||
2.8125000000,7,0.8667484914,-0.6953344902,0.4463823054,1.1069949952,,,
|
||||
2.8437500000,7,-1.1002432968,1.9100213158,0.0426636172,0.7912462530,,,
|
||||
2.8750000000,7,-0.2124145663,1.9635447878,0.6576534641,1.4702474315,,,
|
||||
2.9062500000,7,0.3301381800,0.5615308290,1.9028072080,0.2464688260,,,
|
||||
2.9375000000,7,-1.3394010772,1.5699068231,2.4783674333,-0.4482837744,,,
|
||||
2.9687500000,7,0.0041022005,0.7251494037,1.6998640384,1.7383508457,,,
|
||||
3.0000000000,8,0.8068531766,-1.0425910551,0.3243588722,-0.4315280454,,,
|
||||
3.0312500000,8,-0.4912335635,0.5893078056,-0.3080250331,-2.7643803080,,,
|
||||
3.0625000000,8,1.1952068865,1.1445444315,0.1958671810,-0.1897743319,,,
|
||||
3.0937500000,8,1.9907896528,0.0737680120,0.8883208288,0.0114502696,,,
|
||||
3.1250000000,8,0.6869181620,1.5013198216,0.6782850799,-0.7741952885,,,
|
||||
3.1562500000,8,2.2564956184,1.3168811607,-0.3157015938,0.2792427283,,,
|
||||
3.1875000000,8,2.5877673403,-1.2419463750,-0.8753223314,-0.0063782440,,,
|
||||
3.2187500000,8,0.8953186036,-1.0211462797,-0.1299899339,1.5184145208,,,
|
||||
3.5000000000,9,-1.8389984936,-1.0909272040,0.4825889334,1.1467688435,,,
|
||||
3.5312500000,9,-0.0912575086,0.4355042258,-0.5981556844,0.3428316999,,,
|
||||
3.5625000000,9,-0.1234290101,-0.3859075051,-0.4068856788,-0.6407408097,,,
|
||||
3.5937500000,9,-1.2117474109,0.8702078730,0.4843950700,2.4003691243,,,
|
||||
3.6250000000,9,0.6679934029,2.8650857800,0.8125103403,1.5387091828,,,
|
||||
3.6562500000,9,0.4456384107,1.3630557893,0.1532086532,-1.4887291762,,,
|
||||
3.6875000000,9,-0.7611641008,0.8737882447,-0.5766315153,-0.2453985203,,,
|
||||
3.7187500000,9,0.8470458326,1.5190458612,-0.2412622290,-0.2134703607,,,
|
||||
4.0000000000,10,-0.7723189861,-0.9497739372,-0.4315280454,0.3403443506,,,
|
||||
4.0312500000,10,-1.2808655550,-1.9662756714,-1.7403637988,-0.7055335942,,,
|
||||
4.0625000000,10,-1.6840958410,-2.3559666125,-1.8417807445,-0.8776538362,,,
|
||||
4.0937500000,10,0.5621986200,0.2326467119,-0.8451463680,-1.5934803325,,,
|
||||
4.1250000000,10,0.0983659614,0.4128262271,0.0114502696,0.3268928833,,,
|
||||
4.1562500000,10,-0.2036004516,-0.2453224994,-0.1722950538,-0.2224224967,,,
|
||||
4.1875000000,10,1.8606501325,1.3211814381,-0.9238158916,-1.9913265080,,,
|
||||
4.2187500000,10,0.9871376509,0.4463823054,-1.0182130516,1.2816197960,,,
|
||||
4.2500000000,11,0.4087503374,-1.2291006398,-0.0063782440,2.2316009870,,,
|
||||
4.2812500000,11,2.0306267967,0.3530693071,1.1785364181,-0.1218676333,,,
|
||||
4.3125000000,11,0.6661389185,0.6576534641,1.2700366680,0.5685098797,,,
|
||||
4.3437500000,11,-0.0986454486,0.0272639229,0.1363600204,0.5013551605,,,
|
||||
4.3750000000,11,1.3163956500,2.2084155704,-1.0708097558,-0.0630998880,,,
|
||||
4.4062500000,11,-0.1688100058,2.4783674333,-1.2623176879,0.2050039337,,,
|
||||
4.4375000000,11,-0.6897861214,0.5039915002,-0.6561812935,-2.1904913958,,,
|
||||
4.4687500000,11,0.9355137218,0.9639543981,-0.4500766717,-1.6627065276,,,
|
||||
4.7500000000,12,2.5309068373,-1.5904395907,-0.6407408097,0.4598607025,,,
|
||||
4.7812500000,12,0.6771519036,-0.8753223314,0.4848661573,0.1463891898,,,
|
||||
4.8125000000,12,0.3807813663,-2.2268648350,0.8733864765,-2.8719383531,,,
|
||||
4.8437500000,12,1.2989304814,-0.8191135751,-0.0657413107,-0.7095830712,,,
|
||||
4.8750000000,12,-0.8266210987,1.3784805497,-1.4887291762,1.1618134295,,,
|
||||
4.9062500000,12,-1.0543215730,0.4731135773,-2.0684361890,-0.1603183729,,,
|
||||
4.9375000000,12,-0.1052226362,0.9541473858,-1.5028247523,0.6044175730,,,
|
||||
4.9687500000,12,-2.0168971580,1.9524956297,-0.7998792476,0.6622647617,,,
|
||||
|
+369
@@ -0,0 +1,369 @@
|
||||
<OpenViBE-Scenario>
|
||||
<FormatVersion>2</FormatVersion>
|
||||
<Creator>OpenViBE Designer</Creator>
|
||||
<CreatorVersion>3.0.0-beta</CreatorVersion>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Identifier>(0x00425137, 0xf2a30c29)</Identifier>
|
||||
<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
|
||||
<Name>Test Name</Name>
|
||||
<DefaultValue>Covariance-Matrix-Calculator</DefaultValue>
|
||||
<Value>Artifact-Amplitude</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Inputs></Inputs>
|
||||
<Outputs></Outputs>
|
||||
<Boxes>
|
||||
<Box>
|
||||
<Identifier>(0x000015a8, 0x000079e9)</Identifier>
|
||||
<Name>Player Controller</Name>
|
||||
<AlgorithmClassIdentifier>(0x5f426dce, 0x08456e13)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Stimulation name</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Label_00</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0xcc14d8d6, 0xf27ecb73)</TypeIdentifier>
|
||||
<Name>Action to perform</Name>
|
||||
<DefaultValue>Pause</DefaultValue>
|
||||
<Value>Stop</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>304</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x568d148e, 0x650792b3)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x01165f9f)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
|
||||
<Value>false</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x000029af, 0x00003a23)</Identifier>
|
||||
<Name>Artefact Amplitude</Name>
|
||||
<AlgorithmClassIdentifier>(0x41727469, 0xb68095e4)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Signal</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Non-artefact signal</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x512a166f, 0x5c3ef83f)</TypeIdentifier>
|
||||
<Name>Max (mV)</Name>
|
||||
<DefaultValue>100</DefaultValue>
|
||||
<Value>3</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>240</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>688</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x3dd557b8, 0xa3fba55d)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x0000484f, 0x00003eff)</Identifier>
|
||||
<Name>CSV File Reader</Name>
|
||||
<AlgorithmClassIdentifier>(0x336a3d9a, 0x753f1ba4)</AlgorithmClassIdentifier>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Output stream</Name>
|
||||
</Output>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output stimulation</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue></DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/$var{Test Name}-input.csv</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>176</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>688</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x30a4e5c9, 0x83502953)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xa9cdc629, 0xb153eb33)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00004c39, 0x0000096b)</Identifier>
|
||||
<Name>CSV File Writer</Name>
|
||||
<AlgorithmClassIdentifier>(0x428375e8, 0x325f2db9)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
|
||||
<Name>Input stream</Name>
|
||||
</Input>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Stimulations stream</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x330306dd, 0x74a95f98)</TypeIdentifier>
|
||||
<Name>Filename</Name>
|
||||
<DefaultValue>record-[$core{date}-$core{time}].csv</DefaultValue>
|
||||
<Value>${Player_ScenarioDirectory}/$var{Test Name}-output.csv</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Precision</Name>
|
||||
<DefaultValue>10</DefaultValue>
|
||||
<Value>10</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Append data</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2cdb2f0b, 0x12f231ea)</TypeIdentifier>
|
||||
<Name>Only last matrix</Name>
|
||||
<DefaultValue>false</DefaultValue>
|
||||
<Value>false</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>304</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>688</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0xee4b6d30, 0x788aed29)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
|
||||
<Value></Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>4</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
<Box>
|
||||
<Identifier>(0x00005b5f, 0x000050b0)</Identifier>
|
||||
<Name>Timeout</Name>
|
||||
<AlgorithmClassIdentifier>(0x24fcd292, 0x5c8f6aa8)</AlgorithmClassIdentifier>
|
||||
<Inputs>
|
||||
<Input>
|
||||
<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
|
||||
<Name>Input Stream</Name>
|
||||
</Input>
|
||||
</Inputs>
|
||||
<Outputs>
|
||||
<Output>
|
||||
<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
|
||||
<Name>Output Stimulations</Name>
|
||||
</Output>
|
||||
</Outputs>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
|
||||
<Name>Timeout delay</Name>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<Value>1</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<TypeIdentifier>(0x2c132d6e, 0x44ab0d97)</TypeIdentifier>
|
||||
<Name>Output Stimulation</Name>
|
||||
<DefaultValue>OVTK_StimulationId_Label_00</DefaultValue>
|
||||
<Value>OVTK_StimulationId_Label_00</Value>
|
||||
<Modifiability>false</Modifiability>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Attributes>
|
||||
<Attribute>
|
||||
<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
|
||||
<Value>240</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
|
||||
<Value>816</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
|
||||
<Value>(0x1eaee00e, 0xdb05d34e)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
|
||||
<Value>(0x00000000, 0x017178bd)</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
|
||||
<Value>false</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
|
||||
<Value>2</Value>
|
||||
</Attribute>
|
||||
<Attribute>
|
||||
<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
|
||||
<Value>1</Value>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Box>
|
||||
</Boxes>
|
||||
<Links>
|
||||
<Link>
|
||||
<Identifier>(0x00000492, 0x00005d6b)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x000029af, 0x00003a23)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00004c39, 0x0000096b)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00001a66, 0x00001ca2)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x00005b5f, 0x000050b0)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x000015a8, 0x000079e9)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x0000702c, 0x00002b90)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x0000484f, 0x00003eff)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x00005b5f, 0x000050b0)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
<Link>
|
||||
<Identifier>(0x00007556, 0x000015f0)</Identifier>
|
||||
<Source>
|
||||
<BoxIdentifier>(0x0000484f, 0x00003eff)</BoxIdentifier>
|
||||
<BoxOutputIndex>0</BoxOutputIndex>
|
||||
</Source>
|
||||
<Target>
|
||||
<BoxIdentifier>(0x000029af, 0x00003a23)</BoxIdentifier>
|
||||
<BoxInputIndex>0</BoxInputIndex>
|
||||
</Target>
|
||||
</Link>
|
||||
</Links>
|
||||
<Comments></Comments>
|
||||
<Metadata>
|
||||
<Entry>
|
||||
<Identifier>(0x000062ac, 0x00003721)</Identifier>
|
||||
<Type>(0x3bcce5d2, 0x43f2d968)</Type>
|
||||
<Data>[{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"height":320,"identifier":"(0x0000041e, 0x000069b5)","name":"Default window","parentIdentifier":"(0xffffffff, 0xffffffff)","type":1,"width":480},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":1,"identifier":"(0x00004c5d, 0x000021d4)","index":0,"name":"Default tab","parentIdentifier":"(0x0000041e, 0x000069b5)","type":2},{"boxIdentifier":"(0xffffffff, 0xffffffff)","childCount":0,"identifier":"(0x0000420e, 0x000074bb)","index":0,"name":"Empty","parentIdentifier":"(0x00004c5d, 0x000021d4)","type":0}]</Data>
|
||||
</Entry>
|
||||
</Metadata>
|
||||
</OpenViBE-Scenario>
|
||||
Reference in New Issue
Block a user