SASS - Simple Alpine SendSpin - Raspberry Pi Audio Streaming Player
A minimal Alpine Linux image for Raspberry Pi that runs SendSpin - a high-quality audio streaming protocol for Home Assistant's Music Assistant.
Features
- Minimal footprint - Runs Alpine Linux in sys mode with only essential packages
- USB DAC support - Automatic ALSA configuration for USB audio devices
- Auto-start service - SendSpin starts automatically on boot in headless mode
- Low latency - Direct ALSA hardware access for minimal audio buffering
- Raspberry Pi optimized - Built specifically for Pi 3/4 hardware
Supported Hardware
- Raspberry Pi 3 Model B / B+
- Raspberry Pi 4 Model B
- USB Audio DACs (USB Audio Class compliant devices)
Quick Start
Download Pre-built Image
Download the latest image from Releases
Flash to SD Card
Linux/macOS:
sync
Windows: Use Rufus
First Boot
- Insert SD card into Raspberry Pi
- Connect USB DAC
- Power on
- The player will automatically connect to Music Assistant on your network
- Default credentials:
root/alpine(change immediately!)
Building from Source
Automated Build (Coming Soon)
An automated build script is in development. For now, use the manual installation method.
Manual Installation
See INSTALL.md for complete step-by-step instructions to build your own image from scratch.
This method is recommended if you want to:
- Customize the installation
- Understand how the system works
- Build for different hardware configurations
- Troubleshoot issues
Configuration
Network Configuration
Ethernet: Works automatically via DHCP
WiFi: SSH into the device and configure:
rc-service networking restart
Hostname
rc-service hostname restart
Audio Device
By default, the system uses the first USB audio device (card 0). To use a different device:
- List audio devices:
aplay -l - Edit
/etc/asound.confand changecard 0to your device number - Restart sendspin:
rc-service sendspin restart
Project Structure
sendspin-alpine-image/
+-- build.sh # Main build script
+-- config/
| +-- asound.conf # ALSA audio configuration
| +-- sendspin.initd # OpenRC service script
| +-- packages.txt # List of packages to install
+-- scripts/
| +-- setup.sh # Post-install configuration
+-- output/ # Build artifacts
Troubleshooting
Audio Issues (Pops/Crackles)
Check buffer settings in /etc/asound.conf. Increase buffer_size if needed:
buffer_size 16384
SendSpin Not Starting
rc-service sendspin status
# View logs
cat /var/log/messages | grep sendspin
# Manual test
sendspin --headless
USB DAC Not Detected
lsusb
# Check ALSA devices
aplay -l
# Check kernel messages
dmesg | grep -i audio
Roadmap
- Web UI for configuration
- Audio input capture and streaming
- WiFi configuration via boot partition config file
- Multiple USB DAC support
- Automatic updates
Contributing
Contributions welcome! Please open an issue or pull request.
License
MIT License - See LICENSE file for details
Credits
- SendSpin by the SendSpin team
- Alpine Linux
- Home Assistant and Music Assistant