Skip to main content

LabStreamingLayer source and sink for ezmsg

Project description

ezmsg-lsl

Interface to Lab Streaming Layer LSL in ezmsg.

Installation

pip install ezmsg-lsl

Or install the latest development version:

pip install git+https://github.com/ezmsg-org/ezmsg-lsl@dev

Dependencies

  • ezmsg
  • pylsl
  • numpy

Usage

See the examples folder for more details.

LSL Outlet

LSLOutletUnit publishes incoming AxisArray messages to an LSL stream. Key settings (LSLOutletSettings):

  • stream_name / stream_type — name and type advertised on the LSL stream.
  • use_message_timestamp (default True) — push samples with the incoming message timestamps, or with pylsl.local_clock() when False.
  • assume_lsl_clock (default False) — when use_message_timestamp is True, whether the incoming timestamps are already in the LSL clock (otherwise they are converted from the system clock).
  • sync_blocking (default False) — when True, the outlet is created with the pylsl.transp_sync_blocking transport flag, enabling the synchronous (zero-copy) outlet mode for high-bandwidth streams. Requires pylsl >= 1.18.3b1. Leave False for the standard asynchronous transport.
from ezmsg.lsl.outlet import LSLOutletUnit

outlet = LSLOutletUnit(
    stream_name="my_stream",
    stream_type="EEG",
    sync_blocking=True,  # synchronous zero-copy transport
)

Developers

We use uv for development. It is not strictly required, but if you intend to contribute to ezmsg-lsl then using uv will lead to the smoothest collaboration.

  1. Install uv if not already installed.
  2. Fork ezmsg-lsl and clone your fork to your local computer.
  3. Open a terminal and cd to the cloned folder.
  4. uv sync to create a .venv and install dependencies.
  5. (Optional) Install pre-commit hooks: uv run pre-commit install
  6. After editing code and making commits, Run the test suite before making a PR: uv run pytest tests
    • Currently, there are no substantial tests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezmsg_lsl-1.8.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezmsg_lsl-1.8.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file ezmsg_lsl-1.8.0.tar.gz.

File metadata

  • Download URL: ezmsg_lsl-1.8.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ezmsg_lsl-1.8.0.tar.gz
Algorithm Hash digest
SHA256 8a480f302af00fd037027acd180742a6fbe565920b6cf425091e5c0039ecac52
MD5 fb270a8b8a6eb807b03a3dbb69d90cb0
BLAKE2b-256 df6db819fa4971aea9e4bbffc06b6bd164405f508fb438d9f200cac8d2f40a81

See more details on using hashes here.

File details

Details for the file ezmsg_lsl-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: ezmsg_lsl-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ezmsg_lsl-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a87d3ac8f8de9ea594695a07a101920d020f2e1722605a10533660e717dfad5
MD5 dabe7d6af52f183acd6d0532503e17f4
BLAKE2b-256 1ce890d6919bdc4e804ee2570a6a3a9e1e320210c3a88c0a9de7a7ba82882fb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page