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.2-cp313-cp313-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.13Windows x86-64

screamrouter-0.3.2-cp313-cp313-win32.whl (6.6 MB view details)

Uploaded CPython 3.13Windows x86

screamrouter-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

screamrouter-0.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

screamrouter-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

screamrouter-0.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

screamrouter-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

screamrouter-0.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

screamrouter-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

screamrouter-0.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file screamrouter-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9c65eda66805ae67ea3d6199a40c9ec80e6e5be19d6d6f99136a6b3aa7cb08e6
MD5 20f8c95de1b603abe53e81543632ecf2
BLAKE2b-256 4527cf8e1123db79e0e36ef3c9f4de51fbb511b941de640be23de968712acf3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp313-cp313-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.2-cp313-cp313-win32.whl.

File metadata

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

File hashes

Hashes for screamrouter-0.3.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 4cd71133a630c4bd51d8ec3721425518be199bfceb3db5151e690a0329b192f7
MD5 dc16bd25bf670e1139abc6f592613cad
BLAKE2b-256 65085ea49a9a29c13ac8a6c3a31e98019c30387ee112678ce2f8982e00b3f9af

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp313-cp313-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.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0b6979694c333a42d3b18531d8893b873b941bf72c81e2aac3739ef8338ca62
MD5 bebfab15554daa631e2e1ee04c07357c
BLAKE2b-256 1c5e4f5400e147c75d80582dc0a3c60c749880d08232deaa31b6bfeda520c208

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_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.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8f4f4aa08bb7dc8bb69e7bb5ebaa22dca115d6648e7f6844b3366b8772e02372
MD5 d125ced67ba42357731fb952446fea13
BLAKE2b-256 397ae2256e424979b49baed92982b9d349140a1998ffcde6d0f2c54af8f2e815

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fdfe87652cc0b308e8174dd173ad58c299ecaa3c73db95cd0074011d445ed00e
MD5 9ee28cd78f217a9261b6d251ba1c0b80
BLAKE2b-256 72539776237be88404d851efe6cbbbac06d44eccacaf46bedcf29bd0681bf898

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.2-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.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 b423c4407855df076ab4d956b91459ed3f2a2f176b345ccba36e89b7044506ba
MD5 630c70629e6b2615bd4b47cd55baac1f
BLAKE2b-256 801a5e92e0d07565d202afb99358715f71794ed03c8eef6e6d6334fd6b688279

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e45daea0e29f67424169d2b3a5d8c81e6e34f7089fef6acc264608a4e81bb375
MD5 ad5227b23332c672cd147ffb7e64f5e6
BLAKE2b-256 b05545edeafcf53e79a846a0100bbb600a7d15f7142323e5c79ff116a3e98245

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_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.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dc8b4bf4c50b3b4a951d4450029d015336894449926e1f545b080e6e06699fc7
MD5 b0e40c19b334a5b141094165037139ae
BLAKE2b-256 e9e9058347e121e962449fa756f6263144c37984b434aa59543c1c76769fbe94

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fbed47bcfb28260dc1e8fa512333b912fb520261dcc84951bd6c2a669074eec5
MD5 93e5b7b05219f0838f018f370ada7d5c
BLAKE2b-256 7babf9daff613ece1287a925cdff3b676acdb35c1bce563f9a27079a8ecc791e

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.2-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.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 767602d5b1b28aa7beba9adbced8d8211cd04d9415a2f9881c05bef6b61e2b8c
MD5 f98eac172b5b72f46af584c6e695b09f
BLAKE2b-256 5ef82c202be55779104871e9b856f920958cc1fee6dfee1624fcc7e6f6bfd34a

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be0140fd93591d0a17ca5e965c8686b69705e3fd1e3f54575d42042d4e5e3218
MD5 68db14ad6f11235b2521121957b59bf6
BLAKE2b-256 a997bc57ce3fca322f0fa02dc801345e8af5a0dbf9d2f4aa3c41f831ae2fefae

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_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.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f98bf4b4e02643c30c06942ad8b8064cde88f3ea5904336828ca8809c1a8d4f0
MD5 b755decd9265dcbbdf4dd84646d44d51
BLAKE2b-256 3cefd3b0872b8f3408559789325c9bfcdd472bad5dfe20a76bada760c173821c

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4d9f1db9ed5dbe897b730737ecba2c75fb6b94108edf231cbda1d68aab64bd23
MD5 4f4bbd14b970eefb6efc493bad269a39
BLAKE2b-256 fd38f119f4af8f5a8b08439f14cc304dd32481eab6d5e71569eee2d7ea5734ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: screamrouter-0.3.2-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.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b95f8c46ceddbd52d77a5b99e0d2d1fa6db56c24632507d792f4c7e78d0003bd
MD5 826155c6ecfae83fe93ed0221796607f
BLAKE2b-256 e8b471717309f45a24913310752d331f8bebfaba65e8c3237893f1b1152742cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-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.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 778aa2898c5a5927ccdf69b43a4138c218cfa34cc1a744121287478a8b9a785f
MD5 d36e3df018345a4b0c5e1f862a81924e
BLAKE2b-256 c908fdedc67a45f227fb2d5c6d4f092d2a39fb312ded74abea944929303f3795

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_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.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2a65423bd5eb08474689e47a91ecfb3c395bd54b05ee2766c9e62e0d1c8b85bb
MD5 5eaae961f2adb0fdc7596fe3b8753f06
BLAKE2b-256 2f9778fcf66414f7772c9ce6a0bec6a58674308918d091b8e16db310c531b065

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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