Subtracting one signal from another

About the GUI application to design signal processing pipelines
Post Reply
DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Subtracting one signal from another

Post by DJM »

Hi All

Need some help from the experts as clearly I am not one... :lol:

I have two small questions:

1. I am trying to do a simple calculation to determine the F4 ( sensor signal ) - F3 ( sensor signal ) = ? ( This then needs to be used externally via a VRPN in a web browsers to indicate visually the amount ). I was wondering if anyone could give me some guidance on achieving this ( OpenVIBE designer code below )

2. After creating the Designer XML and everything working the way it should. Is there a way of running the Acquisition Client / Designer file / VRPN all with a single file or package?

PS: Any advice would be greatly appreciated.

Code: Select all

<OpenViBE-Scenario>
	<Boxes>
		<Box>
			<Identifier>(0x000002df, 0x0000333b)</Identifier>
			<Name>Acquisition client</Name>
			<AlgorithmClassIdentifier>(0x35d225cb, 0x3e6e3a5f)</AlgorithmClassIdentifier>
			<Outputs>
				<Output>
					<TypeIdentifier>(0x403488e7, 0x565d70b6)</TypeIdentifier>
					<Name>Experiment information</Name>
				</Output>
				<Output>
					<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
					<Name>Signal stream</Name>
				</Output>
				<Output>
					<TypeIdentifier>(0x6f752dd0, 0x082a321e)</TypeIdentifier>
					<Name>Stimulations</Name>
				</Output>
				<Output>
					<TypeIdentifier>(0x013df452, 0xa3a8879a)</TypeIdentifier>
					<Name>Channel localisation</Name>
				</Output>
				<Output>
					<TypeIdentifier>(0x6ab26b81, 0x0f8c02f3)</TypeIdentifier>
					<Name>Channel units</Name>
				</Output>
			</Outputs>
			<Settings>
				<Setting>
					<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
					<Name>Acquisition server hostname</Name>
					<DefaultValue>${AcquisitionServer_HostName}</DefaultValue>
					<Value>${AcquisitionServer_HostName}</Value>
					<Modifiability>false</Modifiability>
				</Setting>
				<Setting>
					<TypeIdentifier>(0x007deef9, 0x2f3e95c6)</TypeIdentifier>
					<Name>Acquisition server port</Name>
					<DefaultValue>1024</DefaultValue>
					<Value>1024</Value>
					<Modifiability>false</Modifiability>
				</Setting>
			</Settings>
			<Attributes>
				<Attribute>
					<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
					<Value>80.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>23</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>480.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
					<Value>(0x0d4656c0, 0xc95b1fa8)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>106</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x000a4dbe)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
					<Value>false</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc80ce8af, 0xf699f813)</Identifier>
					<Value>5</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
					<Value>2</Value>
				</Attribute>
			</Attributes>
		</Box>
		<Box>
			<Identifier>(0x0000141b, 0x000038c6)</Identifier>
			<Name>Signal display</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>Per channel</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>100</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>320.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>34</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>272.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
					<Value>(0x92c056a7, 0x2dc71aff)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
					<Value></Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>87</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x00101cdf)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
					<Value>false</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
					<Value>9</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
					<Value>3</Value>
				</Attribute>
			</Attributes>
		</Box>
		<Box>
			<Identifier>(0x00002376, 0x00000c86)</Identifier>
			<Name>Analog VRPN Server</Name>
			<AlgorithmClassIdentifier>(0x0ddc3a7e, 0x6f6e6401)</AlgorithmClassIdentifier>
			<Inputs>
				<Input>
					<TypeIdentifier>(0x544a003e, 0x6dcba5f6)</TypeIdentifier>
					<Name>Input 1</Name>
				</Input>
			</Inputs>
			<Settings>
				<Setting>
					<TypeIdentifier>(0x79a9edeb, 0x245d83fc)</TypeIdentifier>
					<Name>Peripheral name</Name>
					<DefaultValue>openvibe-vrpn</DefaultValue>
					<Value>openvibe_vrpn_analog</Value>
					<Modifiability>false</Modifiability>
				</Setting>
			</Settings>
			<Attributes>
				<Attribute>
					<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
					<Value>352.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>34</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>464.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
					<Value>(0x2f4c9e00, 0x5dc619e4)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>122</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x006eeca6)</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>(0x000034ab, 0x000035c2)</Identifier>
			<Name>Signal display</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>Per channel</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>100</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>320.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>34</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>624.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x4e7b798a, 0x183beafb)</Identifier>
					<Value>(0x92c056a7, 0x2dc71aff)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x527ad68d, 0x16d746a0)</Identifier>
					<Value></Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>87</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x000ac324)</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc73e83ec, 0xf855c5bc)</Identifier>
					<Value>false</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xce18836a, 0x9c0eb403)</Identifier>
					<Value>9</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
					<Value>3</Value>
				</Attribute>
			</Attributes>
		</Box>
		<Box>
			<Identifier>(0x00004f02, 0x000066e4)</Identifier>
			<Name>F4</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>F4</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>176.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>45</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>368.000000</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>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>80</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x000e56ec)</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>3</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
					<Value>1</Value>
				</Attribute>
			</Attributes>
		</Box>
		<Box>
			<Identifier>(0x00006287, 0x00003a90)</Identifier>
			<Name>F3</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>F3</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>160.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>45</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>608.000000</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>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>80</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x0028b9a3)</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>3</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
					<Value>1</Value>
				</Attribute>
			</Attributes>
		</Box>
		<Box>
			<Identifier>(0x000068dd, 0x0000471e)</Identifier>
			<Name>Simple DSP</Name>
			<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
			<Inputs>
				<Input>
					<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
					<Name>B</Name>
				</Input>
				<Input>
					<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
					<Name>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>B - A</Value>
					<Modifiability>false</Modifiability>
				</Setting>
			</Settings>
			<Attributes>
				<Attribute>
					<Identifier>(0x1fa7a38f, 0x54edbe0b)</Identifier>
					<Value>273.000000</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x1fa963f5, 0x1a638cd4)</Identifier>
					<Value>34</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x207c9054, 0x3c841b63)</Identifier>
					<Value>464.000000</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>(0xad100179, 0xa3c984ab)</Identifier>
					<Value>73</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xc46b3d00, 0x3e0454e1)</Identifier>
					<Value>(0x00000000, 0x000e27ec)</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>1</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xcfad85b0, 0x7c6d841c)</Identifier>
					<Value>1</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0xfba64161, 0x65304e21)</Identifier>
					<Value></Value>
				</Attribute>
			</Attributes>
		</Box>
	</Boxes>
	<Links>
		<Link>
			<Identifier>(0x000009a7, 0x000056aa)</Identifier>
			<Source>
				<BoxIdentifier>(0x00006287, 0x00003a90)</BoxIdentifier>
				<BoxOutputIndex>0</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x000034ab, 0x000035c2)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>189</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>608</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>298</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>609</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x00001873, 0x00001804)</Identifier>
			<Source>
				<BoxIdentifier>(0x00004f02, 0x000066e4)</BoxIdentifier>
				<BoxOutputIndex>0</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x0000141b, 0x000038c6)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>205</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>368</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>298</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>257</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x00001dc8, 0x00003cd2)</Identifier>
			<Source>
				<BoxIdentifier>(0x000068dd, 0x0000471e)</BoxIdentifier>
				<BoxOutputIndex>0</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x00002376, 0x00000c86)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>296</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>464</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>330</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>464</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x0000269f, 0x00003c9b)</Identifier>
			<Source>
				<BoxIdentifier>(0x00006287, 0x00003a90)</BoxIdentifier>
				<BoxOutputIndex>0</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x000068dd, 0x0000471e)</BoxIdentifier>
				<BoxInputIndex>1</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>189</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>608</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>251</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>471</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x00002726, 0x00002922)</Identifier>
			<Source>
				<BoxIdentifier>(0x000002df, 0x0000333b)</BoxIdentifier>
				<BoxOutputIndex>1</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x00006287, 0x00003a90)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>98</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>465</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>133</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>608</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x0000383a, 0x00007b60)</Identifier>
			<Source>
				<BoxIdentifier>(0x00004f02, 0x000066e4)</BoxIdentifier>
				<BoxOutputIndex>0</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x000068dd, 0x0000471e)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>205</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>368</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>251</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>456</Value>
				</Attribute>
			</Attributes>
		</Link>
		<Link>
			<Identifier>(0x00006a5b, 0x00001765)</Identifier>
			<Source>
				<BoxIdentifier>(0x000002df, 0x0000333b)</BoxIdentifier>
				<BoxOutputIndex>1</BoxOutputIndex>
			</Source>
			<Target>
				<BoxIdentifier>(0x00004f02, 0x000066e4)</BoxIdentifier>
				<BoxInputIndex>0</BoxInputIndex>
			</Target>
			<Attributes>
				<Attribute>
					<Identifier>(0x1b32c44c, 0x1905e0e9)</Identifier>
					<Value>98</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x358ae8b5, 0x0f8bacd1)</Identifier>
					<Value>465</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x3f0a3b27, 0x570913d2)</Identifier>
					<Value>149</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x6267b5c5, 0x676e3e42)</Identifier>
					<Value>368</Value>
				</Attribute>
			</Attributes>
		</Link>
	</Links>
	<MessageLinks></MessageLinks>
	<Comments></Comments>
	<VisualisationTree>
		<VisualisationWidget>
			<Identifier>(0x000019dc, 0x00004429)</Identifier>
			<Type>3</Type>
			<ParentIdentifier>(0xffffffff, 0xffffffff)</ParentIdentifier>
			<BoxIdentifier>(0x000034ab, 0x000035c2)</BoxIdentifier>
			<NumChildren>0</NumChildren>
		</VisualisationWidget>
		<VisualisationWidget>
			<Identifier>(0x00003dfb, 0x00001ceb)</Identifier>
			<Type>3</Type>
			<ParentIdentifier>(0xffffffff, 0xffffffff)</ParentIdentifier>
			<BoxIdentifier>(0x0000141b, 0x000038c6)</BoxIdentifier>
			<NumChildren>0</NumChildren>
		</VisualisationWidget>
		<VisualisationWidget>
			<Identifier>(0x00005fa1, 0x00006ba8)</Identifier>
			<Name>Default window</Name>
			<Type>1</Type>
			<ParentIdentifier>(0xffffffff, 0xffffffff)</ParentIdentifier>
			<BoxIdentifier>(0xffffffff, 0xffffffff)</BoxIdentifier>
			<NumChildren>1</NumChildren>
			<Attributes>
				<Attribute>
					<Identifier>(0x4c90d4ad, 0x7a2554ec)</Identifier>
					<Value>320</Value>
				</Attribute>
				<Attribute>
					<Identifier>(0x7b814cca, 0x271df6dd)</Identifier>
					<Value>475</Value>
				</Attribute>
			</Attributes>
		</VisualisationWidget>
		<VisualisationWidget>
			<Identifier>(0x0000615b, 0x0000099e)</Identifier>
			<Name>Default tab</Name>
			<Type>2</Type>
			<ParentIdentifier>(0x00005fa1, 0x00006ba8)</ParentIdentifier>
			<Index>0</Index>
			<BoxIdentifier>(0xffffffff, 0xffffffff)</BoxIdentifier>
			<NumChildren>1</NumChildren>
		</VisualisationWidget>
		<VisualisationWidget>
			<Identifier>(0x000030ab, 0x00006832)</Identifier>
			<Name>Empty</Name>
			<Type>0</Type>
			<ParentIdentifier>(0x0000615b, 0x0000099e)</ParentIdentifier>
			<Index>0</Index>
			<BoxIdentifier>(0xffffffff, 0xffffffff)</BoxIdentifier>
			<NumChildren>0</NumChildren>
		</VisualisationWidget>
	</VisualisationTree>
</OpenViBE-Scenario>

fabien.lotte
Posts: 112
Joined: Sun Mar 14, 2010 12:58 pm

Re: Subtracting one signal from another

Post by fabien.lotte »

Hello,

I didn't try to create and open your scenario, but to subtract two signals from each other can be done in two ways:
- using a spatial filter box, in which case you will give a weight of 1 to channel F3, an weight of -1 to channel F4, and a weight of 0 to any other channel you may have.
- or (that is an alternative option) you use a channel selector box first to separate F3 and F4, and then use a simple DSP box with two inputs (one input being F3 the other F4) to subtract one from the other

Best,
Fabien

DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Re: Subtracting one signal from another

Post by DJM »

Hi Fabien

Thank you for your speed response. The second suggestions you mentioned is the one I tried:
- So I used the Simple DSP box to subtract the F3 from F4 but then when I tried to get the OUTPUT in the VRPN. It just resulted in 0 for every reading.

<Box>
<Identifier>(0x000068dd, 0x0000471e)</Identifier>
<Name>Simple DSP</Name>
<AlgorithmClassIdentifier>(0x00e26fa1, 0x1dbab1b2)</AlgorithmClassIdentifier>
<Inputs>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>B</Name>
</Input>
<Input>
<TypeIdentifier>(0x5ba36127, 0x195feae1)</TypeIdentifier>
<Name>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>B - A</Value>
<Modifiability>false</Modifiability>
</Setting>
</Settings>

Kind Regards

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Subtracting one signal from another

Post by gserrier »

Hi,

Did you use the channel selector?

Guillaume

DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Re: Subtracting one signal from another

Post by DJM »

Hi Guillaume

Yes I did use the Channel selector to get he F4 ( sensor signal ) & F3 ( sensor signal ).


Kind Regards

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Subtracting one signal from another

Post by gserrier »

Can you join the xml of the scenario.

Guillaume

DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Re: Subtracting one signal from another

Post by DJM »

Hi Guillaume

Here is the XML.


Cheers
Attachments
Test.xml
(39.04 KiB) Downloaded 310 times

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Subtracting one signal from another

Post by gserrier »

May have found the issue.

In fact X is a symbol for the first iput, but A is also a symbol for it. You better used A-B or X-B.

Guillaume

DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Re: Subtracting one signal from another

Post by DJM »

Hi Guillaume

I did try it with both A & B input ( using B-A ) and A & X input ( using X-A ).

This is the end goal:

Continuous EEG Signal processing

We want to measure the continuous EEG signal (as far as I am aware this is often called Continuous EEG as opposed to event related EEG). As you probably guessed when you are measuring electrical brain activity there is a lot of noise in the data, this is caused by external interference but mainly other stuff going on e.g. movement etc. So if we want to get at only a particular signal to get this measure above a lot of filtering of the data goes on e.g. high and low pass filters, baselines from reference sensors etc.

However, this is not impossible in real time as other companies have done it in some capacity e.g. we know that a company based out of the University of Brighton have some kind of live EEG measure that they pull out for PR work. In fact a google search found some guys thesis all about it!

I think the best paper to steer us is the one I have attached (Frontal EEG asymmetry as a moderator and mediator of emotion). There is a summary of all the studies and tell us what electrodes they use as the ones to get the reading off and the most popular paradigm for getting the measure (which appears to be p.10 – “The most commonly reported of these indexes is computed by subtracting the natural log of left hemisphere alpha power from the natural log of right hemisphere alpha power (ln[right alpha] − ln[left alpha])”.)

That makes it sound complex but I think at a basic left means take the readings from one electrode and subtract them from another (sort of).

Looking at the table it also appears that the electrodes most frequently used are F3 and F4. You can see these in a map of the Emotiv headsets below (note: the emotiv headset has 14 channels (16 if you count the dummy reference ones), some EEG units have many, many more).

Then create one file that would run all the required elements ( Acquisition Client / Designer file / VRPN ).


PS: Thank you for all your help so far... Much appreciated.

gserrier
Posts: 71
Joined: Tue Apr 01, 2014 8:22 am

Re: Subtracting one signal from another

Post by gserrier »

Sorry, but I don't get the issue here

Guillaume

DJM
Posts: 8
Joined: Mon Jul 13, 2015 11:26 am

Re: Subtracting one signal from another

Post by DJM »

Hi Guillaume

I was getting 0 as an output for the VRPN. Thank you for all your help.

Hope you have a great weekend.


Cheers

Post Reply