• 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, browser-controlled Linux audio player and DSP control surface for mini PCs

i've just installed it on Fedora 42 workstation. installation was pretty straight forward, i had most the required packages installed beforehand.
it defaulted to my home Music directory (which is fine i guess) but I would suggest you add a prompt for default music installation folder during install.
changed the .env file to my mounted NAS music folder which holds about 62k audio files and restarted the service. and waited..that's when i figured that was probably a mistake as it would take an hour if the app scans for tags etc. stopped the process and changed it to a single folder with holds 318 files. now the web page loaded in no time but I was surprised all the files were in a big mess of a list , and not divided to folders .
anyway I'm having hard time visually with the big spotify tab in the middle as I seriously despise this company
Thanks a lot for the detailed feedback, that’s really helpful.

You’re right about the Spotify tab: if Spotify isn’t installed or enabled, it shouldn’t appear at all. I’ll treat that as a bug and fix the visibility logic.

The library view is admittedly not FXRoute’s strongest area yet. The main focus has been routing/playback/control, but your NAS and folder-structure feedback is very useful. I can improve this so large collections behave more sensibly — at minimum with a clearer folder-based view and better scan/progress handling.

Also agreed on the installer: prompting for the music folder during setup makes sense instead of silently defaulting to ~/Music.

Thanks again, this kind of real-world install feedback is exactly what helps make it better.
 
The user volume level control must be the same device that has automatically variable Loudness contour, ad-hoc tone control & balance are minor, but likely same UI as volume/LC, I'm not currently considering FXroute (nor Wiiim Ultra) for that cluster of functions.

As stated, I'm so far thinking Eitr 2 (USB in, SPDIF out) + Schiit Forkbeard (also other possible preamp choices see above) - if analog can use PocketADC into FXRoute.

...



The Wiim Ultra is not just one music source device (e.g squeezelite renderer), it also acts as THE central switcher / hub for ALL sources, including analog ones like OG FM, TT, etc

Qobuz etc, TV HDMI for watching films, kids phones via BT & a mini for Airplay etc etc.

This requires that the Wiim Ultra be upstream of FXroute.

But regardless, FXroute remains "the main" DSP, it is after all the only one with taps, the only real convolver of externally created FIR filters.

I want fanless and am on a tight budget so RPi4b much better than RPi5.

I'm not fussed about FXroute handling the multichannel / BM / crossovers domain; I see that handled with EasyEffects filtering and especially PipeWire, splitting / routing downstream of FXroute.

I am **really** interested in FXroute as the control layer helping me gain entry into that domain, plus the A/B presets for iterative testing / validation, the new combining / merging functions...

...

> I have personally used FXRoute mainly as a stereo DSP layer so far

Yes in that way I see it as complementary to OCA's GSonic Reference approach, which I want to try for DRC filter creation

> There is not much built-in active crossover management in FXRoute

Just speculating, but multiple cheap FXRoute RPi units (one per pair) in multichannel could handle bandpassing right? Not actually crossovers, would need to be blended manually...

Look at delays per driver / FIR phase-correction time domain tuning

At a later stage take advantage of PipeWire's pseudo realtime PTP "network clock sync", wrangling clock drift across the separate RPi units,

so many exciting toolsets for "Modularised DSP ™ " there!
FXRoute actually already handles volume, loudness contour, tone, EQ and automatic volume pretty well. Whether it fits your control workflow is something you’d have to try in practice, the WiiM may still be better as the everyday preamp/source hub, especially if all sources already go through it.

I agree that FXRoute is probably best placed downstream of the WiiM in your setup: WiiM as the central source switcher, FXRoute as the DSP/control layer after it.

On hardware: RPi4B is attractive because it’s cheap and fanless, but there are also fanless low-power x86 boxes around the same budget. I’ve seen Pentium 6400 / 8GB / 128GB fanless mini PCs on AliExpress for around $90, and those may be more comfortable for DSP experiments than a Pi.
My N150 (powerful and draws no power), 12GB DDR5/ 512GB was 170$ (not fanless, but dead silent, fan can be set in the bios, even forced to off below 50c).

Cascading multiple FXRoute units is theoretically possible, but I’m not sure it’s the most elegant path. The hard parts are clocking, latency, drift, alignment and repeatable measurement. I’m more interested in improving the single-box DSP path first, possibly with a proper crossover layer later, or maybe even CamillaDSP behind EasyEffects/PipeWire, but I’m still cautious there and don’t want to promise a specific architecture too early.

So my current view: FXRoute is already useful for volume/loudness/EQ/preset/A-B workflows, but the advanced multichannel/crossover/convolver side should be developed carefully rather than hacked together as a fragile chain.
 
i've just installed it on Fedora 42 workstation. installation was pretty straight forward, i had most the required packages installed beforehand.
it defaulted to my home Music directory (which is fine i guess) but I would suggest you add a prompt for default music installation folder during install.
changed the .env file to my mounted NAS music folder which holds about 62k audio files and restarted the service. and waited..that's when i figured that was probably a mistake as it would take an hour if the app scans for tags etc. stopped the process and changed it to a single folder with holds 318 files. now the web page loaded in no time but I was surprised all the files were in a big mess of a list , and not divided to folders .
anyway I'm having hard time visually with the big spotify tab in the middle as I seriously despise this company
I’ve fixed the Spotify visibility issue: the Spotify tab should now only appear when a usable local Spotify client is actually installed/detected.

I also agree that the library view needs more work, especially for larger collections and folder-based browsing. That will be one of the next areas I’ll improve.
 
Thanks a lot for the detailed feedback, that’s really helpful.

You’re right about the Spotify tab: if Spotify isn’t installed or enabled, it shouldn’t appear at all. I’ll treat that as a bug and fix the visibility logic.

The library view is admittedly not FXRoute’s strongest area yet. The main focus has been routing/playback/control, but your NAS and folder-structure feedback is very useful. I can improve this so large collections behave more sensibly — at minimum with a clearer folder-based view and better scan/progress handling.

Also agreed on the installer: prompting for the music folder during setup makes sense instead of silently defaulting to ~/Music.

Thanks again, this kind of real-world install feedback is exactly what helps make it better.
i'll be happy to install from scratch "version 2" when its ready, with the folder structure. what are your thoughts about tag scanning?
 
i'll be happy to install from scratch "version 2" when its ready, with the folder structure. what are your thoughts about tag scanning?
The next version is planned to include an installer prompt for the music folder, background scanning for large libraries with visible progress, and folder browsing with play/select actions for whole folders. Search is being improved to cover paths and basic metadata.
Tag scanning is partly supported already, but a deeper cached Artist/Album index would be a good next step.

My thought is folder structure should stay the reliable baseline, and tag scanning should be a cached background layer on top. Tags are great for Artist/Album views and better search, but with large NAS libraries they need to be incremental — scan once, cache results, and only rescan changed files. I’d avoid making startup depend on reading every tag every time.
 
Last edited:
FXRoute actually already handles volume, loudness contour
Can you point to an explanation of your LC function?

My starting point is Yamaha from the 90's.

So it does scale dynamically with volume level? But only if FXroute is the user's level control, right? Not sensing changes made upstream...

Can the reference point (to stop compensating) be recalibrated when gain structure changes?

Can different curves be applied, e.g. ISO 226 vs Dr. Toole style vs OG FM ? Custom curve possible?

Can the "intensity" of the compensation be ad-hoc adjusted?
 
Can you point to an explanation of your LC function?

My starting point is Yamaha from the 90's.

So it does scale dynamically with volume level? But only if FXroute is the user's level control, right? Not sensing changes made upstream...

Can the reference point (to stop compensating) be recalibrated when gain structure changes?

Can different curves be applied, e.g. ISO 226 vs Dr. Toole style vs OG FM ? Custom curve possible?

Can the "intensity" of the compensation be ad-hoc adjusted?
FXRoute currently exposes EasyEffects Auto Gain, plus some “loudness-like” tone tools such as Bass Enhancer and Crystalizer through the global helpers.

Auto Gain is mainly loudness normalization between tracks/sources, not a classic Yamaha-style dynamic loudness contour.

FXRoute also already supports custom REW-style house/target curves in the measurement/correction workflow, for PEQ/FIR/convolver work.

EasyEffects has a separate Loudness plugin based on the LSP Loudness Compensator, with contour options like ISO 226, Fletcher-Munson and Robinson-Dadson. I have not exposed that plugin in FXRoute yet, mostly because I have not spent enough listening time with it.

So today:
- Auto Gain: yes
- Bass Enhancer / Crystalizer: yes, via global helpers
- Custom target/house curves: yes, for measurement/correction
- Dedicated dynamic Loudness plugin: not integrated yet, but possible

The main limitation for any true dynamic loudness contour is level tracking: it only works properly if FXRoute/EasyEffects is the effective listening-volume control. It cannot automatically sense volume changes upstream or downstream.
 
i'll be happy to install from scratch "version 2" when its ready, with the folder structure. what are your thoughts about tag scanning?
The installer asks for the music folder instead of silently assuming ~/Music now, and the library view has been reworked toward a clearer folder-structure based view. I tested the installer again on Ubuntu, and it works for me so far.

There may still be edge cases, especially with larger NAS libraries, so if you hit a bug please let me know.
 
Small FXRoute update: version 0.6.2 is out.

This release focuses on the local music library experience. The library now has better folder-based browsing and more predictable folder-first sorting, while still respecting disc and track numbers where metadata is available. Search also uses more metadata fields now, including album and album artist.

For imported or downloaded tracks without proper tags, FXRoute now has a conservative filename fallback: files named like Artist - Title.ext are displayed as artist/title when the metadata is missing.

Local playback also got a small visual polish: when available, folder or embedded cover art is shown in the short Now Playing cue. The library and playlist views stay text-only to keep browsing fast and clean, especially for larger NAS libraries.

Overall this is mostly a cleanup and usability release for local music handling.

 
Library got a big overhaul.

1778943346655.png


1778943271546.png
 
Last edited:
FXRoute 0.7.0 is out.


This update mainly focuses on the Library side of FXRoute: album browsing, new artist info and Discover view, which uses ListenBrainz for artist suggestions.

album-about-artist.png


album-discover.png

I also worked out quite a few bugs and polished the UI a bit, especially around the Library layout/import, mobile toolbar and desktop spacing.

03-library-albums-list.png.png


Playback should feel a bit more stable now too: the local seek slider updates more reliably, and Spotify reconnect/source switching should behave better.

convolver-settings.png

The Measure / DSP area also got some improvements, including the Convolver preset editor/reset workflow and a few more tools around measurement-based correction.


Feels pretty solid, now.
 

Attachments

  • tablet.png.png
    tablet.png.png
    113.4 KB · Views: 24
  • 12-measurement-editor.png.png
    12-measurement-editor.png.png
    390.7 KB · Views: 27
  • 11-saved-runs.png.png
    11-saved-runs.png.png
    743.2 KB · Views: 37
  • 04-solutions-grid.png.png
    04-solutions-grid.png.png
    552.8 KB · Views: 30
  • 04-dsp-presets.png.png
    04-dsp-presets.png.png
    480.1 KB · Views: 26
  • 02-radio.png.png
    02-radio.png.png
    465.6 KB · Views: 23
  • 01-library.png.png
    01-library.png.png
    338.4 KB · Views: 20
FXRoute 0.7.1 is up on GitHub.

The two main new things are:

Top 40 Smart Favorite card in the album favorites view, based on local play counts.
03-library-albums-list.png



• A new L/R timing / minimum-phase alignment step in the measurement workflow.
I also added quite a bit of timing diagnostics around it.
convolver.png


Not a huge flashy release, but a nice usability step for both library browsing and speaker correction.

 
Last edited:
FXRoute 0.7.2 is now on GitHub.

The main new thing is the Hybrid Aligned FIR mode in the browser-based convolver workflow.
convolver-hybrid.png

After some listening tests, I am honestly quite impressed by it. To my ears it combines a lot of what I like about both existing approaches: the more open and airy presentation of the linear-phase filter, but with the tighter, cleaner bass character of the minimum-phase aligned filter.

On my Wharfedale Diamond 12.2 setup, this is currently the best result I have had so far. The speakers have never sounded better here.

Of course this will depend on the room, speakers, correction range and personal taste, but if you are using the measurement/convolver workflow, the new Hybrid Aligned mode is definitely worth trying.
 
minimum-phase means IIR, is that right?
No, not necessarily. Minimum phase is a phase property, not the same thing as IIR.

In FXRoute the convolver presets are still FIR filters. “Minimum phase” here means a minimum-phase FIR impulse for the convolver, not an IIR/biquad EQ.
 
FXRoute 0.7.4 is out now.

The main addition is an optional electrical reference input for measurements. In practice this means you can record the measurement mic on one input and a line-level reference signal from the playback path on another input.
This gives the timing detection a much cleaner reference and helps especially with L/R alignment and the aligned FIR modes.

In my own quick tests this worked very well. With a UMC204HD used for playback and electrical reference I measured 2.90 / 2.90 ms.
Using my SMSL DAC as playback and feeding its line output into input 2 gave 2.83 / 2.87 / 2.96 ms. Acoustic-only timing was also often close, but had the occasional outlier: 2.88 / 3.96 / 2.83 / 2.77 ms.

So acoustic-only can work, but the electrical reference is clearly the more reliable option when available.

GitHub:
 
FXRoute 0.7.33 is out.

This update mainly improves the Measurement Assistant, especially for stereo L/R timing and repeatability.

The biggest new workflow is L/R Repeat. FXRoute can now run repeated left/right measurements from the same microphone position, evaluate the paired L/R timing deltas, reject outliers, and save the final left/right result as a proper pair.

This makes L/R timing checks less dependent on a single sweep and should help when creating aligned FIR correction presets.

Main measurement changes since 0.7.4:

- automatic same-position L/R Repeat workflow
- paired-delta clustering for more stable L/R timing
- saved L/R Repeat results are stored as clean L/R pairs
- Electrical Reference pre-averaging for repeat measurements
- better timing badges and reliability metadata
- improved acoustic direct-arrival detection

Screenshot 2026-06-02 221708.png
 
FXRoute 0.7.36 is out: the Measurement Assistant now has a local Freq/IR toggle directly on the graph, including a compact impulse-response preview for new measurements.
Screenshot 2026-06-09 001152.png
Screenshot 2026-06-09 000718.png


Hover readouts are cleaner, L/R Repeat now shows the input level in dBFS while a measurement is running, and Convolver handoff is more robust: single L/R measurements and matching L+R pairs are detected explicitly, while ambiguous selections are blocked. The manual, changelog, and screenshots have also been refreshed.
 
The latest version adds a built-in update function, so future releases can be installed directly from the web UI instead of using the terminal. It also shows the current installed version and update status.

Screenshot 2026-06-16 144904.png


The other bigger change is the first 2.1 subwoofer mode. FXRoute can now route stereo mains to outputs 1/2 and a mono summed subwoofer signal to outputs 3/4. The real-time crossover path is implemented in C for low overhead and processes audio in 32-bit float. The new crossover card includes an LR24 crossover, adjustable crossover frequency, sub level, bidirectional sub/main alignment, polarity, and an optional main high-pass.

Screenshot 2026-06-16 145418.png
 
Back
Top Bottom