• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

FXRoute 1.0 Beta – rebuilt from the ground up

cobby

Active Member
Joined
Sep 13, 2024
Messages
230
Likes
265
A lot has changed since the last version, so I thought it was time for a new thread.

FXRoute has basically been rebuilt from the ground up. It now has its own fast DSP engine, runs headless on x86 and ARM, and integrates Spotify, TIDAL and Qobuz (unofficial).

The goal is simple: powerful audio processing without turning the system into an IT project. The whole interface is web-based, mobile-friendly and designed to integrate the important functions in one place.

Download & Demo​

FXRoute 1.0 Beta and later:

The release includes Raspberry Pi 4/5 images and links to the x86_64 installation image.

Project / Installer / Documentation:
https://github.com/CobbyCode/fxroute

Web Demo:
https://cobbycode.github.io/fxroute/

The demo has no actual audio playback and not every function is active, but it gives a good impression of the current UI and workflow.

Hardware & Installation​

FXRoute doesn't need much hardware.

For x86 I recommend roughly a J4125/N5105 or faster, with 2 GB RAM for headless use and 4 GB for desktop. An N97/N100/N150 is already very comfortable.

On ARM, a Raspberry Pi 4 or faster should work well; 2 GB RAM is recommended. My ARM test system is an old Khadas VIM1S, and anything that works well there should have plenty of headroom on newer Raspberry Pis.

So far I have tested on real J4125, N150 and Khadas VIM1S hardware as well as various QEMU environments.

The installer supports a broad range of Linux systems including Debian, Ubuntu, Raspberry Pi OS, Armbian, Fedora, openSUSE and Manjaro/Arch-based distributions.

Room EQ & DSP​

One of the main features is the integrated Room EQ workflow.

Plug a measurement microphone directly into the SBC or mini PC and measure from the web interface — no separate measurement computer or external measurement application is required.

FXRoute can create, import and compare filters and includes automated tools such as Auto Sub Optimize for subwoofer integration, level, timing/alignment and polarity.

Current highlights include:
  • Stereo, 2.1 and 2.2 operation with up to four native output channels
  • PEQ and convolution
  • Adaptive Loudness processing, limiter and additional DSP effects
  • integrated Advanced measurement and Room EQ
  • Auto Sub Optimize and speaker/subwoofer alignment
  • Spotify, TIDAL, Qobuz, internet radio and local music library
  • x86 and ARM support
  • headless and desktop operation

1788834722133.png


1788780246297.png


The current release is still marked Beta, but after the amount of rebuilding, testing and optimization that went into it,I think it has reached the point where it deserves to be called Version 1.

Feedback, bug reports and hardware experiences are very welcome.:)
 
Last edited:

FXRoute 1.0-beta2 is out​

One thing that had been bothering me for a while was the slightly too conservative headroom handling of the Convolver filters.

I reworked the headroom estimator so that a single very narrow boost peak no longer dictates the gain reduction for the entire FIR filter. It now also takes into account how much of the correction actually sits close to the maximum boost, while still keeping a hard safety limit.

It is a fairly small change, but in practice it works really well and avoids throwing away unnecessary level just because of one isolated peak. Nice little improvement.

Apart from that, I spent most of the time hunting down and fixing a handful of smaller UI and release-related bugs. Nothing too spectacular there, some polish.


Download / release notes:
https://github.com/CobbyCode/fxroute/releases/tag/v1.0-beta2
 
FXRoute v1.0-beta3 is now available.

This release is mainly another stability and cleanup pass: more bugs fixed, further code refactoring, and no new feature scope added.

The goal remains the same: get the codebase and appliance behavior as clean and reliable as possible before 1.0.
 
FXRoute 1.0 Beta 4 is out.

This release brings another round of bug fixes, UI polish and release-path hardening. One worthwhile last-minute find was an Armbian-specific update issue; that is fixed now, and I’ve successfully tested real GitHub updates from Beta 3 → Beta 4 on both x86 and Armbian hardware.

Playback, provider switching, 2.0/2.1/2.2 routing, crossover and the usual DSP paths have also had another round of real-world testing.

The web demo has also received a substantial update.

Beta 4: https://github.com/CobbyCode/fxroute/releases/tag/v1.0-beta4
Web demo: https://cobbycode.github.io/fxroute/
 
The [DSP]:sub-crossover graph representation for the crossover point is very cool. I tried it in the web simulator.

One thing I noticed (fyi) on my Android phone is the [Main Hi-pass] drop-down is just slightly truncated horizontally so "On" renders as "Or". Perhaps this is a display specific issue, but this confused me for a second.

Outstanding dev work!
 
The [DSP]:sub-crossover graph representation for the crossover point is very cool. I tried it in the web simulator.

One thing I noticed (fyi) on my Android phone is the [Main Hi-pass] drop-down is just slightly truncated horizontally so "On" renders as "Or". Perhaps this is a display specific issue, but this confused me for a second.

Outstanding dev work!
Thanks a lot, glad you like the crossover visualization!

And thanks for the heads-up about the Main Hi-pass dropdown. I’ll have a look at the mobile layout there. “On” showing up as “Or” is definitely not ideal :)
 
Can't run on Windows?
 
Can't run on Windows?
Not natively on Windows, I'm afraid. FXRoute is built quite deeply around Linux and PipeWire, including the DSP, audio routing and the measurement system, so Linux is really part of the foundation rather than just the operating system it happens to run on.

Technically you could run Linux in a VM and pass a USB DAC through to it, but I wouldn't consider that a proper FXRoute setup. Especially for measurements and reliable real-time audio behaviour, I want the system to have direct access to the hardware.

If you have a Windows PC you want to use, a native Linux install or dual-boot would be the much better route.
 
The [DSP]:sub-crossover graph representation for the crossover point is very cool. I tried it in the web simulator.

One thing I noticed (fyi) on my Android phone is the [Main Hi-pass] drop-down is just slightly truncated horizontally so "On" renders as "Or". Perhaps this is a display specific issue, but this confused me for a second.

Outstanding dev work!
Thanks a lot for catching that, that kind of feedback is really helpful. It’s already fixed now and I’ve verified it on Android.

I’m going to give it another day or two before pushing the next beta, just to see if anything else turns up first.
 
Hello!
What root password is required for the installation?
No root password is required for the x86 installation.
The installer only asks you to create a normal user account and set a password for that user. The root account itself does not need a separate password.

Btw, the new Live ISO is on the way. It turned out to be a bit more difficult than expected, but it should be ready this afternoon.

There’ll also be a new ISO then. If you’ve already installed the current version, no problem you can simply update it with one click from the Settings.
 
I’ve just published FXRoute 1.0-beta5.

The biggest addition in this beta is Try FXRoute on the x86_64 ISO: you can boot FXRoute as a non-persistent live system from USB and try the full interface and audio path without installing anything.

Other changes since beta4 include more robust audio/DSP routing and sample-rate recovery, a cleaner Measurement setup, a number of library and streaming fixes, improved first-boot behavior, and another round of UI/mobile cleanup.
Ready-to-write images are available for Raspberry Pi 4 and Pi 5, alongside the x86_64 installer/live ISO.

Web demo: https://cobbycode.github.io/fxroute/
Beta 5 release / downloads: FXRoute 1.0-beta5 on GitHub
 
Last edited:
Quick update: I’ve received my Focusrite Scarlett 16i16 and have started playing around with it.

I already did a similar multi-device test before and that went well, i’ve since added some extra hardening for a few edge cases.

Next up I’m planning another stress test for FXRoute: the 16i16, a Behringer UMC404HD, an SMSL DAC, plus a few headphone DACs and whatever other USB audio hardware I can find lying around here.

Should be a good test of how robust FXRoute is with a fairly mixed collection of interfaces and DACs.
 
Old quote from back in June
Right now FXRoute is still very stereo-focused, so it does not yet target active crossovers, per-driver EQ, or channel routing on/off.

So many? most? of these functions are now working?

> Stereo, 2.1, 2.2, and 2.2 Stereo Bass output modes with crossover, level, polarity, and alignment controls

Given a scenario where there are multiple co-located bass speakers

say 80-200Hz "MBM couplers" plus two trueSubs one 15-40Hz the other 40-80Hz

as part of each of the main L/R stacks

Would it be possible to A/B compare between configurations, flipping from the bottom up between Stereo Bass and summed mono?

I doubt I'd want to sum the MBM portion, but would be interesting to see how that affects different content / genres differently.

As a separate question, should I try to use FXRoute to handle the crossovers between speakers? Not just magnitude but ToF delays / phase alignment as well.

Note this is downstream of upsampling, so within up to 5x channels, nothing to do with user-ad-hoc controls from MLP or source playback, just using the "measure and convolve" DSP sink features, made available via PipeWire/EE routing to all input switched sources including analog.
 
Old quote from back in June

So many? most? of these functions are now working?

> Stereo, 2.1, 2.2, and 2.2 Stereo Bass output modes with crossover, level, polarity, and alignment controls

Given a scenario where there are multiple co-located bass speakers

say 80-200Hz "MBM couplers" plus two trueSubs one 15-40Hz the other 40-80Hz

as part of each of the main L/R stacks

Would it be possible to A/B compare between configurations, flipping from the bottom up between Stereo Bass and summed mono?

I doubt I'd want to sum the MBM portion, but would be interesting to see how that affects different content / genres differently.

As a separate question, should I try to use FXRoute to handle the crossovers between speakers? Not just magnitude but ToF delays / phase alignment as well.

Note this is downstream of upsampling, so within up to 5x channels, nothing to do with user-ad-hoc controls from MLP or source playback, just using the "measure and convolve" DSP sink features, made available via PipeWire/EE routing to all input switched sources including analog.
Yes, quite a bit more of that has been implemented since June than I expected at the time.

I'm currently thinking about extending the existing crossover into a multichannel version, probably still around stereo pairs, with the usual level, polarity, delay/alignment and possibly convolution per output.

It may not map exactly to the setup you're describing, but I think it could get fairly close. The concept isn't fully settled yet though, there are still quite a few details I need to work through.
 
FXRoute 1.0 Beta 9 is out.

The biggest change in this release is the move to Ubuntu 26.04 as the new x86 base.

While testing the Focusrite Scarlett 16i16 4th Gen, I ran into a distribution-specific kernel bug affecting interfaces that change their USB audio channel layout depending on the sample rate. The same issue does not occur with the corresponding vanilla kernel. I reported the bug, but decided to move FXRoute to Ubuntu anyway, which has been working reliably in the same tests.

For this transition release, both the previous Leap 16 ISO and the new Ubuntu 26.04 ISO are available. Future x86 releases will use Ubuntu.

The streaming provider installer has also been reworked. Spotify, Qobuz and TIDAL now can be updated directly from FXRoute. Qobuz also has a compatible fallback upstream if needed.


Release: https://github.com/CobbyCode/fxroute/releases/tag/v1.0-beta9
Web demo: https://cobbycode.github.io/fxroute/
 

FXRoute 1.0-beta10 goes multichannel​

Haven't really planned this when I started FXRoute, but well, now it's there. This one has been quite a bit of work.

FXRoute now supports multichannel output with up to 10 channels, including:

  • up to 4-way active crossover + 2 subwoofers
  • flexible output routing instead of fixed speaker layouts
  • PEQ and Convolver/FIR per output or way, or globally, with filter assignment and import per bank
  • automatic speaker alignment
  • measurement tools integrated with the crossover and output topology
  • quite a lot of work on sample-rate handling, routing and DSP consistency
The existing stereo use case is still there, of course. The multichannel and crossover part is optional.

@DWPress @Music1969, this might be something for you from what I've gathered about your setups. There should be quite a bit of flexibility now.

A lot has been tested and optimized over the last couple of weeks, including real 2-way and 3-way measurements and different subwoofer configurations. I'm sure there is still stuff to improve, though. That's what the beta is for.

FXRoute 1.0-beta10 is available now for x86/Ubuntu and Raspberry Pi 4/5.

Release:
FXRoute 1.0-beta10 on GitHub
Web demo: FXRoute Web Demo
 
Last edited:
Back
Top Bottom