Summary
|
LSL Signal
|
Info |
Category: |
Signal Acquisition |
|
AddIn: |
LSL |
Creator: |
OkazoLab |
|
Scope: |
Experiment |
Owns Snippets: |
None |
|
Usage: |
Background processing |
Properties
Name | Description | Constraints | Type | On runtime change |
---|
LSL Settings |
Stream Type | Defines the LSL stream that delivers signal data | | String | |
LSL Stream | Defines which LSL stream will be connected at runtime. You must have the LSL stream running, when you change this property for the first time. Note that the channel configuration of the element is updated each time as you change this property | | String | |
Request Configuration | Retrieves a new channel configuration of the selected LSL stream, if it has been changed since the last stream selection | | Boolean | |
Channel Configuration |
Actual Sampling Rate | Returns the actual sampling rate of connected hardware after it the configuration request | | Double | |
Sample Type | Returns the actual sampling rate of connected hardware after the configuration request | | String | |
Chink Size | Defines the chuck size (in ms) in signal acquisition | | clTime | |
Selected Channels | Defines what signal channels are selected for acquisition within EventIDE. Selected channels are registered in the EventIDE signal pool at runtime and become available for the signal analysis elements. | | List`1 | |
Selected Channel Count | Indicates how many signal channels are currently selected for acquisition | | Int32 | |
Total Channel Count | Indicates how many signal channels are available for acquisition in the total | | Int32 | |
Buffer Size | Defines the size (in samples) of a circular buffer that stores incoming signal data. | | Int32 | |
Signal Generator |
Signal Generator | Defines whether signal samples are produces by an oscillatory generator rather than the actual hardware. You can use the signal generator for test runs without hardware | | Boolean | |
Emulated Sampling Rate | Defines the emulation sampling rate (samples per second), when data is generated or streamed from a file. | | Double | |
Primary Frequency | Defines the frequency of the primary rhythm in the generated signal, in Hz. Assign the zero to exclude the primary frequency from the generated signal. | | Double | |
Secondary Frequency | Defines the frequency of the secondary rhythm in the generated signal, in Hz. The secondary frequency magnitude is a half of the primary frequency magnitude. Assign the zero to exclude the secondary frequency from the generated signal. | | Double | |
Noise Level | Defines the noise level (in % to the norm magnitude of the primary frequency). The noise is added to the generated signal. Assign the zero the exclude the noise from the generated signal. | | Double | |
Runtime Control |
Reset Signals Now | Runtime commands that resets the signal buffers and data acquisition | | Boolean | |
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run | | Boolean | |
Title | Title of the element | | String | |
|
The LSL Signal element reads and buffers numerical signals in an LSL stream generated by connected hardware or another application. The acquired signals can be then used for online processing,visualization and recording in EventIDE.
Description
An increasing number of reseacrh hardware and applications add support for the lab streaming layer (LSL) is a protocol, which is designed for the unified collection of measurement time series in research experiments that handles both the networking, time-synchronization, (near-) real-time access as well as optionally the centralized collection, viewing and disk recording of the data. You can find more details on the
LSL project site. The LSL protocol was developed in Swartz Center for Computational Neuroscience, UCSD (Copyright 2019, Christian Kothe, David Medine, Chadwick Boulay, Matthew Grivich, Tristan Stenner)
The LSL Signal element in EventIDE automatically detects active LSL streams that are generated by research hardware or other applications on the same computer or in a network. Each LSL stream can carry multiple channels, which are treated as separate signals by the LSL Signal element. The element allows you to select one or more channels for processing. Note that the LSL protocol can transfer data in a wide range of formats. The LSL Signal element can only process numerical channels (double, float or integer).
As you start your expeirment, the LSL signal element begins reading incoming LSL channels and buffering signal samples for futher online analysis, visualization and recording carried by other EventIDE elements
Practical Use
Configuring the element
In order to use LSL signals in your experiment, you need to perform an one-time configuration of the LSL Signal element:
- Add the LSL Signal element to any event in your experiment. The element is global and will work during the entire experiment run
- Make sure that the source LSL stream is running on your system. For example, you may need to start recording on your LSL-compatible EEG amplifier or run software that writes to a LSL stream
- Select the LSL Signal element in GUI to access its properties in the Property panel
- Set the Stream Type property to the type of the source LSL stream. You can select the most common LSL stream types from a drop-down list
- Open the drop-down list on the LSL Stream property. The list should show currently active LSL streams detected in your system. Select the source stream. If you know a name of the source stream in advance, you can also type it directly.
- Once the stream is selected, the element will automatically retrieve the channel configuration in it and updates the corresponding properties: Actual Sampling Rate, Sample Type, etc.
- Finally, open an editor on the Selected Channels property and select channels for online acquisition. The selected channels can be then accessed by the signal processing elements.
Testing the element with a generated ossilatory signal
If you have no LSL stream available at the moment, you can test the element in the signal generator mode:
- Browse properties of the LSL Signal element down to the Signal Generator group
- Set the Signal Generator property to true
- Choose parameters of the generated signal with the following properties: Emulated Sampling Rate, Primary Frequency,Secondary Frequency,Noise Level
- Run your expeirment and check processing of the generated signal