Network node

LSL Receiver

Receives a Lab Streaming Layer (LSL) stream from the local network — an EEG amplifier, a sensor, another program — as MTL Data for the EEG nodes, a Signal for the Data Lab and markers from string streams, with the names, rate and units the stream declares.

Inputs

PortTypeDefault
EnableOff closes the stream and forgets nothing; on looks for it again.booltrue
TypeThe kind of stream to look for when no stream is chosen: EEG, Markers, Audio, Accelerometer… Senders declare it; the dropdown lists what is on the network plus the usual names.stringEEG
StreamWhich stream: empty = the first stream of the Type found on the network; Browse… lists every stream (name · type · channels · rate · host) and remembers the chosen one by its source id, so a restarted device is found again. A cable can carry the key too (name|type|source id|host).string
WindowSeconds of history the Signal output keeps for the Data Lab, 0.1…600.float10
BufferSeconds the EEG Data rings hold (and the stream is buffered on arrival), so a slow patch never loses samples. 10 is the device's convention.float10
Smooth ClockOff keeps the sender's raw time stamps (honest, may jitter). On lets the library sync and de-jitter them for plot-friendly time.boolfalse
Marker HoldHow long Marker and Marker Text keep a value after a marker arrives, in seconds. 0 = one frame — too short to read on a UI Text; use 1–2 s to show it. Marker Pulse is always one frame. Text and number marker streams (e.g. a device's int32 "Markers") both work.float0
ReconnectA rising edge drops the connection and looks for the stream again — after changing something on the sender.boolfalse
Remove DCSubtracts each channel’s slowly running mean (about 2 s), so electrode offsets of tens of millivolts do not sit under every spectrum’s DC bin or push a plot off scale. Off shows the stream as sent.booltrue

Outputs

PortType
EEG Datastructure
EEG Data Astructure
EEG Data Bstructure
EEG Data Cstructure
EEG Data Dstructure
Signalstructure
Sample Ratefloat
Channelsint
Labelsstructure
Connectedbool
Samples/sfloat
Clock Offsetfloat
Latencyfloat
Droppedint
Markerint
Marker Textstring
Marker Pulsebool
Markersstructure
Infostructure

How It Works

The Lab Streaming Layer is how live biosignal software talks on a local network: amplifiers, eye trackers and experiment scripts publish streams, and any program on the same network can open them. This node is Grafit's end of that.

Browse… in the inspector lists what is currently on the network, and the chosen stream is remembered by its identity rather than by its position in the list — so a device that is switched off and back on is found again without touching the patch. Type and Stream are the same choice as cables, for patches that pick a stream from data.

It publishes exactly what the file importer and the device node publish. MTL Data (plus MTL Data A…D in groups of eight channels) feeds EEG Plot, FFT EEG, Impedance and Signal Window; a Data Lab Signal feeds Plot and every Analyze node. Channel names, sample rate and units come from the stream's own header — a voltage unit is converted to microvolts, and an unknown unit is passed through with a warning rather than silently assumed.

The link reports on itself. Connected, Samples/s, Clock Offset, Latency and Dropped say how the stream is doing, and the node's header goes amber while it is looking, green while it is streaming, orange when a stream has gone silent and red when the link failed. A stream that returns is reconnected without intervention.

Discovery uses the local network, so macOS asks once for Local Network access. Nothing leaves the network.

Parameters in Depth

Type (string, default "EEG") — the stream type to look for, as the publisher declared it: EEG, Markers, Gaze, Audio, whatever the source calls it. An empty Type accepts any.

Stream (string) — which specific stream, when more than one of that type is on the network. Set from Browse…, or cabled from a String node to switch sources from the patch.

Window (float, default 10) — seconds of history the ring holds, which is what EEG Plot and the spectral nodes see.

Buffer (float, default 10) — seconds the network side is allowed to queue. Raise it on a busy or wireless network, lower it when latency matters more than completeness.

Smooth Clock (bool, default false) — smooths the sender's timestamps instead of taking them raw. Useful for a source with a jittery clock; leave it off when you need the timestamps exactly as sent.

Marker Hold (float, default 0) — how long a Marker code stays up in seconds. Marker Pulse is one frame regardless, and Marker Text carries the string a marker stream actually sent.

Reconnect (bool) — a rising edge tears the link down and looks again, for when a device has been reconfigured.

Remove DC (bool, default true) — subtracts each channel's running mean, so a raw electrode sitting at tens of millivolts does not dwarf the signal on a plot.

Typical Patches

  • Live amplifier: LSL Receiver → MTL Data → EEG Plot → Canvas, and the same cable into FFT EEG → EEG Spectrum for the frequency view.
  • Into the Data Lab: Signal → Signal Window → Plot 2D, or into the Analyze nodes for statistics, filters and coherence.
  • Experiment triggers: a marker stream from the presentation software, Marker Pulse → Counter → Switch, so the visuals change on every trial onset.
  • Health readout: Samples/s, Latency and Dropped into UI Text nodes — a link monitor on the render window during a session.
  • Loopback test: an LSL Sender and an LSL Receiver in the same patch, or on the same Mac, to confirm a chain before a device is anywhere near it.

Open LSL Receiver in the interactive catalog →

LSL Receiver is one of 381 nodes in Grafit Pro.

Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.

More Network nodes