Skip to main content

Sendspin GUI

A GUI wrapper for testing and iterating on the aiosendspin server without needing to integrate with Music Assistant. image

Features

  • Server Management: Start/stop the Sendspin server with configurable settings
  • Client Discovery: Automatic mDNS discovery of Sendspin clients on your network
  • Group Management: Create and manage client groups for synchronized playback
  • Audio Streaming: Stream audio files or test tones to groups
  • Event Logging: Real-time event log with filtering capabilities

Installation

Prerequisites

  • Python 3.12 or higher

uv is a fast Python package installer.

# Install uv if you don't have it
pip install uv

# Install sendspin-gui
cd sendspin-gui
uv pip install -e .

# Or with dev dependencies
uv pip install -e ".[dev]"

Install with pip

cd sendspin-gui
pip install -e .

Usage

Run the GUI

# Using the installed command
sendspin-gui

# Or run as a module
python -m sendspin_gui

Quick Start

  1. Start the server: Configure the server ID, name, and port, then click "Start Server"
  2. Connect clients: Sendspin clients on your network will be discovered automatically (if mDNS is enabled)
  3. Create groups: Select clients and click "Create Group" to group them for synchronized playback
  4. Stream audio: Use the Stream panel to play test tones or audio files to your groups

GUI Overview

Server Panel

  • Configure server ID and name
  • Set the server port (default: 8765)
  • Enable/disable mDNS for automatic discovery
  • Start/stop the server

Clients Panel

  • View all connected clients
  • See client roles and group membership
  • Select clients to create groups
  • Disconnect individual clients

Groups Panel

  • View all active groups
  • Playback controls (play/stop)
  • Volume control per group
  • Expand groups to see and manage members

Stream Panel

  • File: Browse and stream audio files (WAV, FLAC, MP3, etc.)
  • Test Tone: Generate sine wave test tones at configurable frequencies
  • URL: (Coming soon) Stream from network URLs

Event Log

  • Real-time server events
  • Filter by event type (info, success, warning, error)
  • Clear log functionality

Development

Project Structure

sendspin-gui/
├── src/
│   └── sendspin_gui/
│       ├── __init__.py
│       ├── __main__.py
│       ├── app.py              # Main application
│       ├── components/
│       │   ├── __init__.py
│       │   ├── server_panel.py
│       │   ├── clients_panel.py
│       │   ├── groups_panel.py
│       │   ├── event_log.py
│       │   └── stream_panel.py
│       └── utils/
│           ├── __init__.py
│           └── async_bridge.py
├── pyproject.toml
└── README.md

Running in development

# Install in editable mode with dev dependencies
uv pip install -e ".[dev]"
# or: pip install -e ".[dev]"

# Run the app
python -m sendspin_gui

Code style

The project uses ruff for linting:

ruff check src/
ruff format src/

Architecture Notes

The GUI uses customtkinter for a modern appearance and runs the asyncio event loop in a separate thread to avoid blocking the UI. The AsyncBridge utility handles communication between the tkinter main thread and the async server operations.

  • aiosendspin - The underlying async Sendspin protocol library
  • sendspin - A synchronized audio player built on aiosendspin
  • Music Assistant - Full-featured music server that uses aiosendspin

License

MIT

Metadata

Release files for sendspin-dev-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sendspin-dev-server 0.1.0
File Size Uploaded Provenance Actions
sendspin_dev_server-0.1.0.tar.gz 93.5 kB With provenance Details for sendspin_dev_server-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for sendspin-dev-server 0.1.0
File Interpreter ABI Platform Actions
sendspin_dev_server-0.1.0-py3-none-any.whl Python 3 none any Details for sendspin_dev_server-0.1.0-py3-none-any.whl

Total release size: 121.8 kB

Release files / sendspin_dev_server-0.1.0.tar.gz

Download URL sendspin_dev_server-0.1.0.tar.gz
Size 93.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e3bcbc4c7e2343f4664036a851a139db44dbed1a873d13bc6615eb8856cc2d91
BLAKE2b-256 checksum
How to use checksums
b88579cc1bb87f79ec0c519e2e7744d780a25353022315865210b999be475732
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 29, 2026.

Transparency log

Release files / sendspin_dev_server-0.1.0-py3-none-any.whl

Download URL sendspin_dev_server-0.1.0-py3-none-any.whl
Size 28.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b70681e7f39db08508f72b20854831d785566f3c82138a705289c40699e8edbc
BLAKE2b-256 checksum
How to use checksums
c6a0b569da6e5907314f78a68caeb181b70e9b8b4eb11f06596c9e13b0774b71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 29, 2026.

Transparency log

Security for sendspin-dev-server 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sendspin_dev_server-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page