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.9.0.tar.gz (24.6 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.9.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ezmsg_lsl-1.9.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.9.0.tar.gz
Algorithm Hash digest
SHA256 22f39ecd01829166035ad0a381bcef769f8144b703d98ab3a33fbbb8b09b3674
MD5 a0bf37de137aabbae4b8b1cf33c58799
BLAKE2b-256 b4fefd6b6667424b7eb4e2870e135244c9d65bef13c2c76aae93edb48fdac92c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ezmsg_lsl-1.9.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 acff9019e5e04763dcbb54d959a4c319ee6b5ce7bcd432b46dff8fbc2aaafb4a
MD5 e6c3aca6ce00e8b187398a23549b4372
BLAKE2b-256 c20a91e16a881657ec7f42127cf0054ec65208369091026742214afd49a229e4

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