Network node

LSL Sender

Publishes a Signal on the local network as a Lab Streaming Layer (LSL) stream — any LSL-aware program can open it — with the channel names, rate and unit in the header; a changed Marker text goes out as a marker stream.

Inputs

PortTypeDefault
EnableOff closes the stream — receivers see it disappear.booltrue
SignalWhat to publish: any Data Lab Signal (a Signal Window, an EEG File Import's Signal, an Analyze node's output). Its channels, rate, labels and unit go into the stream header; new frames are pushed every frame.structure—
NameThe stream's name on the network — what receivers see first.stringGrafit
TypeThe stream's declared kind (EEG, Markers, Audio…) — receivers filter by it.stringEEG
MarkerA text; every CHANGE to a non-empty text is sent once as a marker sample on a second string stream named "<Name> Markers".string
Source IDA stable identity for the stream so a receiver finds it again after a restart. Empty = derived from this node.string

Outputs

PortType
Streamingbool
Consumersint
Samples Sentint
Infostructure

How It Works

The other half of Grafit's Lab Streaming Layer support: anything that is a Data Lab Signal can be published on the local network, and any program that speaks the protocol can open it — a recorder, an analysis script, a second Mac.

What goes out is not just numbers. The stream's header carries the channel names, the sample rate and the unit that the Signal itself declares, so the receiving program labels its channels correctly without being told twice. A Signal Window, a file's Signal, an Analyze node's output — anything that carries that description can be a stream.

Markers travel separately. Whenever the Marker text changes, that string goes out on a companion marker stream. Cable a String Combine, a Switch of labels or a state machine's current name here and the receiving software gets a properly timestamped event.

The node's header shows grey while the outlet is closed, amber while it is open with nobody listening, and green once at least one program has subscribed. Consumers is that same count as a cable.

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

Parameters in Depth

Signal (structure) — the Data Lab Signal to publish. Its channel names, rate and unit become the stream's header.

Name (string, default "Grafit") — the stream name other programs see in their stream list. Give each sender in a patch a distinct name.

Type (string, default "EEG") — the stream type other programs filter on. Use the type that describes the data, not the source.

Marker (string) — the current event label. A change in this text is what sends a marker, so holding the same string sends nothing; going back to an empty string is itself a change.

Source ID (string) — the stable identity a receiver uses to find this stream again after a restart. Leave it empty and one is derived from the node itself, which is what you want unless two machines must publish the same logical source.

The outputs are the link's own state: Streaming (the outlet is open), Consumers (how many programs are subscribed), Samples Sent and Info with the full header as published.

Typical Patches

  • Publish an analysis: EEG File Import or LSL Receiver → an Analyze node → LSL Sender, so another program records the derived measure alongside the raw data.
  • Anything becomes a signal: Audio FFT, a Vision tracker or a sensor value → Signal Window → LSL Sender — the graph becomes a source for experiment software that has never heard of Grafit.
  • Event log: a Switch of state names into Marker — every scene change is timestamped in the recording software's marker stream.
  • Loopback: an LSL Sender and an LSL Receiver on one Mac make a complete round trip for testing a chain without hardware.

Open LSL Sender in the interactive catalog →

LSL Sender 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