A Python GUI application for sending LSL (Lab Streaming Layer) markers used in neuroscience research.
- Simple GUI Interface: Clean and intuitive interface built with PyQt6
- LSL Stream Integration: Creates and manages an LSL marker stream
- Real-time Marker Sending: Send custom string markers with a single click or Enter key
- Status Logging: Real-time status updates and error reporting
- Cross-platform: Works on Windows, macOS, and Linux
- Python 3.12 or higher
- uv package manager
# Clone the repository
git clone <repository-url>
cd mobi-marker
# Install with uv (recommended)
uv sync
# Or install in development mode
uv sync --group devpip install -e .After installation, you can run the application in several ways:
# Using the installed script
mobi-marker
# Or directly with Python
python -m mobi_marker.main
# Or if installed in development mode
uv run mobi-marker- Start the Application: The LSL stream starts automatically when the application launches
- Send Markers:
- Type your marker text in the input field
- Click "Send Marker" or press Enter
- The marker will be sent through the LSL stream
- Monitor Status: View real-time status updates in the log area
- Clear Log: Use the "Clear Log" button to clear the status display
- Stream Name: MobiMarkerStream
- Stream Type: Markers
- Channel Count: 1
- Data Format: String
- Source ID: mobi_marker_gui_v1
# Install with development dependencies
uv sync --group dev
# Install pre-commit hooks
uv run pre-commit install# Run tests
uv run pytest
# Run tests with coverage
uv run pytest --cov=mobi_marker# Run linting
uv run ruff check
# Run type checking
uv run mypy src
# Format code
uv run ruff formatmobi-marker/
├── src/
│ └── mobi_marker/
│ ├── __init__.py
│ ├── main.py
│ └── gui.py
├── tests/
├── pyproject.toml
└── README.md
- PyQt6: GUI framework
- pylsl: Lab Streaming Layer interface
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
-
LSL Stream Not Starting:
- Ensure pylsl is properly installed
- Check that no other application is using the same stream name
-
GUI Not Displaying:
- Verify PyQt6 installation
- Check system GUI framework compatibility
-
Import Errors:
- Ensure all dependencies are installed
- Try running
uv syncto reinstall dependencies
For issues and questions, please open an issue on the GitHub repository.