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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13Windows x86

screamrouter-0.3.1-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.1-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.1-cp312-cp312-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12Windows x86

screamrouter-0.3.1-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.1-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.1-cp311-cp311-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

screamrouter-0.3.1-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.1-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.1-cp310-cp310-win_amd64.whl (7.1 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

screamrouter-0.3.1-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.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a6bafcc5e6bdba54dd89f586678853cbb70b7ae47f9c55cd494151cc6a90a9ca
MD5 b01a026fa12d033ab3e12bf266871360
BLAKE2b-256 443fbe7fb2f1adc30709bb0eec7553da7d41381516a083e22335fe9a6839005a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: screamrouter-0.3.1-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.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 365e3cc875cec0276081b674ffc594c6c3301fde06aab8ba8c5258c5970bc134
MD5 dd18e3cbcf4d4eebae46329f3716748e
BLAKE2b-256 769ae5375540d80eb99f18309dd16ee6056cc6270c4f372c4c40f3b1ccf6dfe2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9efd762fd71d1862882e5885eb369993abf22d8a6b474bd1599be3c006b984b5
MD5 049237fbb2e3497e1e5a01da5a5b8dc6
BLAKE2b-256 e08575f9c8ded5d295d4710c5c5966607f1bc398e1a6e2dcac1d00b5306c123f

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dfc933176b30e1d8f991101a9b6538aaa9f7e7d77aab1fb4eb0f298262ed92c7
MD5 d901cb683eec9c1cfeefd18559015709
BLAKE2b-256 751e8d3a120fc19bc3b97fa0c6fab6f871c53717e764ea53ee7b0cd8684443fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9ccf289a2f75b1b284ebd3366bf103fa9f3cc5d10357450c990c488581376b61
MD5 d202dddcfba9dbb5c860b28424ad1a78
BLAKE2b-256 05c139929d5ef8131d4db5c7a4083dcd24260c201d77ceb46e43d8144fa06846

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: screamrouter-0.3.1-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.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 5bb47bc8906340ef6add664c8560402545b0df4428d340c059f0c6c775573112
MD5 0909053d8c2f4466b5d0abfccc299773
BLAKE2b-256 2e49f7b2b7dad0563906c135db8d10d978d4a28140ecd5f4e3cd8b60791594e1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de2a7952700e4118cbf352d0491153265f260186ef858197b03314f43ea2eb45
MD5 cea36a49ff7545d8baccce67c6d78421
BLAKE2b-256 ec84cb03cc8aa583486f2edf159a0bdd30b289f255ad837d9e1db7195e722cf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 82ff35b7b465269e5e59ff164c1cbb44ccfc091ce5bc3820a5e4cca8eba685a7
MD5 e5f14d5bf0190a8456e488a65b843125
BLAKE2b-256 b8b15437e7ed52966af7cf52c47d61c730a4934d33c6a16c9ad3ead16ebbff49

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6a995c14fd866798f3db4e3548bf9958106c4c764f1eeff99feabd62d0f02562
MD5 e1ec0bda59140e084296efd6ba44b796
BLAKE2b-256 c5ef62f0b779bc737b4bd911ff069096be82dcaa886b56108013479f20e112c3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: screamrouter-0.3.1-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.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 9d39da7a48730b5e405b7425001c9ba2526c616b890bdc588caabe825bc0174c
MD5 6a3507b8f670ee6f36f028c29e47b6b1
BLAKE2b-256 2c170014227a71734366d8dce64af5c04a5c9472f5822cd962daa556a2d8b114

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82f516a58a151966ba4d4f1e2ff83ac4f4b0aeccd392c62d80454ca031aae27e
MD5 8607aa92045bd153933c91c8b25a4310
BLAKE2b-256 8463215627c56073aadc9aa994c16a0bf2ae4a8805c3f2aad74b686ca820af3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 301f8e2c6fac43a18f0d84c00e58ffabf7667a4422ed0edb4d464e4bc13c2ff5
MD5 3cf10aed70c14f0aaec34d03749f66b4
BLAKE2b-256 2723aa7f39ff1e17da098cd2fb8288cca5b5bf4604b55b59716d1d6933a64d93

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 01a390c93c8ec336c1bfa3eefc01fcd17dacb61554b406d5e75a8bcef4be0af6
MD5 03ea9f4984fa1eadecaa5cf9758b50f4
BLAKE2b-256 0fff84723eb6f8ddfe9affcb78ba496433a1565a69b11aac7359a8eb1008f52e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: screamrouter-0.3.1-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.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 b0e4ea28c21233df1c8ca11690ed7cd5f8b1fd03d7a8855fc9b1a570ccf7fd55
MD5 3977c316a7d3a13e265b5286b756193a
BLAKE2b-256 7b31f881afa5afbc60050039e2d178c71e7923d63270a506fbc8eff0f7b6e4d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b3d4b0485c138e6dbd3c5d8bfb763aaf7a2ae90358430764c1cf4a6aa4e16d6
MD5 de67acf66470f54f0b6ac7a73dca9082
BLAKE2b-256 1bfa5fe3fa08644860975b758e31a918b767b7eddd12cb664923c5a1cfe9c057

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for screamrouter-0.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ce5008c62c0f7139603580d86b90057d20d7a7165a138c38b8e8a043a22aa56d
MD5 1211f8d0e6555a40169ada55e8344034
BLAKE2b-256 ebedcb85c1d50ea61a23b04c5f49e29987a84631e4217cd59853e2d65e4892c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for screamrouter-0.3.1-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