Skip to main content

ScreamRouter audio routing system with web interface and C++ audio engine

Project description

ScreamRouter

Screenshot of ScreamRouter

Table of Contents

  1. What is ScreamRouter
  2. Key Features
  3. Sources
  4. Receivers
  5. Use Cases
  6. Documentation
  7. Accessibility
  8. Example Devices

What is ScreamRouter

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.

Key Features

Audio Routing and Configuration

  • 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.

Audio Processing and Playback

  • 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.

Integration and Compatibility

  • Home Assistant Custom Component for managing configuration and media playback.
  • Embedded noVNC for remote computer control.

System Management

  • 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.

Sources

  • 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.

Receivers

  • Windows Receivers
  • Raspberry Pi/Linux Receiver
  • ESP32/ESP32s3 spdif/USB UAC 1.0 audio receiver
  • ESP32 A1S Audiokit Receiver
  • Android Receiver
  • Python Scream Receiver

Use Cases

Comprehensive Whole-House Audio Systems

Integrate multiple Scream Sources and Receivers for seamless audio distribution throughout your home.

Advanced Volume Management

Implement granular volume control at both group and individual sink levels, ensuring optimal audio balance across your setup.

Web-Based Audio Access

Utilize the 'Listen to Sink' feature to enable browser-based audio playback, enhancing accessibility and flexibility.

Universal Sink Compatibility

PCM receivers are available for most popular platforms, and for ones that can't receive PCM they can use the MP3 stream.

Programmatic Audio Control

Employ the FastAPI interface or Home Assistant integration for automated management of sink activation, deactivation, and volume adjustments.

Home Assistant Integration

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.

Sound Quality Enhancement

Utilize built-in equalization tools to optimize audio output, particularly beneficial for improving the performance of budget-friendly speakers.

Time-Shifting and Audio Buffering

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.

Documentation

All documentation is available at https://screamrouter.net

Accessibility

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.

Example Devices

ESP32S3 Portable Receiver

Portable ESP32S3 Scream Receiver

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

screamrouter-0.3.0-cp312-cp312-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.12Windows x86-64

screamrouter-0.3.0-cp312-cp312-win32.whl (6.6 MB view details)

Uploaded CPython 3.12Windows x86

screamrouter-0.3.0-cp312-cp312-manylinux_2_39_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

screamrouter-0.3.0-cp311-cp311-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.11Windows x86-64

screamrouter-0.3.0-cp311-cp311-win32.whl (6.6 MB view details)

Uploaded CPython 3.11Windows x86

screamrouter-0.3.0-cp311-cp311-manylinux_2_39_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

screamrouter-0.3.0-cp310-cp310-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.10Windows x86-64

screamrouter-0.3.0-cp310-cp310-win32.whl (6.6 MB view details)

Uploaded CPython 3.10Windows x86

screamrouter-0.3.0-cp310-cp310-manylinux_2_39_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

Details for the file screamrouter-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 007038196fe148c2e7a0ffe140249a8052deb6723d837ee3a46bb23a60f4d2ca
MD5 4b56c4b199889c5602186ea86bf98b6d
BLAKE2b-256 45a93b7ba262a156edff9120e17e233cb00c89967f858ccb5a441ac7d870601d

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for screamrouter-0.3.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 c2780425d341b589803f8aeba2a32e79dd97ef10f878c730b5bbb06924c29263
MD5 69e30daef3aeed50994c0483a3836aed
BLAKE2b-256 6696fd812d026ea85f34f34e80f3a45b2dbdb9b2c96829fe35e1a14ee6121abc

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp312-cp312-win32.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ee60cd235736d86684b6f1cc9eb08858bf24cf321082b73160f7548d05590ff4
MD5 deb1e42d2378c7800125ad55fd830d56
BLAKE2b-256 69428aa991bf526bb7468ca46b7cea4f203d3e3892a3304a89c7f9b0e45f1afd

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f6abcd35e7087426f1cc42b55bf2b6277e3af9d95af7a9cc2cef6f2c0b578ac4
MD5 4a58073272348c6e0088fa31852b8ed9
BLAKE2b-256 ed46949bdd8a0cdd4f0aced710851ed0a06acfd83bac5958335f819ca26bff9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for screamrouter-0.3.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 2ec941b4d6632a2ef64c1657a16433847e085a86617a300061a86a73508e27b0
MD5 87c5cea97f62eb9f3b85bbfb4de557e4
BLAKE2b-256 7b3740fa10895aa663942a5023086cb3340e5869eb522bcb51ea4e9c3ec1c227

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp311-cp311-win32.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 671b70a37a1d5b537902682228d17b35c52d01860552bde0110229f2bbc0fb3b
MD5 6607dac61d701a6a688434f0c77b85b3
BLAKE2b-256 f5c68974e71f176363d5c7bffb67a5f2ae2f5b510e5bf36b8f7d5a6b97885c3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp311-cp311-manylinux_2_39_x86_64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eb28e6c138bcd929fb2f7241793679de20705ad2f47690b311f71ab9ad510ce6
MD5 047a9100ff6fa550ad3823b06c465f9c
BLAKE2b-256 572a2399c866be709f3ba5fec7d0432d5c1bc91715a53b620e917343bbecdab2

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for screamrouter-0.3.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 3b9cd4035cca98190815ab9a329a2baec28155ee1dbe358df1f98e3425e0f951
MD5 f4dda09317b8ac68df2f6fdff5a3f841
BLAKE2b-256 07f84d651c32aaabd09af72b4b02da572167aabf8b8f4c638c14ee5b048d0c0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp310-cp310-win32.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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

File details

Details for the file screamrouter-0.3.0-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.0-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ec316daf3e9fabe60c15b5255817c0feda4a6399d439a7787c347a43b135d0bb
MD5 cbc9e980c3acc9e98bb09939a7ddb93b
BLAKE2b-256 af624f2b4f380641b86dcdea3411d8b2a0a0fd4b42804e338557b47331aebb3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.0-cp310-cp310-manylinux_2_39_x86_64.whl:

Publisher: publish-pypi.yml on netham45/screamrouter

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