FXRoute is a browser-based audio control surface for Linux listening machines.
It is built for mini PCs, desktops, ARM boards, and dedicated stereo boxes that run local playback, EasyEffects DSP, radio, library playback, measurement tools, and optional Spotify desktop control — all remote-controlled from a phone, tablet, or laptop on the local network.
Measure, compare, and sketch PEQ corrections directly in the browser.
![]() |
![]() |
| Playback and routing | DSP presets and A/B compare |
![]() |
![]() |
| Measurement PEQ editor | Technical settings |
![]() |
![]() |
![]() |
| Mobile library | Mobile radio | Mobile PEQ preset |
- browser UI for desktop and mobile control
- local music playback with queue, playlists, uploads, ZIP album imports, and media URL imports
- internet radio with built-in and custom stations
- Spotify desktop control through
playerctl/ MPRIS - EasyEffects preset switching, PEQ, convolver import, output helpers, and A/B compare
- global DSP helpers such as limiter, headroom, autogain, bass enhancement, delay, and tone modes
- practical room/speaker measurement workflow with host microphone capture, calibration files, smoothing, saved runs, and PEQ draft transfer
- sample-rate-aware playback handling for local files, radio, Spotify, and Bluetooth handoff cases
- Bluetooth input visibility/control when the host audio stack supports it
- optional local HTTPS/Caddy setup with downloadable local certificate for trusted LAN clients
- installer support for systemd user service, Flatpak EasyEffects, PipeWire/BlueZ dependencies, firewall comfort rules, and
.localLAN naming
FXRoute is meant for a Linux desktop-session audio box, not a fully headless rack server.
Typical setup:
- small PC or ARM board near DAC, amp, active speakers, headphones, or TV
- PipeWire-based Linux desktop session
- EasyEffects running in the same local user session
- optional Spotify desktop client in the same session
- control from any browser on the LAN
The user session matters because FXRoute coordinates local audio applications, EasyEffects, MPRIS/playerctl, and PipeWire audio routes. In socket mode, EasyEffects runs as a background service in that session.
FXRoute is intended for a Linux desktop-session audio machine with PipeWire. On supported distros, install.sh installs and configures the required runtime tools such as Python dependencies, mpv, ffmpeg, playerctl, Bluetooth/PipeWire helpers, and service files.
EasyEffects is handled separately: fresh installs can use the installer-managed Flatpak path, while existing native/package-manager EasyEffects installs are accepted when already present.
Tested installer targets so far include:
- Ubuntu 24.04 and 26.04 on x86_64
- openSUSE Tumbleweed on x86_64
- Fedora-family x86_64 systems
- Armbian 26.2.1 / Ubuntu 24.04 Noble on ARM64 (
aarch64, Khadas VIM1S; PipeWire setup may be needed depending on the image)
The installer prefers Flatpak EasyEffects when it installs EasyEffects itself. This is the most reproducible path and normally provides the EasyEffects control socket used by FXRoute for faster preset switching and recovery.
If EasyEffects is already installed through the system package manager or managed manually by the user, FXRoute can use that installation instead. Older native EasyEffects builds may not expose the control socket; in that case FXRoute falls back to EasyEffects CLI control where possible.
chmod +x install.sh
./install.shThe installer creates .env automatically and preserves it on reruns. For manual setup, copy .env.example to .env and adjust at least MUSIC_ROOT when needed.
Default user service:
fxroute.service
Typical URLs:
http://localhost:8000http://<host-ip>:8000http://fxroute.localwhen mDNS is enabledhttps://<host-ip>orhttps://fxroute.localwhen the optional local HTTPS proxy is enabled
- Radio — built-in and custom internet stations
- Library — local files, playlists, uploads, imports, downloads, and deletion
- DSP — EasyEffects presets, PEQ, convolver, helpers, A/B compare, and preset creation
- Measure — practical host-mic measurement and tuning workflow
- Spotify — control a local Spotify desktop client
- Technical settings — output selection, source state, Bluetooth status, and local certificate access
systemctl --user status fxroute
systemctl --user restart fxroute
journalctl --user -u fxroute -fUseful EasyEffects checks:
flatpak list --app | grep easyeffects
pgrep -af easyeffectsSee MANUAL.md for the short user manual.
See LICENSE.







