- What is ScreamRouter
- Key Features
- Sources
- Receivers
- Use Cases
- Documentation
- Accessibility
- Example Devices
ScreamRouter is a versatile audio routing and management system with a Python frontend/configuration layer and C++ backend, designed for network audio streaming. It supports Scream and RTP audio sources, along with Scream receivers and web-based MP3 streamers.
- Configure Sources by IP address.
- Set up Routes between Sources and Sinks.
- Customize Sinks with Bit Depth, Sample Rate, Channel Layout, IP, and Port.
- Group Sources and Sinks for simultaneous control and playback.
- Volume control at every level: Source, Route, Sink, and Group.
- Custom mixer/equalizer/channel layout processor for minimal latency, implemented in both Python and C++.
- Adjustable equalization for any sink, route, source, or group.
- MP3 stream exposure for browser-based listening of all sinks.
- URL playback capability for sinks or sink groups.
- Milkdrop Visualizations via Butterchurn project.
- Keeps a rolling buffer of streams that can be used for time shifting/rewinding streams.
- Home Assistant Custom Component for managing configuration and media playback.
- Embedded noVNC for remote computer control.
- Automatic YAML saving on setting changes.
- Flexible plugin system for easy addition of new sources and functionalities.
- API and web interface for media control commands to containers.
- Advanced configuration management and solving system.
- Comprehensive logging system.
- RTP/Linux Source
- Windows Source
- ESP32S3 USB Audio Card and Toslink Senders
- Raspberry Pi Zero W / Raspberry Pi Zero 2 USB Gadget Sound Card Sender
- Amazon Music Docker Container
- Firefox Docker Container
- Spotify Docker Container
- Plugin system, including the ability to play arbitrary URLs out.
- Windows Receivers
- Raspberry Pi/Linux Receiver
- ESP32/ESP32s3 spdif/USB UAC 1.0 audio receiver
- ESP32 A1S Audiokit Receiver
- Android Receiver
- Python Scream Receiver
Integrate multiple Scream Sources and Receivers for seamless audio distribution throughout your home.
Implement granular volume control at both group and individual sink levels, ensuring optimal audio balance across your setup.
Utilize the 'Listen to Sink' feature to enable browser-based audio playback, enhancing accessibility and flexibility.
PCM receivers are available for most popular platforms, and for ones that can't receive PCM they can use the MP3 stream.
Employ the FastAPI interface or Home Assistant integration for automated management of sink activation, deactivation, and volume adjustments.
Incorporate sound effects and Text-to-Speech functionality into Home Assistant automations and play them from any speaker in your house for an enhanced smart home experience.
Utilize built-in equalization tools to optimize audio output, particularly beneficial for improving the performance of budget-friendly speakers.
Maintains a rolling buffer of the most recent 5 minutes of audio for each stream allowing rewinding to and replaying audio within the buffered timeframe.
All documentation is available at https://screamrouter.net
ScreamRouter aims to be accessible to those with visual impairments. To this effect, the UI has been designed with tooltips and alt tags on every element and can be used from a keyboard.
If you encounter any issues affecting accessibility, please file an issue on GitHub.