Sendspin

This page contains software development kits (SDK), libraries, and code samples to help you get started using Sendspin in your projects.

Sendspin client implementation guide

A Sendspin client is an application that can receive synchronized audio and metadata via the Sendspin protocol. Example products for the player role are any products that produce audio signals (aux, optical, analog), or connected speakers. For metadata, example products could be a wall tablet, that once included, can show the album art, metadata and offer controls for the music.

By default, the server will discover clients on the network. It is possible for clients to connect to servers directly without being discoverable. This is meant for scripts and other non-permanent processes, is not a recommended approach, and won't be covered by this guide.

Components of a Sendspin Client

A client needs to contain the following components to participate in a Sendspin network.

The following components are optional, depending on the roles that the client wants to fulfill:

An image of the Sendspin connection flow

SDK architecture

All SDKs implement Sendspin core, to handle incoming and outgoing messages. Some SDKs will also include an mDNS server, HTTP WebSocket server and an audio sink to play the audio. These are all different modules, with seperated concerns, that are up to the client to consume as needed.

Contributing

Sendspin is open source and welcomes contributions. Visit Sendspin on GitHub and the Music Assistant Discord to get involved.