Skip to main content

Bridge Sendspin audio to Bluetooth LE Audio Auracast using Bumble.

Project description

sendspin_auracast

Receive Sendspin PCM audio and broadcast it over Bluetooth LE Audio (Auracast) using Bumble.

Installation

pip install sendspin_auracast

For local development:

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"

Usage

Broadcast audio from a Sendspin WebSocket server:

sendspin-auracast ws://localhost:8927/sendspin

The client advertises itself as a Sendspin player, receives PCM audio chunks, encodes them as LC3, and broadcasts them as an Auracast stream.

Use a custom Bumble transport or broadcast name:

sendspin-auracast ws://localhost:8927/sendspin \
  --transport serial:/dev/ttyACM0,1000000 \
  --name "Sendspin Auracast"

Broadcast with encryption:

sendspin-auracast ws://localhost:8927/sendspin --code "my-password"

Add manufacturer-specific BLE advertising data:

sendspin-auracast ws://localhost:8927/sendspin --manufacturer-data 0x0059:010203

Tune startup latency:

sendspin-auracast ws://localhost:8927/sendspin \
  --sendspin-buffer-ms 50 \
  --presentation-delay-us 20000 \
  --max-transport-latency-ms 40

The bridge defaults to a 100 ms advertised Sendspin player buffer. Smaller values can reduce the delay after pressing play, while larger values may be more reliable on busy hosts or noisy Bluetooth links.

For debugging, print received chunks instead of broadcasting:

sendspin-auracast ws://localhost:8927/sendspin --print

To write raw audio bytes to stdout instead:

sendspin-auracast ws://localhost:8927/sendspin --raw

Development

Run tests:

pytest

Run linting:

ruff check .

Build the package:

python -m build

Publish to PyPI:

twine upload dist/*

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

sendspin_auracast-0.1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

sendspin_auracast-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file sendspin_auracast-0.1.0.tar.gz.

File metadata

  • Download URL: sendspin_auracast-0.1.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sendspin_auracast-0.1.0.tar.gz
Algorithm Hash digest
SHA256 469d9cefa17700af1cc89fc94800d683eb027a6b40eb5da84fcadc8419778264
MD5 875dce2ad909b2808838bd5e432c8684
BLAKE2b-256 ebbdd3feb11fff21eef17a4d5161cb300dbbe3e7f29692b0768b866cf4c7081a

See more details on using hashes here.

Provenance

The following attestation bundles were made for sendspin_auracast-0.1.0.tar.gz:

Publisher: publish.yml on Yagoor/sendspin_auracast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sendspin_auracast-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sendspin_auracast-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b266a5aed26e5eab8b5c44ec6ae697b56c991834bd2b92074256e4a8ee412c9
MD5 994c1f688c3de36bf057adf9ad51edf5
BLAKE2b-256 b69c450cdfd045f0e01d55f7cb226f23e75818f8e6a05b8d12f50be26f73e4f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sendspin_auracast-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Yagoor/sendspin_auracast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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